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

📄 unit1.pas

📁 Report Machine Sample
💻 PAS
字号:
//  Report Machine 1.0 demo reports.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, ComCtrls, ImgList, RM_class;

const
  crHand = 12;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    RB1: TRadioButton;
    RB2: TRadioButton;
    Memo1: TMemo;
    btnDesign: TButton;
    btnPreview: TButton;
    Label7: TLabel;
    Label8: TLabel;
    Tree1: TTreeView;
    Label2: TLabel;
    ImageList1: TImageList;
    RadioGroup1: TRadioGroup;
    procedure btnDesignClick(Sender: TObject);
    procedure btnPreviewClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Tree1Change(Sender: TObject; Node: TTreeNode);
    procedure Tree1DblClick(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Private declarations }
    WPath: string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2, Unit3;

{$R *.DFM}
{$R HAND.RES}

procedure TForm1.FormShow(Sender: TObject);
begin
  WPath := ExtractFilePath(ParamStr(0)) + 'Reports\';
  Tree1.Items[0].Expand(True);
  Tree1.Selected := Tree1.Items[0].Item[0].Item[0];
  Tree1.TopItem := Tree1.Items[0];
  Screen.Cursors[crHand] := LoadCursor(hInstance, 'FR_HAND');
  RadioGroup1Click(nil);
end;

procedure TForm1.btnDesignClick(Sender: TObject);
var
  Node: TTreeNode;
begin
  Node := Tree1.Selected;
  if (Node = nil) or (Node.StateIndex = -1) or (Node.StateIndex = 15) then Exit;
  Form2.RMGridReport1.DesignReport;
end;

procedure TForm1.btnPreviewClick(Sender: TObject);
var
  n: Integer;
  Node: TTreeNode;
  Report: TRMReport;
begin
  Node := Tree1.Selected;
  if (Node = nil) or (Node.StateIndex = -1) then Exit;

  n := Node.StateIndex;
  Report := nil;
  with Form2 do
  begin
    if n = 15 then { Composite report }
    begin
    end
    else
    begin
      Report := RMGridReport1;
      if n > 9 then
        Report.LoadFromFile(WPath + IntToStr(n) + '.rls')
      else
        Report.LoadFromFile(WPath + '0' + IntToStr(n) + '.rls');

      if n = 14 then { "Live" report }
      begin
//        Report.OnObjectClick := RMReport1ObjectClick;
//        Report.OnMouseOverObject := RMReport1MouseOverObject;
      end
      else
      begin
//        Report.OnObjectClick := nil;
//        Report.OnMouseOverObject := nil;
      end;
    end;
  end;

  if RB1.Checked then
    Report.Preview := nil
  else
    Report.Preview := Form3.RMPreview1;
  Report.ShowReport;
  if RB2.Checked then
    Form3.ShowModal;
end;

procedure TForm1.Tree1Change(Sender: TObject; Node: TTreeNode);
var
  n: Integer;
begin
  n := Node.StateIndex;
  if n = -1 then
  begin
    Memo1.Text := '';
    btnDesign.Enabled := False;
    btnPreview.Enabled := False;
    Exit;
  end
  else if n = 15 then
  begin
    Memo1.Text := 'Demostrates now to join several reports into one. To do this, fill ' +
      'TRMCompositeReport.Reports property by references to the other ' +
      'reports and call its ShowReport method. Reports can have different ' +
      'page sizes and orientation.';
    btnDesign.Enabled := False;
    btnPreview.Enabled := True;
    Exit;
  end;

  with Form2.RMGridReport1 do
  begin
    if n > 9 then
      LoadFromFile(WPath + IntToStr(n) + '.rls')
    else
      LoadFromFile(WPath + '0' + IntToStr(n) + '.rls');

    if Dictionary.Variables.IndexOf('Description') <> -1 then
      Memo1.Text := Dictionary.Variables['Description']
    else
      Memo1.Text := '';
    btnDesign.Enabled := True;
    btnPreview.Enabled := True;
  end;
end;

procedure TForm1.Tree1DblClick(Sender: TObject);
begin
	btnDesign.Click;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
    0: RMResourceManager.LoadResourceModule('rm_eng.dll');
    1: RMResourceManager.LoadResourceModule('rm_ChiGB.dll');
    2: RMResourceManager.LoadResourceModule('rm_chibig5.dll');
  end;
end;

end.

⌨️ 快捷键说明

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