Bindingsource (auch gefiltert) - Summe einer Spalte bilden

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Maggo13.

    Bindingsource (auch gefiltert) - Summe einer Spalte bilden

    Hallo,

    ich habe ein DataGridView welches an eine Bindingsource gebunden ist.

    Nun möchte ich gerne die Summe einer Spalte bilden. Dabei wären folgende Szenarien möglich:

    1. Bindingsource erhält einen Filter. Also somit Summe auch auf die gefilterten Datensätze.

    2. Einen Wert nur in Abhängigkeit einer anderen Spalte zur Summe hinzuaddieren.

    Beispiel:

    ArtikelPreiszurSumme
    Art011,20ja
    Art021,50nein
    Art032,00ja






    Summe wäre hier 3,20, weil nur Art01 und Art03 addiert werden.

    Könnte natürlich jetzt SQL-Befehle an die Datenbank schicken. Wäre ein nicht so schöne Alternative.

    Nur fehlt mir jetzt der Ansatz um dies über die Bindingsource zu machen.
    man kann eine bindingsource mit ForEach durchlaufen. Hat sie einen Filter, so kriegt man logisch nur die gefilterten Einträge.
    Hässlich daran ist das Gecaste

    VB.NET-Quellcode

    1. For each drv as DataRowView in ArtikelBindingSource
    2. dim rwArticle = directCast(drv.Row, ArticleRow)
    3. ' Spaltenwert aufaddieren oder whatever
    4. Next
    Bitte keine Daten aus der Datenbank holen, wenn alle Informationen bereits im Dataset vorliegen.

    Guck dir auch das "MiniKass" - Sample aus DataExpressions: Filter und berechnete Spalten im Dataset an - da ist vergleichbares bereits im Datenmodell gelöst.