111 lines
2.5 KiB
ObjectPascal
111 lines
2.5 KiB
ObjectPascal
unit Unit1;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, rxdbgrid, rxmemds, RxDBGridExportSpreadSheet,
|
|
RxDBGridPrintGrid, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, db,
|
|
Grids, DBGrids;
|
|
|
|
type
|
|
|
|
{ TForm1 }
|
|
|
|
TForm1 = class(TForm)
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
CheckBox1: TCheckBox;
|
|
dsData: TDataSource;
|
|
Panel1: TPanel;
|
|
rxDataCODE: TLongintField;
|
|
rxDataDATE: TDateTimeField;
|
|
rxDataNAME: TStringField;
|
|
RxDBGrid1: TRxDBGrid;
|
|
rxData: TRxMemoryData;
|
|
RxDBGridExportSpreadSheet1: TRxDBGridExportSpreadSheet;
|
|
RxDBGridPrint1: TRxDBGridPrint;
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure CheckBox1Change(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure RxDBGrid1Columns0DrawColumnCell(Sender: TObject;
|
|
const Rect: TRect; DataCol: Integer; Column: TColumn;
|
|
State: TGridDrawState);
|
|
procedure RxDBGrid1MergeCells(Sender: TObject; ACol: Integer; var ALeft,
|
|
ARight: Integer; var ADisplayColumn: TRxColumn);
|
|
private
|
|
|
|
public
|
|
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
rxData.Open;
|
|
rxData.DisableControls;
|
|
for i:=1 to 30 do
|
|
rxData.AppendRecord([i, Date - i, 'Line '+IntToStr(i)]);
|
|
rxData.First;
|
|
rxData.EnableControls;
|
|
end;
|
|
|
|
procedure TForm1.RxDBGrid1Columns0DrawColumnCell(Sender: TObject;
|
|
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
|
|
var
|
|
S: String;
|
|
FAl: TAlignment;
|
|
begin
|
|
S:=rxDataCODE.DisplayText;
|
|
if CheckBox1.Checked and (rxDataCODE.AsInteger mod 10 = 1) then
|
|
FAl:=taCenter
|
|
else
|
|
FAl:=taRightJustify;
|
|
WriteTextHeader(RxDBGrid1.Canvas, Rect, S, FAl)
|
|
end;
|
|
|
|
procedure TForm1.RxDBGrid1MergeCells(Sender: TObject; ACol: Integer; var ALeft,
|
|
ARight: Integer; var ADisplayColumn: TRxColumn);
|
|
begin
|
|
if rxDataCODE.AsInteger mod 10 = 1 then
|
|
begin
|
|
ALeft:=1;
|
|
ARight:=3;
|
|
{ if rxDataCODE.AsInteger > 10 then
|
|
ADisplayColumn:=RxDBGrid1.ColumnByFieldName('DATE');}
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.CheckBox1Change(Sender: TObject);
|
|
begin
|
|
if CheckBox1.Checked then
|
|
RxDBGrid1.OptionsRx:=RxDBGrid1.OptionsRx + [rdgColSpanning]
|
|
else
|
|
RxDBGrid1.OptionsRx:=RxDBGrid1.OptionsRx - [rdgColSpanning];
|
|
end;
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
begin
|
|
RxDBGridExportSpreadSheet1.Execute;
|
|
end;
|
|
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
begin
|
|
RxDBGridPrint1.Execute;
|
|
end;
|
|
|
|
end.
|
|
|