Q&A

  • bookmark를 이용한 출력에 대해 고수님들의 조언부탁..
델초보입니다...

다음은 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;

0  COMMENTS