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

📄 custprev.pas

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

interface

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

type
  TCustomPreview = class(TForm)
    Panel1: TPanel;
    MyPreview: TAcePreview;
    Panel2: TPanel;
    SctReportButton1: TSctReportButton;
    VendorsSource: TDataSource;
    Vendors: TTable;
    Parts: TTable;
    PartsSource: TDataSource;
    DBGrid1: TDBGrid;
    VendorsVendorNo: TFloatField;
    VendorsVendorName: TStringField;
    VendorsAddress1: TStringField;
    VendorsAddress2: TStringField;
    VendorsCity: TStringField;
    VendorsState: TStringField;
    VendorsZip: TStringField;
    VendorsCountry: TStringField;
    VendorsPhone: TStringField;
    VendorsFAX: TStringField;
    VendorsPreferred: TBooleanField;
    DBGrid2: TDBGrid;
    PartsPartNo: TFloatField;
    PartsVendorNo: TFloatField;
    PartsDescription: TStringField;
    PartsOnHand: TFloatField;
    PartsOnOrder: TFloatField;
    PartsCost: TCurrencyField;
    PartsListPrice: TCurrencyField;
    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;
    vendorsVENDORNO1: TSctdbvar;
    vendorsVENDORNAME1: TSctdbvar;
    vendorsADDRESS11: TSctdbvar;
    vendorsADDRESS21: TSctdbvar;
    vendorsCITY1: TSctdbvar;
    vendorsSTATE1: TSctdbvar;
    vendorsZIP1: TSctdbvar;
    vendorsCOUNTRY1: TSctdbvar;
    vendorsPHONE1: TSctdbvar;
    vendorsFAX1: TSctdbvar;
    vendorsPREFERRED1: TSctdbvar;
    partsPARTNO1: TSctdbvar;
    partsVENDORNO1: TSctdbvar;
    partsDESCRIPTION1: TSctdbvar;
    partsONHAND1: TSctdbvar;
    partsONORDER1: TSctdbvar;
    partsCOST1: TSctdbvar;
    partsLISTPRICE1: TSctdbvar;
    TSctTextLabel: TSctTextLabel;
    TSctTextLabel1: TSctTextLabel;
    TSctTextLabel2: TSctTextLabel;
    TSctTextLabel3: TSctTextLabel;
    TSctTextLabel4: TSctTextLabel;
    TSctTextLabel5: TSctTextLabel;
    SctReportButton2: TSctReportButton;
    SubDataDetailBand: TSctSubDataBand;
    SubDataDetailBandlevel: TSctLevel;
    TSctvarlabel: TSctvarlabel;
    TSctvarlabel1: TSctvarlabel;
    TSctvarlabel2: TSctvarlabel;
    TSctvarlabel3: TSctvarlabel;
    TSctvarlabel5: TSctvarlabel;
    TSctvarlabel4: TSctvarlabel;
    TSctvarlabel6: TSctvarlabel;
    TSctTextLabel6: TSctTextLabel;
    Button1: TButton;
    Button2: TButton;
    PageNum: TLabel;
    ScrollCheckBox: TCheckBox;
    procedure ReportPagePreview(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SctReport1BeforePrint(report: TSctReport);
    procedure SctReport1AfterPrint(report: TSctReport);
    procedure ReportPageAfterDataSkip(page: TSctGrouppage);
    procedure ReportPageUpdateStatus(Page: TSctPage; Stat: TSctStatus);
  private
    { Private declarations }
    ShowScrolling:  Boolean;
  public
    { Public declarations }
    First: Boolean;
  end;

var
  CustomPreview: TCustomPreview;

implementation

uses aceout;

{$R *.DFM}

procedure TCustomPreview.ReportPagePreview(Sender: TObject);
var
  pg: TSctPage;
begin
  pg := TSctPage(Sender);
  MyPreview.LoadFromAceFile(pg.PrintTo.AceFile);
  First := True;
end;

procedure TCustomPreview.Button1Click(Sender: TObject);
begin
  mypreview.NextPage;
  PageNum.Caption := 'Page: ' + IntToStr(MyPreview.page) + '/' + IntToStr(MyPreview.PageCount);
end;

procedure TCustomPreview.Button2Click(Sender: TObject);
begin
  mypreview.priorpage;
  PageNum.Caption := 'Page: ' + IntToStr(MyPreview.page) + '/' + IntToStr(MyPreview.PageCount);
end;

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

procedure TCustomPreview.SctReport1BeforePrint(report: TSctReport);
begin
  ShowScrolling := ScrollCheckBox.Checked;
  if Not ShowScrolling then
    begin
      Parts.DisableControls;
      Vendors.DisableControls;
    end;
end;

procedure TCustomPreview.SctReport1AfterPrint(report: TSctReport);
begin
  if Not ShowScrolling then
    begin
      Vendors.EnableControls;
      Parts.EnableControls;
    end;
end;

procedure TCustomPreview.ReportPageAfterDataSkip(page: TSctGrouppage);
var
  VendorNum: String;
begin
  VendorNum := Vendors.FieldByName('VendorNo').AsString;
  Parts.SetRange([VendorNum],[VendorNum]);
end;

procedure TCustomPreview.ReportPageUpdateStatus(Page: TSctPage;
  Stat: TSctStatus);
begin
  if First And ((MyPreview.Pagecount = 2) or (myPreview.LoadPercent = 100)) then
  begin
    MyPreview.Invalidate;
    First := False;
  end;
  PageNum.Caption := 'Page: ' + IntToStr(MyPreview.page) + '/' + IntToStr(MyPreview.PageCount);
end;

end.

⌨️ 快捷键说明

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