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

📄 previewform.~pas

📁 一个电力企业的后台管理程序
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit PreviewForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, ppViewr, ppComm, ppRelatv, ppProd, ppClass, ppReport, ComCtrls,
  ToolWin, TeeProcs, TeEngine, Chart,  ppPrnabl, ppCtrls, ppBands,
  ppCache, StdCtrls, Mask, Buttons, ppPrintr, ppVar, ppRichTx, ppStrtch,
  ppMemo, ppCTMain, ppSubRpt, ppRegion,ppBarCod,
  ppTypes, ppUtils, ppDB, ppRTTI, Menus, TB97Tlbr, TB97, ActnList,
  ppDBPipe,  Db, Wwdatsrc, DBTables, Wwquery, raCodMod, ppModule,
  daDatMod, ppDBBDE, daDataVw, daQuery, daDBBDE, ppRptExp, ppDsgnDB,
  ppEndUsr, daQClass;

type
  TfrmPreviewForm = class(TForm)
    ppViewer1: TppViewer;
    pnlStatusBar: TPanel;
    PrinterSetupDialog1: TPrinterSetupDialog;
    Dock971: TDock97;
    tbar97_Self: TToolbar97;
    spbPreviewPrintSetup: TSpeedButton;
    spbPreviewPrint: TSpeedButton;
    spbPreview100Percent: TSpeedButton;
    spbPreviewWhole: TSpeedButton;
    spbPreviewWidth: TSpeedButton;
    spbPreviewFirst: TSpeedButton;
    spbPreviewPrior: TSpeedButton;
    mskPreviewPage: TMaskEdit;
    spbPreviewNext: TSpeedButton;
    spbPreviewLast: TSpeedButton;
    mskPreviewPercentage: TMaskEdit;
    spbPreviewClose: TSpeedButton;
    ToolbarSep971: TToolbarSep97;
    ToolbarSep973: TToolbarSep97;
    ToolbarSep974: TToolbarSep97;
    ToolbarSep975: TToolbarSep97;
    ToolbarSep972: TToolbarSep97;
    ToolbarSep976: TToolbarSep97;
    ToolbarSep977: TToolbarSep97;
    ToolbarSep978: TToolbarSep97;
    ActionList1: TActionList;
    actn_View_Toolbars_bill: TAction;
    pprp_main: TppReport;
    ppdbp_main: TppDBPipeline;
    wwds_Main: TwwDataSource;
    ppDgn_Main: TppDesigner;
    wwDs_Detail: TwwDataSource;
    wwDs_SubDetail: TwwDataSource;
    Qr_Report: TQuery;
    Qr_DetailReport: TQuery;
    Qr_SubDetailReport: TQuery;
    ppdbp_Detail: TppDBPipeline;
    ppdbp_subDetail: TppDBPipeline;
    ppHeaderBand1: TppHeaderBand;
    ppShape1: TppShape;
    ppLabel1: TppLabel;
    ppLabel2: TppLabel;
    ppLabel3: TppLabel;
    ppLabel4: TppLabel;
    ppLabel5: TppLabel;
    ppLabel6: TppLabel;
    ppDetailBand1: TppDetailBand;
    ppShape2: TppShape;
    ppShape5: TppShape;
    ppShape3: TppShape;
    ppShape4: TppShape;
    ppDBText1: TppDBText;
    ppShape6: TppShape;
    AskNot: TppVariable;
    AskIntime: TppVariable;
    AskOverTime: TppVariable;
    AskAllCount: TppVariable;
    ppFooterBand1: TppFooterBand;
    procedure FormCreate(Sender: TObject);
    procedure spbPreviewPrintClick(Sender: TObject);
    procedure spbPreviewWholeClick(Sender: TObject);
    procedure spbPreviewWidthClick(Sender: TObject);
    procedure spbPreview100PercentClick(Sender: TObject);
    procedure spbPreviewFirstClick(Sender: TObject);
    procedure spbPreviewPriorClick(Sender: TObject);
    procedure mskPreviewPageKeyPress(Sender: TObject; var Key: Char);
    procedure spbPreviewNextClick(Sender: TObject);
    procedure spbPreviewLastClick(Sender: TObject);
    procedure mskPreviewPercentageKeyPress(Sender: TObject; var Key: Char);
    procedure spbPreviewCloseClick(Sender: TObject);
    procedure ppViewer1PrintStateChange(Sender: TObject);
    procedure ppViewer1StatusChange(Sender: TObject);
    procedure ppViewer1PageChange(Sender: TObject);
    procedure spbPreviewPrintSetupClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure actn_View_Toolbars_billExecute(Sender: TObject);
    procedure tbar97_SelfClose(Sender: TObject);
    procedure tbar97_SelfVisibleChanged(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormDeactivate(Sender: TObject);
    procedure ppDBText1Print(Sender: TObject);
    procedure ppDBText2Print(Sender: TObject);
    procedure ppDBText2GetText(Sender: TObject; var Text: String);
    procedure ClientAskXhCalc(Sender: TObject; var Value: Variant);
    procedure ppVariable2Calc(Sender: TObject; var Value: Variant);
    procedure ppVariable3Calc(Sender: TObject; var Value: Variant);
    procedure ppVariable4Calc(Sender: TObject; var Value: Variant);
    procedure ppVariable5Calc(Sender: TObject; var Value: Variant);
    procedure ppVariable6Calc(Sender: TObject; var Value: Variant);
    procedure ppVariable7Calc(Sender: TObject; var Value: Variant);
    procedure ppVariable8Calc(Sender: TObject; var Value: Variant);
    procedure ClientCountCalc(Sender: TObject; var Value: Variant);
    procedure ClientAskCljXhCalc(Sender: TObject; var Value: Variant);
    procedure ClientAskSlCalc(Sender: TObject; var Value: Variant);
    procedure AskNotCalc(Sender: TObject; var Value: Variant);
    procedure AskIntimeCalc(Sender: TObject; var Value: Variant);
    procedure AskOverTimeCalc(Sender: TObject; var Value: Variant);
    procedure AskAllCountCalc(Sender: TObject; var Value: Variant);
    procedure CompTypeXhCalc(Sender: TObject; var Value: Variant);
    procedure CompTypeCountCalc(Sender: TObject; var Value: Variant);
    procedure CompUnitCountCalc(Sender: TObject; var Value: Variant);
    procedure CompNotCountCalc(Sender: TObject; var Value: Variant);
    procedure CompInTimeCalc(Sender: TObject; var Value: Variant);
    procedure CompOverCalc(Sender: TObject; var Value: Variant);
    procedure CompAllCountCalc(Sender: TObject; var Value: Variant);
    procedure AgentTypeXhCalc(Sender: TObject; var Value: Variant);
    procedure AgentTypeCountCalc(Sender: TObject; var Value: Variant);
    procedure AgentWorkIdXhCalc(Sender: TObject; var Value: Variant);
    procedure AgentCountCalc(Sender: TObject; var Value: Variant);
    procedure ZhGzXhCalc(Sender: TObject; var Value: Variant);
    procedure ZhMydCalc(Sender: TObject; var Value: Variant);
    procedure StaAskXhCalc(Sender: TObject; var Value: Variant);
    procedure SatAskCountCalc(Sender: TObject; var Value: Variant);
    procedure CompXhCalc(Sender: TObject; var Value: Variant);
    procedure CompCountCalc(Sender: TObject; var Value: Variant);
    procedure FeedXhCalc(Sender: TObject; var Value: Variant);
    procedure ppVariable1Calc(Sender: TObject; var Value: Variant);
    procedure CompUnitXhCalc(Sender: TObject; var Value: Variant);
    procedure ppVariable11Calc(Sender: TObject; var Value: Variant);
  private
    { Private declarations }
    FDBName:string;
    FSQLText,FDetailSQLText,FSubDetailSQLText:string;
    FTemplateName:string;
    procedure SetAutoField(var Value: Variant) ;
    Procedure SetValue(Str: String;var Value: Variant);
  public
    { Public declarations }
    property TmpReportName :TppReport read pprp_main ;
    property TmpDesigner   :TppDesigner read ppDgn_Main;
    property TemplateName:string read FTemplateName write FTemplateName;
    property DBName:string read FDBName write FDBName;
    property SQLText:string read FSQLText write FSQLText;
    property DetailSQLText:String read FDetailSQLText write FDetailSQLtext;
    property SubDetailSQLText:String read FSubDetailSQLText write FSubDetailSQLtext;
    constructor CreateForm(AOwner: TComponent;theTmpReportName :TppReport);
    constructor CreateAutoForm(AOwner: TComponent;db_Name,SQL_Text:string;
                               Detail_SQL_Text,SubDetail_SQL_Text:string);
  end;

implementation


uses SystemDM;


{$R *.DFM}

constructor TfrmPreviewForm.CreateForm(AOwner: TComponent;theTmpReportName :TppReport);
begin
   inherited Create(AOwner);
   pprp_main:=theTmpReportName;

end;

constructor TfrmPreviewForm.CreateAutoForm(AOwner: TComponent;db_Name,SQL_Text:string;
                                           Detail_SQL_Text,SubDetail_SQL_Text:string);
begin
  inherited Create(AOwner);
  DBName  :=db_Name;
  SQLText :=SQL_Text;
  DetailSQLText   :=Detail_SQL_Text;
  SubDetailSQLText:=SubDetail_SQL_Text;
  if Length(SQLText)<>0 then
  with Qr_Report do
  begin
    Close;
    Sql.Text:=SQLText;
    try
      Open;
    except
    end;
  end
  else
  begin
    ShowMessage('no Report SQL!');
  end;
  wwds_Main.DataSet      :=Qr_Report;
  ppdbp_Main.DataSource:=wwds_Main;

  if Length(DetailSQLText)<>0 then
  begin
    Qr_DetailReport.DataSource      :=wwds_Main;
    wwds_Detail.DataSet             :=Qr_DetailReport;
    ppdbp_Detail.DataSource         :=wwds_Detail;
    ppdbp_Detail.MasterDataPipeline :=ppdbp_Main;
    with Qr_DetailReport do
    begin
      Close;
      Sql.Text:=DetailSQLText;
      try
        Open;
      except
      end;
    end;
  end else
  begin
    Qr_DetailReport.DataSource      :=nil;
    ppdbp_Detail.MasterDataPipeline :=nil;
  end;
  if Length(SubDetailSQLText)<>0 then
  begin
    Qr_SubDetailReport.DataSource      :=wwds_Detail;
    wwds_SubDetail.DataSet             :=Qr_SubDetailReport;
    ppdbp_SubDetail.DataSource         :=wwds_SubDetail;
    ppdbp_SubDetail.MasterDataPipeline :=ppdbp_Detail;
    with Qr_SubDetailReport do
    begin
      Close;
      Sql.Text:=SubDetailSQLText;
      try
        Open;
      except
      end;
    end;
  end else
  begin
    Qr_SubDetailReport.DataSource      :=nil;
    ppdbp_SubDetail.MasterDataPipeline :=nil;
  end;
end;

procedure TfrmPreviewForm.FormCreate(Sender: TObject);
var
  NewItem: TMenuItem;
begin
  tbar97_Self.Caption:=self.Caption;
  actn_View_Toolbars_bill.Caption:=self.Caption;
  ppViewer1.Report:=TmpReportName;
  ppViewer1.ZoomSetting := zs100Percent;
  ppDgn_Main.Report :=TmpReportName;
  mskPreviewPercentage.Text := IntToStr(ppViewer1.CalculatedZoom);
  tbar97_Self.AddDockForm(Application.MainForm);
  NewItem := TMenuItem.Create(Self);
  NewItem.Action:=actn_View_Toolbars_bill;

end;

procedure TfrmPreviewForm.spbPreviewPrintClick(Sender: TObject);
begin
  ppViewer1.Report.DeviceType:='Printer';
  ppViewer1.Print;

end;

procedure TfrmPreviewForm.spbPreviewWholeClick(Sender: TObject);
begin
  ppViewer1.ZoomSetting := zsWholePage;
  mskPreviewPercentage.Text := IntToStr(ppViewer1.CalculatedZoom);
end;

procedure TfrmPreviewForm.spbPreviewWidthClick(Sender: TObject);
begin
  ppViewer1.ZoomSetting := zsPageWidth;
  mskPreviewPercentage.Text := IntToStr(ppViewer1.CalculatedZoom);
end;

procedure TfrmPreviewForm.spbPreview100PercentClick(Sender: TObject);
begin
  ppViewer1.ZoomSetting := zs100Percent;
  mskPreviewPercentage.Text := IntToStr(ppViewer1.CalculatedZoom);
end;

procedure TfrmPreviewForm.spbPreviewFirstClick(Sender: TObject);
begin
  ppViewer1.FirstPage;
end;

procedure TfrmPreviewForm.spbPreviewPriorClick(Sender: TObject);
begin
  ppViewer1.PriorPage;
end;

procedure TfrmPreviewForm.mskPreviewPageKeyPress(Sender: TObject;
  var Key: Char);
var
  liPage: Longint;
begin
  if (Key = #13) then
  begin
    liPage := StrToIntDef(mskPreviewPage.Text,ppViewer1.AbsolutePageNo);
    ppViewer1.GotoPage(liPage);
    mskPreviewPage.Text := IntToStr(ppViewer1.AbsolutePageNo);
  end;
end;

procedure TfrmPreviewForm.spbPreviewNextClick(Sender: TObject);
begin
  ppViewer1.NextPage;
end;

procedure TfrmPreviewForm.spbPreviewLastClick(Sender: TObject);
begin
  ppViewer1.LastPage;
end;

procedure TfrmPreviewForm.mskPreviewPercentageKeyPress(Sender: TObject;
  var Key: Char);
var
  liPercentage: Integer;
begin
  if (Key = #13) then
  begin
    liPercentage := StrToIntDef(mskPreviewPercentage.Text, 100);
    if (liPercentage<1) or (liPercentage>249) then
    begin
      ShowMessage('数字必须界于1到249之间.');
      mskPreviewPercentage.Text := IntToStr(ppViewer1.CalculatedZoom);
      exit;
    end;
    ppViewer1.ZoomPercentage := liPercentage;
    spbPreviewWhole.Down := False;
    spbPreviewWidth.Down := False;
    spbPreview100Percent.Down := False;
    mskPreviewPercentage.Text := IntToStr(ppViewer1.CalculatedZoom);
  end;
end;

procedure TfrmPreviewForm.spbPreviewCloseClick(Sender: TObject);
begin
  if TppReport(TmpReportName).Printing then
    ppViewer1.Cancel
  else
    Close;
end;

procedure TfrmPreviewForm.ppViewer1PrintStateChange(Sender: TObject);
var
  lPosition: TPoint;
begin
  if ppViewer1.Busy then
  begin
    mskPreviewPercentage.Enabled := False;
    mskPreviewPage.Enabled := False;
    ppViewer1.Cursor := crHourGlass;
    pnlStatusBar.Cursor := crHourGlass;
    spbPreviewClose.Cursor := crArrow;
    spbPreviewClose.Caption := '取消';
  end else
  begin
    mskPreviewPercentage.Enabled := True;
    mskPreviewPage.Enabled := True;
    ppViewer1.Cursor := crDefault;
    pnlStatusBar.Cursor := crDefault;
    spbPreviewClose.Cursor := crDefault;
    spbPreviewClose.Caption := '关闭';
  end;
  GetCursorPos(lPosition);
  SetCursorPos(lPosition.X, lPosition.Y);
end;

procedure TfrmPreviewForm.ppViewer1StatusChange(Sender: TObject);
begin
  //ppViewer1.Report.PrintDialog.
  //if TppViewer(Sender).AbsolutePageNo>0 then
    //pnlStatusBar.Caption :='第'+IntToStr(TppViewer(Sender).AbsolutePageNo)+'页';// TppViewer(Sender).Status;
  pnlStatusBar.Caption :=ppViewer1.Status;
end;

procedure TfrmPreviewForm.ppViewer1PageChange(Sender: TObject);
begin
  mskPreviewPage.Text := IntToStr(TppViewer(Sender).AbsolutePageNo);
  mskPreviewPercentage.Text := IntToStr(TppViewer(Sender).CalculatedZoom);
end;

procedure TfrmPreviewForm.spbPreviewPrintSetupClick(Sender: TObject);
begin
  PrinterSetupDialog1.Execute;
end;

procedure TfrmPreviewForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin

⌨️ 快捷键说明

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