델초보입니다...
다음은 QuickReport로 출력하는 데 조건에 따라 출력을 달리 합니다..
그리고 값을 순차적으로 비교해가면서 다른값일 경우에는 다음페이지에
출력을 하려고 하는데....
(예: 조건이 주민번호일경우에
1page -> 111111-1111111 가가가 2page -> 222222-2222222 3page -> 333333-3333333
111111-1111111 나나나
111111-1111111 다다다 ......)
처음 다른값이 나올 경우에는 같은 페이지에 출력이 되는 이유(????)를 모르겠네요..
두번째 다른값부터는 정상적으로 각각 다른 페이지에 정상적으로 출력이 되거든요..
고수님들의 조언 부탁드림니다....
procedure TGEXFTX111R.DetailAfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
var
MyBookmark: TBookmark;
BeforeValue: String;
begin
inc(TotCount);
inc(cnt);
MyBookmark := GEXFTX111.QR_TX01.GetBookmark;
GEXFTX111.QR_TX01.DisableControls;
if GEXFTX111.CB_WORK_GB.ItemIndex <> 0 then
begin
try
with GEXFTX111 do
begin
Detail.ForceNewPage := False;
case CB_PRINT_GB.ItemIndex of
0: BeforeValue := QR_TX01id_no.Value; //주민번호
1: BeforeValue := QR_TX01KWA.Value; //실과
2: BeforeValue := QR_TX01ACC.Value + QR_TX01MOK.Value + QR_TX01KIND.Value; //세목
end;
QR_TX01.Next;
case CB_WORK_GB.ItemIndex of
1: begin
case CB_PRINT_GB.ItemIndex of
0: begin
if QR_TX01id_no.Value <> BeforeValue then
begin
Detail.ForceNewPage := True;
RecordCount := 0;
end
else
Detail.ForceNewPage := False;
end;
1: begin
if QR_TX01KWA.value <> BeforeValue then
begin
Detail.ForceNewPage := True;
RecordCount := 0;
end
else
Detail.ForceNewPage := False;
end;
2: begin
if ( QR_TX01ACC.value + QR_TX01MOK.value + QR_TX01KIND.value ) <> BeforeValue then
begin
Detail.ForceNewPage := True;
RecordCount := 0;
end
else
Detail.ForceNewPage := False;
end;
end;
end;
else
exit;
end;
end;
finally
with GEXFTX111 do
begin
QR_TX01.GotoBookmark(MyBookmark);
QR_TX01.EnableControls;
QR_TX01.FreeBookmark(MyBookmark);
end;
end;
end;
end;