⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 twodetrp.pas

📁 suite component ace report
💻 PAS
字号:
unit Twodetrp;

{
  This Sample report illistrates how you can display two different
  detail tables on the same SubDataDetail Band.  This is done by using
  the bands OnDataStart and OnDataSkip Events.  Two Queries on the
  same table were used in this example to give us two tables with the
  same master source.  In the OnDataSkip Event you manually skip through
  each table, checking each time to see whether both tables are finished
  ( and if so setting the DataIsFinished property to true ).
  The labels on the SubDataDetail band use the LabelPrintWhen Event to
  suppress the printing of the label from one table if it has finished
  but the other table has not.
  The OnDataStart event consists of simply moving the tables to the
  first record and checking whether the tables contain any records.
}
interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, DB, StdCtrls,
  sctctrl, Sctrep, Sctvar, Buttons, Sctbtn, AcePage;

type
  TTwoDetForm = class(TForm)
    CustomerSource: TDataSource;
    CustomerTable: TTable;
    DataSource2: TDataSource;
    Query1: TQuery;
    CustomerTableCustNo: TFloatField;
    CustomerTableCompany: TStringField;
    CustomerTableAddr1: TStringField;
    CustomerTableAddr2: TStringField;
    CustomerTableCity: TStringField;
    CustomerTableState: TStringField;
    CustomerTableZip: TStringField;
    CustomerTableCountry: TStringField;
    CustomerTablePhone: TStringField;
    CustomerTableFAX: TStringField;
    CustomerTableTaxRate: TFloatField;
    CustomerTableContact: TStringField;
    CustomerTableLastInvoiceDate: TDateTimeField;
    DataSource3: TDataSource;
    Query2: TQuery;
    ReportHeaderBand: TSctBand;
    ReportHeaderBandlevel: TSctLevel;
    PageHeaderBand: TSctBand;
    PageHeaderBandlevel: TSctLevel;
    DetailBand: TSctBand;
    DetailBandlevel: TSctLevel;
    PageFooterBand: TSctBand;
    PageFooterBandlevel: TSctLevel;
    ReportFooterBand: TSctBand;
    ReportFooterBandlevel: TSctLevel;
    ReportPage: TSctGrouppage;
    SctReport1: TSctReport;
    svarDateTime: TSctDateTimeVar;
    svarPage: TSctPageVar;
    DataSourceGuide: TSctDataSourceGuide;
    DataSourceGuide1: TSctDataSourceGuide;
    DataSourceGuide2: TSctDataSourceGuide;
    customertableCUSTNO1: TSctdbvar;
    customertableCOMPANY1: TSctdbvar;
    customertableADDR11: TSctdbvar;
    customertableADDR21: TSctdbvar;
    customertableCITY1: TSctdbvar;
    customertableSTATE1: TSctdbvar;
    customertableZIP1: TSctdbvar;
    customertableCOUNTRY1: TSctdbvar;
    customertablePHONE1: TSctdbvar;
    customertableFAX1: TSctdbvar;
    customertableTAXRATE1: TSctdbvar;
    customertableCONTACT1: TSctdbvar;
    customertableLASTINVOICEDATE1: TSctdbvar;
    query1ORDERNO: TSctdbvar;
    query1CUSTNO: TSctdbvar;
    query1SALEDATE: TSctdbvar;
    query1SHIPDATE: TSctdbvar;
    query1EMPNO: TSctdbvar;
    query1SHIPTOCONTACT: TSctdbvar;
    query1SHIPTOADDR1: TSctdbvar;
    query1SHIPTOADDR2: TSctdbvar;
    query1SHIPTOCITY: TSctdbvar;
    query1SHIPTOSTATE: TSctdbvar;
    query1SHIPTOZIP: TSctdbvar;
    query1SHIPTOCOUNTRY: TSctdbvar;
    query1SHIPTOPHONE: TSctdbvar;
    query1SHIPVIA: TSctdbvar;
    query1PO: TSctdbvar;
    query1TERMS: TSctdbvar;
    query1PAYMENTMETHOD: TSctdbvar;
    query1ITEMSTOTAL: TSctdbvar;
    query1TAXRATE: TSctdbvar;
    query1FREIGHT: TSctdbvar;
    query1AMOUNTPAID: TSctdbvar;
    query2ORDERNO: TSctdbvar;
    query2CUSTNO: TSctdbvar;
    query2SALEDATE: TSctdbvar;
    query2SHIPDATE: TSctdbvar;
    query2EMPNO: TSctdbvar;
    query2SHIPTOCONTACT: TSctdbvar;
    query2SHIPTOADDR1: TSctdbvar;
    query2SHIPTOADDR2: TSctdbvar;
    query2SHIPTOCITY: TSctdbvar;
    query2SHIPTOSTATE: TSctdbvar;
    query2SHIPTOZIP: TSctdbvar;
    query2SHIPTOCOUNTRY: TSctdbvar;
    query2SHIPTOPHONE: TSctdbvar;
    query2SHIPVIA: TSctdbvar;
    query2PO: TSctdbvar;
    query2TERMS: TSctdbvar;
    query2PAYMENTMETHOD: TSctdbvar;
    query2ITEMSTOTAL: TSctdbvar;
    query2TAXRATE: TSctdbvar;
    query2FREIGHT: TSctdbvar;
    query2AMOUNTPAID: TSctdbvar;
    SubDataDetailBand: TSctSubDataBand;
    SubDataDetailBandlevel: TSctLevel;
    TSctvarlabel: TSctvarlabel;
    TSctvarlabel1: TSctvarlabel;
    Sctvarlabel1: TSctvarlabel;
    Sctvarlabel2: TSctvarlabel;
    SctReportButton1: TSctReportButton;
    SctTextLabel1: TSctTextLabel;
    Sctvarlabel3: TSctvarlabel;
    SctTextLabel2: TSctTextLabel;
    Sctvarlabel4: TSctvarlabel;
    SctTextLabel3: TSctTextLabel;
    SctTextLabel4: TSctTextLabel;
    SctTextLabel5: TSctTextLabel;
    SctTextLabel6: TSctTextLabel;
    Sctvarlabel5: TSctvarlabel;
    SctTextLabel7: TSctTextLabel;
    Sctvarlabel6: TSctvarlabel;
    SctTextLabel8: TSctTextLabel;
    Button1: TButton;
    procedure SubDataDetailBandDataSkip(Sender: TObject);
    procedure Sctvarlabel1LabelPrintWhen(lb: TSctLabel; var Result: Boolean);
    procedure Sctvarlabel2LabelPrintWhen(lb: TSctLabel; var Result: Boolean);
    procedure SubDataDetailBandDataStart(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  TwoDetForm: TTwoDetForm;

implementation

{$R *.DFM}

procedure TTwoDetForm.SubDataDetailBandDataSkip(Sender: TObject);
begin
  Query1.Next;
  Query2.Next;
  if (Query1.EOF) and (Query2.EOF) then SubDataDetailBand.DataIsFinished := True;
end;

procedure TTwoDetForm.Sctvarlabel1LabelPrintWhen(lb: TSctLabel; var Result: Boolean);
begin
  result := not Query1.EOF;
end;

procedure TTwoDetForm.Sctvarlabel2LabelPrintWhen(lb: TSctLabel; var Result: Boolean);
begin
  result := not Query2.EOF;
end;

procedure TTwoDetForm.SubDataDetailBandDataStart(Sender: TObject);
begin
  Query1.First;
  Query2.First;
  if (Query1.EOF) and (Query2.EOF) then SubDataDetailBand.DataIsFinished := True;
end;

procedure TTwoDetForm.Button1Click(Sender: TObject);
begin
  Close;
end;

procedure TTwoDetForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -