| 

.NET C# Java Javascript Exception

2
Hallo,

ich möchte als erste Zeile eines DataGridViews immer eine feststehende Zeile haben, in der die Summen aller numerischen Spalten angezeigt werden sollen.
Das DataGridView enthält, je nach Auswahl durch den Anwender, unterschiedliche Umsatzdaten, also die Spalten, die Umsatzwerte enthalten, können von Abfrage zu Abfrage unterschiedlich sein, daher muss die Funktion dynamisch gestaltet sein.
Meine Idee:
Neue Zeile an Zeilenposition 1 einfügen
diese über "frozen" feststellen
Jede Spalte über for-Schleife durchlaufen, ist der Inhalt (Datentyp) numerisch, dann jede Zeile dieser Spalte durchlaufen und die Werte aufaddieren, dann in die erste Zeile den aufsummierten Wert einfügen, dann nächste Spalte usw.

Wie ich das genau mache, muss ich mir noch anlesen/googeln.
Frage:
Gibt es eine einfachere Methode? Hat jemand sowas schon?
Sonstige Einwände.

Vielen Dank schon mal
07.09.2011
monoblaine 21 1 3
2 Antworten
2
Ich würde eine Summenzeile nicht in der Oberfläche erzeugen.
Vermutlich ist das DataGridView an ein Objekt gebunden.
Somit solltest du die Summenzeile bereits dem Objekt hinzufügen.
Bei einer mehrschichtigen Anwendung gehört das in den Businesslayer.
Auf den Datentyp "numerisch" würde ich auch nicht prüfen.
Es gibt inhaltlich numerische Datentypen, die aufsummiert keinen Sinn ergeben. Da solltest du schon die Spalten kennen, die summiert werden sollen.
07.09.2011
Jürgen Luhr 7,1k 2 9
0
Hallo Jürgen,

danke schon mal für die Antwort.
Als Datenquelle für das DataGridView habe ich eine DataTable.
Ich denke, dass man dort die Summierung und das Einfügen der neuen Summenzeile vornehmen kann und dann (über einen künstlichen Sortierschlüssel, alle Spalten sortkey=1 und die neue Zeile sortkey=0) die DataTable ans DGV anbindet, anschließen nach sortkey aufsteigend sortiert und die oberste Zeile einfriert. Richtig verstanden?

Gruß
Arndt
07.09.2011
monoblaine 21 1 3
1
Ja, das kann man so machen. Einen Merker für die Summenzeile brauchst du sowieso, falls du geänderte Daten in die Datenbank zurückschreiben musst.
Jürgen Luhr 07.09.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH