mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 22:58:12 +02:00
246 lines
5.5 KiB
ObjectPascal
246 lines
5.5 KiB
ObjectPascal
unit Unit1;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, LR_DSet,
|
|
LR_Class, Buttons, StdCtrls;
|
|
|
|
{.$DEFINE DEBUG}
|
|
|
|
type
|
|
|
|
{ TForm1 }
|
|
|
|
TForm1 = class(TForm)
|
|
btnShowReport: TButton;
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
frReport1: TfrReport;
|
|
MasterDS: TfrUserDataset;
|
|
ColumnsDS: TfrUserDataset;
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure ColumnsDSCheckEOF(Sender: TObject; var IsEof: Boolean);
|
|
procedure ColumnsDSFirst(Sender: TObject);
|
|
procedure ColumnsDSNext(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure btnShowReportClick(Sender: TObject);
|
|
procedure frReport1BeginBand(Band: TfrBand);
|
|
procedure frReport1BeginColumn(Band: TfrBand);
|
|
procedure frReport1BeginDoc;
|
|
procedure frReport1BeginPage(pgNo: Integer);
|
|
procedure frReport1EndBand(Band: TfrBand);
|
|
procedure frReport1EndDoc;
|
|
procedure frReport1EndPage(pgNo: Integer);
|
|
procedure frReport1EnterRect(Memo: TStringList; View: TfrView);
|
|
procedure frReport1GetValue(const ParName: String; var ParValue: Variant);
|
|
procedure frReport1PrintColumn(ColNo: Integer; var AWidth: Integer);
|
|
procedure frReport1Progress(n: Integer);
|
|
procedure frReport1UserFunction(const AName: String; p1, p2, p3: Variant;
|
|
var Val: Variant);
|
|
procedure MasterDSCheckEOF(Sender: TObject; var ISEof: Boolean);
|
|
procedure MasterDSFirst(Sender: TObject);
|
|
procedure MasterDSNext(Sender: TObject);
|
|
private
|
|
{ private declarations }
|
|
public
|
|
{ public declarations }
|
|
FRow: Integer;
|
|
FCol: Integer;
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R unit1.lfm}
|
|
|
|
uses lclproc, unit2;
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TForm1.frReport1GetValue(const ParName: String; var ParValue: Variant);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1GetValue: ParName=',ParName);
|
|
{$ENDIF}
|
|
if ParName='I' then
|
|
ParValue:=FCol
|
|
else
|
|
if ParName='J' then
|
|
ParValue:=FRow
|
|
else
|
|
if ParName='S1' then begin
|
|
if FRow=0 then
|
|
ParValue:=''
|
|
else
|
|
ParValue:='Row'+IntToStr(FRow);
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.frReport1PrintColumn(ColNo: Integer; var AWidth: Integer);
|
|
begin
|
|
aWidth:=60;
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1PrintColumn: ColNo',COlNo,' Width=',AWidth);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1Progress(n: Integer);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1Progress: n=',n);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1UserFunction(const AName: String; p1, p2, p3: Variant;
|
|
var Val: Variant);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1UserFuncion: Name=',AName,' P1=',P1,' P2=',P2,' P3=',P3, ' Val=',Val);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1EnterRect(Memo: TStringList; View: TfrView);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1EnterRect: INI, Memo: "', Dbgstr(Memo.Text),'" View=', View.Name,' View.FillColor=', ColorToString(View.FillColor) );
|
|
{$ENDIF}
|
|
if FRow=0 then
|
|
view.FillColor := clWhite
|
|
else
|
|
if FCol mod 4=0 then
|
|
view.FillColor := clYellow;
|
|
|
|
if (FCol=3)and(FRow=3) then
|
|
view.Memo.Text := 'HELLO';
|
|
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1EnterRect: END, Memo: "', Dbgstr(Memo.Text),'" View=', View.Name,' View.FillColor=', ColorToString(View.FillColor) );
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1BeginBand(Band: TfrBand);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1BeginBand: Band=',Band.Name);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.btnShowReportClick(Sender: TObject);
|
|
begin
|
|
frReport1.ShowReport;
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
frReport1.LoadFromFile('usuario.lrf');
|
|
end;
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
begin
|
|
frReport1.DesignReport;
|
|
end;
|
|
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
begin
|
|
form2.show;
|
|
end;
|
|
|
|
procedure TForm1.ColumnsDSFirst(Sender: TObject);
|
|
begin
|
|
FCol:=1;
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.ColumnsDSFirst: FCol=',FCol);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.ColumnsDSNext(Sender: TObject);
|
|
begin
|
|
Inc(FCol);
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.ColumnsDSNext: FCol=',FCol);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.ColumnsDSCheckEOF(Sender: TObject; var ISEof: Boolean);
|
|
begin
|
|
IsEOF:=FCol>9;
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.ColumnsDSCheckEOF: FCol=',FCol,' IsEOF=',IsEOF);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1BeginColumn(Band: TfrBand);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1BeginColumn: Band=',Band.Name);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1BeginDoc;
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1BeginDoc;');
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1BeginPage(pgNo: Integer);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1BeginPage: PgNo=',PgNo);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1EndBand(Band: TfrBand);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1EndBand: Band=',Band.Name);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1EndDoc;
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1EndDoc:');
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.frReport1EndPage(pgNo: Integer);
|
|
begin
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.frReport1EndPage: PgNo=',PgNo);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.MasterDSFirst(Sender: TObject);
|
|
begin
|
|
FRow:=0;
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.MasterDSFirst: FRow=',FRow);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.MasterDSNext(Sender: TObject);
|
|
begin
|
|
Inc(FRow);
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.MasterDSNext: FRow=',FRow);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
procedure TForm1.MasterDSCheckEOF(Sender: TObject; var IsEof: Boolean);
|
|
begin
|
|
IsEof:=FRow>40;
|
|
{$IFDEF DEBUG}
|
|
WriteLn('TForm1.MasterDSCheckEOF: FRow=',FRow,' IsEOF=',IsEOF);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
end.
|
|
|