Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TcxGrid und onAfterSummary [Erledigt] (https://www.delphipraxis.net/80979-tcxgrid-und-onaftersummary-%5Berledigt%5D.html)

dataspider 18. Nov 2006 13:26


TcxGrid und onAfterSummary [Erledigt]
 
Liste der Anhänge anzeigen (Anzahl: 1)
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 ? :shock:


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

alzaimar 18. Nov 2006 14:55

Re: TcxGrid und onAfterSummary
 
Ich verstehe nicht, wieso Du den Durschnittspreis per Code berechnest. Das TcxGrid kann das doch von Hause aus...

dataspider 18. Nov 2006 15:03

Re: TcxGrid und onAfterSummary
 
Zitat:

Zitat von alzaimar
Ich verstehe nicht, wieso Du den Durschnittspreis per Code berechnest. Das TcxGrid kann das doch von Hause aus...

Das ist ganz einfach.
Wenn ich 2 Positionen habe, einmal Preis 3 und eimal 5, so ist der AVG nqatürlich 4.
Doch das nützt mit gar nichts, denn:

Ich habe
2 to zu 3 € (= 6 €)

und

10 to zu 5 € (=50 €).

Der D-Preis ist 56 € / 12 to = 4,67 € / to.

Cu, Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz