AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DevExpress Summe

Ein Thema von yamaha007 · begonnen am 21. Jul 2009 · letzter Beitrag vom 8. Okt 2009
Antwort Antwort
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Re: DevExpress Summe

  Alt 23. Jul 2009, 08:20
Jetzt aber ....


Ab jetzt brauchst du keine Gruppe mehr vorgeben, d. h. ob du die Summarys änderst oder löscht wird immer bei einer Summe (skSum) die formatierte Zeit angezeigt.

Dazu brauchst du wieder meine Prozedure GetText und das Event vom Grid [Tableview].DataController.SummaryDefaultGroup.SummaryItems.O nSummary. Sobald eine Gruppierungsfunktion angezeigt werden soll wird das Event aufgerufen. Dabei prüfe ich ob es die korrekten Spalten sind (Es wird bei jeder Spalte in jedem Record ausgelöst).Dann ob es eine Footer ist und die Gruppierungsfunktion skSum. Wenn das der Fall ist, dann verbinde ich vom SummaryItem das Event OnGetText mit der Prozedure GetText. Diese Event wird nach der Summary Berechnung aufgerufen.

Einen kleinen Tipp habe ich noch. Hast du die Help Dateien runtergeladen, mir haben sie (fast) immer geholfen. Hier in diesem Fall aber nicht , dafür aber DevExpress Support, der ist sehr gut.

Der Eintrag war das was wir brauchten .... DevExpress Eintrag Q212225

Gruß
Matthias


Delphi-Quellcode:
procedure TForm1.cxGridDBTV1DataControllerSummaryDefaultGroupSummaryItemsSummary(
  ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
  var OutArguments: TcxSummaryEventOutArguments);
var
  AItem: TcxGridTableSummaryItem;
  AValue: Variant;
begin
  AItem := TcxGridTableSummaryItem(Arguments.SummaryItem);

  // Prüfe ob es die gewünschte Spalte ist
  if (AItem.Column = cxGridDBColZeit1) or (AItem.Column = cxGridDBColZeit2) or
    (AItem.Column = cxGridDBColZeit3) then
  begin
    // Bedingung : es ist ein Footer und soll die Summe angezeigt werden
    if (AItem.Position = spFooter) and (AItem.Kind = skSum) then
      // Event OnGetText einschalten
      AItem.OnGetText := GetText
    else
    begin
      // Event OnGetText ausschalten und Exit
      AItem.OnGetText := nil;
      Exit;
    end;
    //Entnehme die Werte aus der korrekten Spalte
      if AItem.Column = cxGridDBColZeit1 then
        AValue := cxGridDBTV1.DataController.Values[
          Arguments.RecordIndex, cxGridDBColZeit1.Index]
      else if AItem.Column = cxGridDBColZeit2 then
        AValue := cxGridDBTV1.DataController.Values[
          Arguments.RecordIndex, cxGridDBColZeit2.Index]
      else if AItem.Column = cxGridDBColZeit3 then
        AValue := cxGridDBTV1.DataController.Values[
          Arguments.RecordIndex, cxGridDBColZeit3.Index];

      // Nachfolgende Abfrage auskommentiert, da weiterhin gerechnet wird.
      // Nur wenn man bestimmte Datensätze berechnet haben möchte
      // könnte man die DS filtern und in SummaryValue addieren.

      //nur als Beispiel

      // if not VarIsNull(AValue) then
      // begin
      // OutArguments.SummaryValue := AValue + OutArguments.SummaryValue;
      // OutArguments.Done := true;
      // end;

  end;
end;

procedure TForm1.GetText(Sender: TcxDataSummaryItem; const AValue: Variant;
  AIsFooter: Boolean; var AText: string);
begin
  if AValue <> Null then
    AText := FormatDateTime('hh:mm', AValue);
end;
Angehängte Dateien
Dateityp: zip projekte_188.zip (8,7 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 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 by Thomas Breitkreuz