📄 reportdsg.pas
字号:
unit reportdsg;
interface
uses
{$IFDEF WIN32}
Windows,
{$ELSE}
WinProcs, WinTypes,
{$ENDIF}
Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ppCtrls, ppBands, ppClass, ppEndUsr, Menus, ppTypes, Buttons, ExtCtrls,
StdCtrls, ppForms, ppReport, ppViewr, ppVar, ppComm, ppRelatv,
ppProd, Db, DBTables, ppDB, ppDBPipe, ppDBBDE, ppCache, RXCtrls,
ComCtrls, ToolWin, ADODB, Grids, DBGrids, DBCtrls;
type
Tformreportdsg = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
C1: TMenuItem;
N1: TMenuItem;
A1: TMenuItem;
spbDesign: TSpeedButton;
SpeedButton2: TSpeedButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADODataSet1: TADODataSet;
ADODataSet1tablename: TStringField;
ADODataSet1tablechinese: TStringField;
ADODataSet1adoname: TStringField;
DBNavigator1: TDBNavigator;
ppDesigner1: TppDesigner;
ppReport1: TppReport;
ppReport1DetailBand1: TppDetailBand;
plCustomer: TppBDEPipeline;
dsSet: TDataSource;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure ppDesigner1Close(Sender: TObject; var Action: TCloseAction);
procedure SpHelpClick(Sender: TObject);
procedure A1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure spbDesignClick(Sender: TObject);
protected
private
FPreview: TppCustomPreviewer;
procedure LoadReportStreamEvent(Sender: TObject; Stream: TStream);
procedure SaveReportStreamEvent(Sender: TObject; Stream: TStream);
public
property Designer: TppDesigner read ppDesigner1;
property Report: TppReport read ppReport1;
end;
{$IFDEF WIN32}
{$H-}
{$ENDIF}
{record structure used to store information inside report template }
TppTemplateInfo = record
HeaderID: Integer;
Comments: String;
DateTime: TDateTime;
end; {record, TppTemplateRec}
{$IFDEF WIN32}
{$H+}
{$ENDIF}
const
cHeaderID = 12345;
var
formreportdsg: Tformreportdsg;
RepData:tadoDataSet;
implementation
uses Main,datamol,fieldShow,About, reportabout;
{$R *.DFM}
procedure Tformreportdsg.FormCreate(Sender: TObject);
begin
adodataset1.Open;
FPreview := nil;
with Report.Template do
begin
Format := ftASCII;
Offset := SizeOf(TppTemplateInfo);
OnLoadStart := LoadReportStreamEvent;
OnSaveEnd := SaveReportStreamEvent;
end;
end;
procedure Tformreportdsg.FormDestroy(Sender: TObject);
begin
FPreview.Free;
FPreview := nil;
Designer.Free;
end;
procedure Tformreportdsg.LoadReportStreamEvent(Sender: TObject; Stream: TStream);
var
lTemplateInfo: TppTemplateInfo;
begin
Stream.Seek(0,soFromBeginning);
Stream.Read(lTemplateInfo, SizeOf(TppTemplateInfo) );
end;
procedure Tformreportdsg.SaveReportStreamEvent(Sender: TObject; Stream: TStream);
begin
end;
procedure Tformreportdsg.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Report.Printing then
begin
MessageDlg('不能关闭窗口!正在打印.' ,mtInformation, [mbOK] ,0);
CanClose := False;
end;
end;
procedure Tformreportdsg.ppDesigner1Close(Sender: TObject;
var Action: TCloseAction);
begin
formreportdsg.Close;
if Formfieldshow<>nil then
Formfieldshow.Close;
end;
procedure Tformreportdsg.SpHelpClick(Sender: TObject);
begin
if Formfieldshow=nil then
Formfieldshow:=TFormfieldshow.Create(Application);
Formfieldshow.Show;
end;
procedure Tformreportdsg.A1Click(Sender: TObject);
begin
Formreportabout :=TFormreportabout.Create(Application);
Formreportabout.ShowModal;
Formreportabout.Free;
end;
procedure Tformreportdsg.SpeedButton2Click(Sender: TObject);
begin
close;
end;
procedure Tformreportdsg.spbDesignClick(Sender: TObject);
var
i:integer;
begin
try
repdata:=TADODataset(Datamod.FindComponent(adodataset1.fieldbyname('adoname').asstring));
dsset.DataSet:=TADODataset(Datamod.FindComponent(adodataset1.fieldbyname('adoname').asstring));
TADODataset(Datamod.FindComponent(adodataset1.fieldbyname('adoname').asstring)).open;
except
Application.messagebox('对不起,此表单不能进行报表自定义!','警告',mb_ok+mb_iconwarning);
exit;
end;
for i:=0 to REpData.FieldCount -1 do
plCustomer.Fields[I].FieldAlias :=RepData.Fields[i].DisplayLabel;
Visible:=False;
Designer.WindowState := wsMaximized;
Designer.ShowModal;
Designer.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -