Q&A

  • Excel로 내릴때 필드 Visible 관련...
아래소스는 쿼리를 읽어서 Excel로 내리는 소스입니다.
필드가 약 70여개 되는데 쿼리 Open시 값이 있으면 필드Visible = True 이고
없으면  False  입니다.

문제는 Visible 이 False인 필드가 Excel 에 빈 란으로 생성 됩니다.
아래 소스에는 False인것은 나타내지 안도록 했는데 말을 안듣네요...
이것을 어떻게 하면 되겠습니까?



with SQL5021 do begin
        ProgressBar1.max := recordcount;
        ProgressBar1.Position := 0;
        DisableControls;
        //티이틀 기록
        for i := 1 to FieldCount - 1 do begin
            if Fields[i].Visible = true then begin
               Fworksheet.Cells[3, i].value := Fields[i].DisplayLabel;
            end else
            begin
                //필드Visible = False 인것은 나타내지 않는다...----> 안되네...
            end;
        end;
        k := 4; //Excel행 증가변수
        First;

        while not Eof do begin
           ProgressBar1.Position := ProgressBar1.Position + sizeof(1);
           for i := 1 to FieldCount -1 do begin
              if Fields[i].Visible = true then begin
                 if Fields[i].Tag = 0 then //0은 Text, 1은 Integer
                    Fworksheet.Cells[k, i].value := SQL5021.Fields[i].Asstring else
                    Fworksheet.Cells[k, i].value := floattostr(SQL5021.Fields[i].AsFloat);
              end else
              begin
                 //필드Visible = False 인것은 나타내지 않는다...----> 안되네...
              end;
           end;
           Inc(k);
           Next;
        end;
        EnableControls;
     end;
1  COMMENTS
  • Profile
    하얀까마귀 2002.04.13 06:45
    안녕하세요 하얀까마귀 입니다.
    코딩이 조금 잘못된것 같네요...

    Fworksheet.Cells[3, i].value := Fields[i].DisplayLabel;

    이부분에서 i의 값에 따라서 셀의 값을 넣어주니깐...
    visible이 아닌 값은 처리를 안하더라도 다름 셀에 넣어주게 되지 않겠습니까?

    셀의 행번호를 다른 변수를 써서 사용하시면 되겠네요...

            k := 0;
            for i := 1 to FieldCount - 1 do begin
                if Fields[i].Visible = true then
                begin
                   inc(k); <-- 요렇게 하시면 아마 될것 같네요. 그럼.
                   Fworksheet.Cells[3, k].value := Fields[i].DisplayLabel;
                end else
                begin
                    //필드Visible = False 인것은 나타내지 않는다...----> 안되네...
                end;
            end;
    그럼 즐거운시간 되세요.

    하얀까마귀