unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, rxdbgrid, rxmemds, RxDBGridExportSpreadSheet, Forms, Controls, Graphics, Dialogs, StdCtrls, db; type { TForm1 } TForm1 = class(TForm) Button1: TButton; CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; dsData: TDataSource; Label1: TLabel; rxDataAAA: TStringField; rxDataGROUP_ID: TLongintField; rxDataID: TLongintField; rxDataSUM: TCurrencyField; rxDataTEXT: TStringField; RxDBGrid1: TRxDBGrid; rxData: TRxMemoryData; RxDBGridExportSpreadSheet1: TRxDBGridExportSpreadSheet; procedure Button1Click(Sender: TObject); procedure CheckBox1Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure rxDataAfterScroll(DataSet: TDataSet); private public end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin rxData.Open; for i:=1 to 200 do rxData.AppendRecord([i, ((i-1) div 4) + 1, Random * 1000, Format('Test string %d', [i])]); RxDBGrid1.GroupItems.GroupFieldName:='GROUP_ID'; RxDBGrid1.ColumnByFieldName('SUM').GroupParam.ValueType:=fvtSum; RxDBGrid1.ColumnByFieldName('SUM').GroupParam.Alignment:=taRightJustify; RxDBGrid1.ColumnByFieldName('GROUP_ID').GroupParam.ValueType:=fvtCount; RxDBGrid1.ColumnByFieldName('ID').GroupParam.ValueType:=fvtStaticText; RxDBGrid1.ColumnByFieldName('ID').GroupParam.StaticText:='Группа:'; RxDBGrid1.ColumnByFieldName('AAA').GroupParam.ValueType:=fvtFieldValue; RxDBGrid1.ColumnByFieldName('AAA').GroupParam.Alignment:=taCenter; RxDBGrid1.ColumnByFieldName('AAA').GroupParam.Color:=clRed; RxDBGrid1.GroupItems.Color:=clSkyBlue; rxData.First; CheckBox1Change(nil); end; type THackRxDBGrid = class(TRxDBGrid); procedure TForm1.rxDataAfterScroll(DataSet: TDataSet); begin Label1.Caption:=Format('ActiveRecord %d', [THackRxDBGrid(RxDBGrid1).DataLink.ActiveRecord]); end; procedure TForm1.CheckBox1Change(Sender: TObject); begin RxDBGrid1.GroupItems.Active:=CheckBox1.Checked; RxDBGrid1.FooterOptions.Active:=CheckBox2.Checked; RxDBGrid1.ReadOnly:=CheckBox3.Checked; end; procedure TForm1.Button1Click(Sender: TObject); begin RxDBGridExportSpreadSheet1.Options:=RxDBGridExportSpreadSheet1.Options + [ressExportGroupData]; RxDBGridExportSpreadSheet1.Execute; end; end.