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.