Hallo Experten,
ich versuche nun schon eine Weile, in die Summierung der cxGrid einzugreifen.
Aber irgendwie hqab ich jetzt ein BlackOut.
Ich habe 3 Summenfelder. Gesamt (Index 0), Menge To (Index 2) und Preis (Index 3).
Unter Preis will ich den Durchschnittspreis, der sich aus den Summenwerten Gesamt und MengeTo bildet.
Er rechnet auch richtig, nur fehlen Daten, wenn ich nach mehr als 1 Item gruppiere.
(siehe Anhang - leere Kästchen in der unteren Gruppe)
Sieht vielleich jemand den Fehler ?
Delphi-Quellcode:
procedure TForm1.CalculateGroupAverage(ADataGroupIndex: TcxDataGroupIndex);
var
AMengeTo, AGesamt, AVarAverage: Variant;
begin
with gv.DataController.Summary do
begin
AMengeTo := GroupSummaryValues[ADataGroupIndex, 2];
AGesamt := GroupSummaryValues[ADataGroupIndex, 0];
if not (VarIsNull(AMengeTo) or VarIsNull(AGesamt)) then
begin
AVarAverage := AGesamt / AMengeTo;
GroupSummaryValues[ADataGroupIndex, 3] := FloatToStrF(AVarAverage, ffFixed, 15, 2);
end;
end;
end;
procedure TForm1.gvDataControllerSummaryAfterSummary(
ASender: TcxDataSummary);
var
AChildDataGroupsCount: Integer;
AChildDataGroupIndex, AParentDataGroupIndex: TcxDataGroupIndex;
AChildPosition: Integer;
i: Integer;
begin
with TcxDataControllerGroups(gv.DataController.Groups) do
begin
for i := 1 to GroupingItemCount do
begin
AChildDataGroupsCount := ChildCount[i -2];
for AChildPosition := 0 to AChildDataGroupsCount - 1 do
begin
AChildDataGroupIndex := ChildDataGroupIndex[i -2, AChildPosition];
CalculateGroupAverage(AChildDataGroupIndex);
end;
end;
end;
end;
Danke, Frank