📄 previewform.~pas
字号:
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 + -