Q&A

  • needdata, moredata문제
needdata의 내용임다...

datset, datafield, 디비그리드 이용했슴다..

With F_print.DBGrid1 Do

Begin

If j < F_print.DBGrid1.SelectedRows.Count Then

Begin

DataSource.DataSet.GotoBookmark(pointer(SelectedRows.Items[j]));

Inc(j);

MoreData := True;

End

Else

여기까지는 정상적인 데이터 출력

다음은 정상적인 마지막 페이지의 건수에 따라 3으로 나눠

0일때 빈줄 두줄 1일때 빈줄1줄 강제로 출력 하고자 함

begin

fieldclear; qrdbtext의 caption이나 datafield의 초기화를 시도

cnt := F_print.dbgrid1.selectedrows.Count mod 3;

case cnt of

0 :

begin

if k > 1 then

moredata := false

else

moredata := true ;

end;

1 :

begin

if k > 0 then

moredata := false

else

moredata := true;

end;

2 :

begin

MoreData := False;

end;

end;

inc(k);

end;

End;

End

그런데 줄은 출력이 되는데 빈줄에 dbgrid에 데이터가 있을때의 마지막값이

계속 출력이 되는데요 제발 해결좀 해주세요

3일넘게 이걸 잡고 헤메고 있으나 해결이 안됨..

1  COMMENTS
  • Profile
    이재식 2000.11.22 00:56
    With form1.RealDBGrid1 Do

    Begin

    If j < Form1.RealDBGrid1.SelectedRows.Count Then

    Begin

    DataSource.DataSet.GotoBookmark(pointer(SelectedRows.Items[j]));

    Inc(j);

    MoreData := True;

    End

    else

    begin

    FieldClear ;

    if cnt = 0 then

    begin

    MoreData := True ;

    Inc(blank_line_count) ;

    if blank_line_count = 3 then

    MoreData := False ;

    end

    else if cnt = 1 then

    begin

    MoreData := True ;

    Inc(blank_line_count) ;

    if blank_line_count = 2 then

    MoreData := False ;

    end ;

    end ;



    end ;



    // 여기까지는 정상적인 데이터 출력

    // 다음은 정상적인 마지막 페이지의 건수에 따라 3으로 나눠

    // 0일때 빈줄 두줄 1일때 빈줄1줄 강제로 출력 하고자 함



    위 코딩에서 님께서 하신 else이하 부분을 위처럼 바꾸어 주세요.

    물론 위처럼 하지말고 님께서 하신 코딩 그 자체로 해주셔도 상관없습니다.

    다만 님께서 FieldClear가 문제인 것 같아요. 계속 마지막 데이터가 출력되는 걸로

    보아서 말이죠.

    procedure TForm2.FieldClear;

    begin

    QRDBText1.Enabled := False ;

    QRDBText2.Enabled := False ;

    end;



    위처럼 Enabled := False해 주세요.



    문제에 답이 되었는지 모르겠네요...



    그럼...