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

📄 unt_main.pas

📁 飞思科技的书不错
💻 PAS
字号:
unit Unt_Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,
  Db, DBTables, QuickRpt, QRCtrls, QRextra,
  Math, QRPrntr;

type
  TFrm_Main = class(TForm)
    btnActivate: TButton;
    Label1: TLabel;
    cmbTableName: TComboBox;
    qryCurrent: TQuery;
    btnPreview: TButton;
    btnPrint: TButton;
    btnLoad: TButton;
    btnSave: TButton;
    dlgOpen: TOpenDialog;
    dlgSave: TSaveDialog;
    prvHot: TQRPreview;
    procedure btnActivateClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnPreviewClick(Sender: TObject);
    procedure btnPrintClick(Sender: TObject);
    procedure btnLoadClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure cmbTableNameChange(Sender: TObject);
    procedure btnPreviewHotClick(Sender: TObject);
    procedure prvHotDblClick(Sender: TObject);
  private
    procedure OnRepAfterPrint(Sender: TObject);
    { Private declarations }
  public
    procedure Clear;
    { Public declarations }
  end;

var
  Frm_Main: TFrm_Main;

implementation

uses Unt_DM_Main, UntActReport;

var
  tblCurrent: TTable;
  actrptCool: TActReport;

{$R *.DFM}

procedure TFrm_Main.OnRepAfterPrint(Sender: TObject);
begin
  ShowMessage('现在可以删除活动报表对象了');
end;

procedure TFrm_Main.FormCreate(Sender: TObject);
begin
  tblCurrent := nil;
  actrptCool := nil;
end;

procedure TFrm_Main.FormActivate(Sender: TObject);
begin
  if cmbTableName.Items.Count > 0 then
    Exit;

  with DM_Main.ADOCnt1 do begin
    Connected := True;
    GetTableNames(cmbTableName.Items);
    Close
  end;
  cmbTableName.ItemIndex := Min(1, cmbTableName.Items.Count);
  cmbTableNameChange(Self);
end;

procedure TFrm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Clear;
end;

procedure TFrm_Main.Clear;
begin
  if Assigned(tblCurrent) then begin
    tblCurrent.Active := False;
    tblCurrent.Free;
    tblCurrent := nil;
  end;
  if Assigned(actrptCool) then begin
    actrptCool.Free;
    actrptCool := nil;
  end;
end;

procedure TFrm_Main.cmbTableNameChange(Sender: TObject);
var
  i,j: Integer;
  nCurSel: integer;
  strTableName: string;
  strList: TStringList;
begin
  Clear;
  tblCurrent := TTable.Create(Self);
  actrptCool := TActReport.Create(Self);

  nCurSel := cmbTableName.ItemIndex;
  strTableName := cmbTableName.Items.Strings[nCurSel];
  strList := TStringList.Create;


  with tblCurrent do begin
    Active := False;
    Name := strTableName;
    DatabaseName := DM_Main.Database1.DatabaseName;
    TableName := strTableName;
    ReadOnly := True;
    Active := True;
    for i := 0 to FieldDefs.Count - 1 do
      strList.Add(FieldDefs[i].Name);
  end;

  actrptCool.Initialize(tblCurrent, strTableName, strList);
//  actrptCool.Make;
//  dlgOpen.FileName := actrptCool.GetFileName;
//  if not dlgOpen.Execute then
//    Exit;

 // actrptCool.SetFileName(dlgOpen.FileName);
  actrptCool.LoadRep;
  actrptCool.PreviewRep(prvHot);
  strList.Free;
end;

procedure TFrm_Main.btnActivateClick(Sender: TObject);
begin
  if Assigned(actrptCool) then
    actrptCool.ShowModal;
       actrptCool.SaveRep;
   actrptCool.PreviewRep(prvHot);

end;


procedure TFrm_Main.btnPreviewClick(Sender: TObject);
begin
  if Assigned(actrptCool) then
    actrptCool.PreviewRep;
end;

procedure TFrm_Main.btnPrintClick(Sender: TObject);
begin
  if Assigned(actrptCool) then
    actrptCool.PrintRep(OnRepAfterPrint);
end;

procedure TFrm_Main.btnLoadClick(Sender: TObject);
begin
  if not Assigned(actrptCool) then
    Exit;

  dlgOpen.FileName := actrptCool.GetFileName;
  if not dlgOpen.Execute then
    Exit;
  actrptCool.SetFileName(dlgOpen.FileName);

  Screen.Cursor := crHourGlass;
  actrptCool.LoadRep;
  Screen.Cursor := crDefault;
end;

procedure TFrm_Main.btnSaveClick(Sender: TObject);
begin
  if not Assigned(actrptCool) then
    Exit;

  dlgSave.FileName := actrptCool.GetFileName;
  if not dlgSave.Execute then
    Exit;
  actrptCool.SetFileName(dlgSave.FileName);

  Screen.Cursor := crHourGlass;
  actrptCool.SaveRep;
  Screen.Cursor := crDefault;
end;

procedure TFrm_Main.btnPreviewHotClick(Sender: TObject);
begin
  if Assigned(actrptCool) then
    actrptCool.PreviewRep(prvHot);
end;

procedure TFrm_Main.prvHotDblClick(Sender: TObject);
begin
  btnPreview.Click;
end;

end.

⌨️ 快捷键说明

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