쌩초보가 프린터할라고 하니 머리가 터지는군요.........ㅜ.ㅜ
월계. 누계를 산출하느라 그룹푸터와 써머리에다가 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;
>