Angular UI Grid - Wie das Verhalten von Aggregat-Zeilen angepasst wird

8

Beim Gruppieren erstellt ng-grid Gruppenzeilen, die anders aussehen und sich anders verhalten als reguläre Zeilen. Insbesondere zeigen Gruppenzeilen keine regulären Spalten an, sondern zeigen eine einzelne zusammengefügte Zeile an, wie von aggregateTemplate definiert. Ich versuche, Gruppenzeilen so anzupassen, dass sie aggregierte Spaltendaten enthalten. Zum Beispiel:

Spalten:
NAME | VALUE

Daten:
Name1 | 5
Name1 | 5
Name2 | 1

Raster wird angezeigt, wenn nach NAME gruppiert:
- Name1 | 10 (dies ist die erste Gruppenreihe erweitert)
- Name1 | 5 (das sind die eigentlichen Datenzeilen)
- Name1 | 5 (das sind die eigentlichen Datenzeilen)
- name2 | 1 (dies ist die zweite Gruppenreihe kollabiert)

Beachten Sie, dass die Gruppenzeilen beide Spalten anzeigen und ihr VALUE gleich der Summe ihrer untergeordneten Elemente ist.
Wenn Sie mit MS Excel-Pivot-Tabellen vertraut sind, ist dies genau die Gruppierungstyp-Funktionalität, die ich nachzuahmen versuche.

Eine ähnliche Frage hier zum Stack-Überlauf ( Wie man die Aggregation mit Gruppierung einstellt in ng-grid ) zeigt ein Beispiel, wie man die Child-Aggregation-Berechnungen durchführt, aber ich hänge daran, wie ng-grid die Ausgabe wie normale Zeilen mit separaten Spalten anzeigen soll. Mit Blick auf den ng-Grid-Code sieht das nicht nach einer einfachen Aufgabe aus. Jeder hat etwas Erfahrung damit?
Danke!

    
user2354397 26.05.2013, 19:57
quelle

2 Antworten

3

Es ist eine alte Frage, aber ich hatte genau das gleiche Problem, also gebe ich hier meine Lösung:

Ich habe die Zellenvorlage in aggregateTemplate kopiert, dann angepasst, um den Pfeil anzuzeigen, und eine Funktion aufgerufen, um den Aggregatwert zu berechnen (ich kopiere nur den Wert der ersten Zeile zum Beispiel, Summierung, Min oder Max auf Werte könnte in der Spaltendefinition parametrisiert werden)

%Vor%

Ich denke, dass diese Lösung verwendet werden kann, indem Sie die Funktion "$ scope.aggFc" anpassen, die von dem von Ihnen angegebenen Link inspiriert wurde ( Wie man Aggregation mit Gruppierung in NG-Grid )

    
pdem 21.11.2013 11:17
quelle
0

Um Summen zu erhalten, können Sie einfach den aggFC in etwas wie:

ändern %Vor%

(Kaffeeskript und Unterstrich vorausgesetzt) Beachten Sie, dass ich dieselbe Funktion für die Fußzeile (Gesamtwert für die gesamte Tabelle) und für die Vergrößerung verwende. Im Footer-Fall wird keine Zeile übergeben, sodass die vorberechneten Summen zurückgegeben werden. Wenn eine Zeile übergeben wird, wird angenommen, dass es sich um ein Aggregat handelt, und die untergeordneten Elemente werden für die Spalte summiert.

    
aabes 22.11.2013 00:58
quelle

Tags und Links