一、<預覽報表 Button程式碼> procedure TfrmB00.btnprtClick(Sender: TObject); begin Application.CreateForm(TfrmPB00, frmPB00); frmPB00.QuickRep1.PreviewModal; end; 二、<報表程式碼> PS:這段程式碼是由fishman大哥提供的,他的原始程式在 http://delphi.ktop.com.tw/loadfile.asp?TOPICID=16996226&CC=380114 procedure TfrmPB00.QRGroup1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin NAMCondition := 1; frmDMmis05.Qab01a.First; frmDMmis05.Qac01a.First; frmDMmis05.Qad01a.First; frmDMmis05.Qae01a.First; QRLabel3.Caption:='機種:' + frmB00.dlckind.Text; end; procedure TfrmPB00.QRSubDetail1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin if NewPage then begin QRLabel8.Caption := '材料成本'; QRLabel9.Caption := ''; QRLabel10.Caption := ''; QRLabel11.Caption := ''; case NAMCondition of 1 : QRLabel5.Caption := '冶具成本'; 2 : QRLabel5.Caption := '模具成本'; 3 : QRLabel5.Caption := '包裝成本'; else QRLabel5.Caption := ''; end; QRLabel6.Caption := ''; QRLabel7.Caption := ''; NewPage := False; end else begin // Left Side ClientDateSet2 if not frmDMmis05.Qab01a.Eof then begin QRLabel8.Caption := frmDMmis05.Qab01a.FieldByName('menam').AsString; QRLabel9.Caption := frmDMmis05.Qab01a.FieldByName('price').AsString; QRLabel10.Caption := frmDMmis05.Qab01a.FieldByName('uqty').AsString; QRLabel11.Caption := frmDMmis05.Qab01a.FieldByName('subtal').AsString; frmDMmis05.Qab01a.Next; end else begin QRLabel8.Caption := ''; QRLabel9.Caption := ''; QRLabel10.Caption := ''; QRLabel11.Caption := ''; end; // Right Side ClientDataSet3 if not frmDMmis05.Qac01a.Eof then begin QRLabel5.Caption := frmDMmis05.Qac01a.FieldByName('gnam').AsString; QRLabel6.Caption := frmDMmis05.Qac01a.FieldByName('price').AsString; QRLabel7.Caption := ''; frmDMmis05.Qac01a.Next; end else // Right Side ClientDataSet4 if not frmDMmis05.Qad01a.Eof then begin if NAMCondition = 1 then begin QRLabel5.Caption := '模具成本'; QRLabel6.Caption := ''; QRLabel7.Caption := ''; NAMCondition := 2; end else begin QRLabel5.Caption := frmDMmis05.Qad01a.FieldByName('monam').AsString; QRLabel6.Caption := frmDMmis05.Qad01a.FieldByName('price').AsString; QRLabel7.Caption := frmDMmis05.Qad01a.FieldByName('mhq').AsString; frmDMmis05.Qad01a.Next; end; end else // Right Side ClientDataSet5 if not frmDMmis05.Qae01a.Eof then begin if NAMCondition = 2 then begin QRLabel5.Caption := '包裝成本'; QRLabel6.Caption := ''; QRLabel7.Caption := ''; NAMCondition := 3; end else begin QRLabel5.Caption := frmDMmis05.Qae01a.FieldByName('pack').AsString; QRLabel6.Caption := frmDMmis05.Qae01a.FieldByName('price').AsString; QRLabel7.Caption := ''; frmDMmis05.Qae01a.Next; end; end else begin QRLabel5.Caption := ''; QRLabel6.Caption := ''; QRLabel7.Caption := ''; NAMCondition := 4; end; end; end; procedure TfrmPB00.QRSubDetail1NeedData(Sender: TObject; var MoreData: Boolean); begin if (frmDMmis05.Qab01a.Eof) and (frmDMmis05.Qae01a.Eof) and (NAMCondition = 4) then MoreData := False Else MoreData := True; end; procedure TfrmPB00.QuickRep1StartPage(Sender: TCustomQuickRep); begin NewPage := True; end; 三、<關閉表單程式碼> 1. procedure TfrmB00.btncloseClick(Sender: TObject); begin close; end; 2. procedure TfrmB00.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=cafree; end;