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

📄 reportdsg.pas

📁 pasa人力资源考勤管理系统
💻 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 + -