쌩초보가 프린터할라고 하니 머리가 터지는군요.........ㅜ.ㅜ
월계. 누계를 산출하느라 그룹푸터와 써머리에다가 qrexpr을 놓고 실행시켰습니다.
그룹헤더는 날짜로 지정했습니다.
reserafterprinter를 월계는 true 누계는false를 지정했습니다.
그런데 결과물의 합계가 이상하게 나옵니다.
결과물 :
--------------------------------------------------------
일자 입고 출고
--------------------------------------------------------
2004.01.01 150
2004.01.12 31.25
2004.01.25 90
2004.01.25 76.88
(빈줄 15줄)
---------------------------------------------------------
월 계 240 1,306.96
---------------------------------------------------------
누 계 240 1,306.96
---------------------------------------------------------
입니다.
마지막 데이타 76.88에서 월계까지는 15칸의 빈칸이 있습니다.
도대체 어떻게 해야하는건지 검색해도 정확한 답이 없기에 질문을 드립니다.
부디 도와주시길 바랍니다.
제 소스입니다.
procedure Tsubulprtfm.QRep1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
if prtq1.Eof then
begin
if rc < 19 then MoreData := true;
end;
if prtq1.Eof then
begin
if rc = 19 then
MoreData := false;
end;
if prtq1.Eof then
begin
if (rc < 39) and (rc > 19) then MoreData := true; //rc가 20이면 19줄 더 찍기
end;
if not prtq1.Eof then
begin
if rc < 21 then MoreData := true
else
MoreData := False;
end;
end;
procedure Tsubulprtfm.QRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
rc := 0; // Row
sumin := '0';
sumout := '0';
subulprtfm.prtq1.first;
end;
procedure Tsubulprtfm.QRBand4BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
var pum : string;
begin
rc := rc + 1;
if (rc > 20) and ( not prtq1.Eof ) then
begin
if not prtq1.Eof then
rc := 1;
subulprtfm.QRBand4.ForceNewPage := true;
end
else subulprtfm.QRBand4.ForceNewPage := False;
with prtq1 do begin
if not Eof then
begin
indate.caption := fieldbyname('indate').asstring;
gname.caption := fieldbyname('gname').asstring;
pum := fieldbyname('inpum').asstring;
if trim(pum) = '' then
begin
inpum.caption := '';
end else begin
inpum.caption := FormatFloat('#,##0.00',StrToFloat(fieldbyname('inpum').asstring));
pum := '';
end;
pum := fieldbyname('outpum').asstring;
if trim(pum) = '' then
begin
outpum.caption := '';
end else begin
outpum.caption := FormatFloat('#,##0.00',StrToFloat(fieldbyname('outpum').asstring));
pum := '';
end;
Next;
end
else
begin
indate.caption := '';
gname.caption := '';
inpum.caption := '';
outpum.caption := '';
end;
end;
qrexpr의 expression에 sum(필드명) 이렇게 만 써주시면 되는데요..
format에 '#,##0.00' 이라고 해주시면 알아서 콤마찍어주고..
left, center, right도 조정 가능합니다.
그럼.
http://www.qusoft.com에 가셔서 셈플몇개 가져다가 테스트해보세요.
sample폴더에도 있을겁니다..^^;
>쌩초보가 프린터할라고 하니 머리가 터지는군요.........ㅜ.ㅜ
>
>
>월계. 누계를 산출하느라 그룹푸터와 써머리에다가 qrexpr을 놓고 실행시켰습니다.
>
>그룹헤더는 날짜로 지정했습니다.
>
>reserafterprinter를 월계는 true 누계는false를 지정했습니다.
>
>그런데 결과물의 합계가 이상하게 나옵니다.
>
>결과물 :
>--------------------------------------------------------
>일자 입고 출고
>--------------------------------------------------------
>2004.01.01 150
>2004.01.12 31.25
>2004.01.25 90
>2004.01.25 76.88
>
> (빈줄 15줄)
>
>---------------------------------------------------------
> 월 계 240 1,306.96
>---------------------------------------------------------
> 누 계 240 1,306.96
>---------------------------------------------------------
>입니다.
>
>마지막 데이타 76.88에서 월계까지는 15칸의 빈칸이 있습니다.
>
>도대체 어떻게 해야하는건지 검색해도 정확한 답이 없기에 질문을 드립니다.
>
>부디 도와주시길 바랍니다.
>
>
>제 소스입니다.
>
>procedure Tsubulprtfm.QRep1NeedData(Sender: TObject;
> var MoreData: Boolean);
>begin
> if prtq1.Eof then
> begin
> if rc < 19 then MoreData := true;
> end;
>
> if prtq1.Eof then
> begin
> if rc = 19 then
> MoreData := false;
> end;
>
> if prtq1.Eof then
> begin
> if (rc < 39) and (rc > 19) then MoreData := true; //rc가 20이면 19줄 더 찍기
> end;
>
> if not prtq1.Eof then
> begin
> if rc < 21 then MoreData := true
> else
> MoreData := False;
> end;
>end;
>
>procedure Tsubulprtfm.QRep1BeforePrint(Sender: TCustomQuickRep;
> var PrintReport: Boolean);
>begin
> rc := 0; // Row
> sumin := '0';
> sumout := '0';
> subulprtfm.prtq1.first;
>end;
>
>procedure Tsubulprtfm.QRBand4BeforePrint(Sender: TQRCustomBand;
> var PrintBand: Boolean);
>var pum : string;
>begin
> rc := rc + 1;
> if (rc > 20) and ( not prtq1.Eof ) then
> begin
> if not prtq1.Eof then
> rc := 1;
> subulprtfm.QRBand4.ForceNewPage := true;
> end
> else subulprtfm.QRBand4.ForceNewPage := False;
>
> with prtq1 do begin
> if not Eof then
> begin
> indate.caption := fieldbyname('indate').asstring;
> gname.caption := fieldbyname('gname').asstring;
> pum := fieldbyname('inpum').asstring;
> if trim(pum) = '' then
> begin
> inpum.caption := '';
> end else begin
> inpum.caption := FormatFloat('#,##0.00',StrToFloat(fieldbyname('inpum').asstring));
> pum := '';
> end;
>
> pum := fieldbyname('outpum').asstring;
> if trim(pum) = '' then
> begin
> outpum.caption := '';
> end else begin
> outpum.caption := FormatFloat('#,##0.00',StrToFloat(fieldbyname('outpum').asstring));
> pum := '';
> end;
> Next;
> end
> else
> begin
> indate.caption := '';
> gname.caption := '';
> inpum.caption := '';
> outpum.caption := '';
> end;
> end;
>