Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#1

TcxGrid und onAfterSummary [Erledigt]

  Alt 18. Nov 2006, 14:26
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
Miniaturansicht angehängter Grafiken
summary_176.jpg  
Frank Reim
  Mit Zitat antworten Zitat