RxDBGrid - add new event TOnRxCalcFooterValues. Issue 0026027 from freeman35

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3392 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2014-07-28 12:25:45 +00:00
parent 0af501a361
commit fa60f84556

View File

@ -69,6 +69,9 @@ type
TGetCellPropsEvent = procedure(Sender: TObject; Field: TField;
AFont: TFont; var Background: TColor) of object;
//Freeman35 added
TOnRxCalcFooterValues = procedure(Sender: TObject; Column: TRxColumn; var AValue : Variant) of object;
{$IFDEF RxDBGridDepricatedProps}
//TRxDBGridAllowedOperation = (aoInsert, aoUpdate, aoDelete, aoAppend);
//TRxDBGridAllowedOperations = set of TRxDBGridAllowedOperation;
@ -514,6 +517,7 @@ type
FOnGetBtnParams: TGetBtnParamsEvent;
FOnFiltred: TNotifyEvent;
FOnRxCalcFooterValues :TOnRxCalcFooterValues;
//auto sort support
FMarkerUp : TBitmap;
@ -859,6 +863,7 @@ type
property OnStartDock;
property OnStartDrag;
property OnTitleClick;
property OnRxCalcFooterValues: TOnRxCalcFooterValues read FOnRxCalcFooterValues write FOnRxCalcFooterValues;
property OnUserCheckboxBitmap;
property OnUTF8KeyPress;
@ -4228,10 +4233,26 @@ var
SaveAfterScroll:TDataSetNotifyEvent;
SaveBeforeScroll:TDataSetNotifyEvent;
RCol:TRxColumn;
AValue:Variant;
begin
if (not (FFooterOptions.Active and DatalinkActive)) or (Columns.Count = 0) or (gsAddingAutoColumns in GridStatus) then
Exit;
//Дополнительно проверим - а стоит ли делать пробег по данным - есть ли агрегатные функции
if Assigned(OnRxCalcFooterValues)then
begin
Inc(FInProcessCalc);
for i := 0 to Columns.Count - 1 do
begin
RCol := TRxColumn(Columns[i]);
RCol.Footer.ResetTestValue;
AValue:=Null;
OnRxCalcFooterValues(Self, RCol, AValue);
if AValue<>null then RCol.Footer.FTestValue := AValue;
end;
Dec(FInProcessCalc);
Exit;
end;
APresent := False;
for i := 0 to Columns.Count - 1 do
begin