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일넘게 이걸 잡고 헤메고 있으나 해결이 안됨..
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해 주세요.
문제에 답이 되었는지 모르겠네요...
그럼...