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

📄 unit5.pas

📁 FreeReport 2.34 consists of the report engine, designer and previewer, with capabilities comparable
💻 PAS
字号:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  FR_DSet, FR_Class;

type
  TForm5 = class(TForm)
    frReport1: TfrReport;
    CrossRowDataset: TFRUserDataset;
    CrossColumnDataset: TFRUserDataset;
    procedure CrossRowDatasetFirst(Sender: TObject);
    procedure CrossRowDatasetNext(Sender: TObject);
    procedure CrossRowDatasetCheckEOF(Sender: TObject; var EOF: Boolean);
    procedure CrossColumnDatasetFirst(Sender: TObject);
    procedure CrossColumnDatasetNext(Sender: TObject);
    procedure CrossColumnDatasetCheckEOF(Sender: TObject;
      var EOF: Boolean);
    procedure frReport1GetValue(const ParName: string;
      var ParValue: Variant);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure StartReport;
  end;

var
  Form5: TForm5;

implementation

uses datasets, Unit2;

{$R *.DFM}

var i, j: Integer;
    RowCount, ColCount: Integer;

procedure TForm5.FormCreate(Sender: TObject);
begin
  ColCount := 16; RowCount := 20;
end;

procedure TForm5.StartReport;
begin
  if Form2.ShowModal = mrOk then
  begin
    ColCount := StrToInt(Form2.Edit1.Text);
    RowCount := StrToInt(Form2.Edit2.Text);
    frReport1.ShowReport;
  end;
end;

procedure TForm5.CrossRowDatasetFirst(Sender: TObject);
begin
  i := 0;
end;

procedure TForm5.CrossRowDatasetNext(Sender: TObject);
begin
  Inc(i);
end;

procedure TForm5.CrossRowDatasetCheckEOF(Sender: TObject;
  var EOF: Boolean);
begin
  EOF := EOF or (i >= RowCount);
end;

procedure TForm5.CrossColumnDatasetFirst(Sender: TObject);
begin
  j := 0;
end;

procedure TForm5.CrossColumnDatasetNext(Sender: TObject);
begin
  Inc(j);
end;

procedure TForm5.CrossColumnDatasetCheckEOF(Sender: TObject;
  var EOF: Boolean);
begin
  EOF := EOF or (j >= ColCount);
end;

procedure TForm5.frReport1GetValue(const ParName: string;
  var ParValue: Variant);
begin
  if AnsiUpperCase(ParName) = 'CELL' then
    ParValue := IntToStr(i * ColCount + j + 1);
end;

end.

⌨️ 快捷键说明

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