NO 품목 수량 비고
1 A B C
2 A' B' C'
3 A" B" C"
4
5
6
7
8
9
10
이런 식으로 보고서를 출력할려고 하는데요..
총 10번 행까지 출력할려고 합니다.
이중 임의의 데이터 갯수만큼(여기서는 3개의 행) 출력하고...
나머지 칼럼은 번호만 찍고자 합니다.
데이터 찍는건 디테일밴드를 사용해서 출력이 되는데..
그 아래의 번호만 찍는 게 잘 안되네요..
꼭 도와주세요...^^
소스 첨부...
var
sTmp_OrderNo: String;
sTmp_jmno : String;
nTmp_seqn : Integer;
nTt_qty : Currency;
nTt_wamt : Currency;
nQry_qty : Currency;
nQry_wprc : Currency;
nQry_wamt : Currency;
nii : Integer;
//=======
// Form 관련
//=======
procedure TrptKPSZA70O.FormCreate(Sender: TObject);
begin
qrPH_Title.Caption := '주 문 서';
end;
procedure TrptKPSZA70O.qrpReportBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
nii := 1;
end;
procedure TrptKPSZA70O.qrbpgHdrBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
var
sTmp_seqn : String;
begin
qrPH_ToMan.Caption := frmKPSZA70P.edAcpt_ToMan.Text;
qrPH_RefMan.Caption := frmKPSZA70P.edAcpt_Ref.Text;
sTmp_jmno := qryKSLYY05Tsl05_jmno.Value;
nTmp_seqn := qryKSLYY05Tsl05_seqn.Value;
if (nTmp_seqn < 10) then sTmp_seqn := '00' + IntToStr(nTmp_seqn);
if (nTmp_seqn >= 10) and
(nTmp_seqn < 100) then sTmp_seqn := '0' + IntToStr(nTmp_seqn);
qryF_OrderNo.Caption := sTmp_jmno + '-' + sTmp_seqn;
end;
procedure TrptKPSZA70O.qrbDetailBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
qrDt_No.Caption := IntToStr(nii);
sl05_devc.Caption := qryKSLYY05Tsl05_devc.Value;
sl05_ngdt.Caption := DateToStr(qryKSLYY05Tsl05_ngdt.Value);
sl05_bigo.Caption := qryKSLYY05Tsl05_bigo.Value;
nQry_qty := qryKSLYY05Tsl05_qty.Value;
nQry_wprc := qryKSLYY05Tsl05_wprc.Value;
nQry_wamt := qryKSLYY05Tsl05_wamt.Value;
sl05_qty.Caption := Format('%0.0n', [nQry_qty]);
sl05_wprc.Caption := Format('%0.0n', [nQry_wprc]);
sl05_wamt.Caption := Format('%0.0n', [nQry_wamt]);
Inc(nii);
end;
procedure TrptKPSZA70O.qrbSummaryBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
with dmlKEEM001P.qrySqlDql do
begin
Close;
Sql.Clear;
Sql.Add('SELECT SUM(sl05_qty), SUM(sl05_wamt)');
Sql.Add(' FROM ksl0405t ');
Sql.Add(' WHERE sl05_jmno = :sPrm_jmno');
Sql.Add(' AND sl05_seqn = :sPrm_seqn');
ParamByName('sPrm_jmno').Value := qryKSLYY05Tsl05_jmno.Value;
ParamByName('sPrm_seqn').Value := qryKSLYY05Tsl05_seqn.Value;
Open;
nTt_qty := Fields[0].Value;
nTt_wamt:= Fields[1].Value;
end;
qrS_qty.Caption := Format('%0.0n', [nTt_qty]);
qrS_wamt.Caption := Format('%0.0n', [nTt_wamt]);
end;
end.
(실제로 해보지는 않았지만..^^)
전역변수 cnt 를 정의하시고
if cnt <10 then
begin
MoreData:=true;
inc(cnt);
end
else
MoreData:=false;
요렇게하면 10개의 디테일밴드를 생성합니다.
또한 여기서 query한 결과를 QRLabel에 출력해주시면 될듯....
(quickrep의 dataset은 비우세요)
부디 잘 되시길...
좋은 하루 되세요.