Summe aus Bindingsource mit abhängigkeit vom Datum aus Monthcalendar

  • VB.NET
  • .NET 4.5

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von echnaton.

    Summe aus Bindingsource mit abhängigkeit vom Datum aus Monthcalendar

    Hallo
    habe ein Problem mit einer Summe aus einer Tabelle.
    Zur Zeit benutze ich diesen Code, der auch funktioniert


    VB.NET-Quellcode

    1. Chart.Series(1).Points.AddXY("Dezember", (From r In HaushaltskasseDataSet.Eintraege Where r.Monat = "Dezember" And r.Jahr = "2019" Select r.Betrag_Ausgaben).Sum())


    Jaaa Option Strikt ist on.

    Es liegen tatsächlich die Monate,Jahre als String in der DB. aber das möchte ich gerne ändern....
    Es liegt auch eine Spalte vor "Datum" also Datetime und diese möchte ich nutzen. (die Strings Monat/Jahr könnte ich dann löschen)
    Ich möchte nun bei Klick im Monthcalendar das automatisch das Jahr und Monat gefiltert wird und dann die Summe berechnet wird.
    Hat jemand einen Vorschlag wie ich das am besten angehen könnte.(evt. ein Beispiel)
    Wenn es so bleibt müsste ich den kompletten code für jedes Jahr neu coden.
    Schon gut, ich glaube Dir mit Option Strict On ;)
    Das Jahresproblem ist einfach zu lösen. Statt "2019" hinzuschreiben, nimm SelectionStart.Year.ToString* her. Für den Monat kannst Du entweder SelectionStart.Month* hernehmen und dann noch ein selbstgemachtes Array, wo die Monatsnamen drinstehen, oder ... (ich schau grad mal)
    ... mit Application.CurrentCulture.DateTimeFormat.MonthNames()(SelectionStart.Month - 1)

    * Also als Langfassung z.B.: YourMonthCalendar.SelectionStart.Year.ToString
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Also mit dem Jahr klappt das ausgezeichnet
    Mit "Monat" da klappt das nicht.
    ja, es wird soweit ich da durchblicken kann immer die gleiche werte angezeigt.
    Ich habe ja für jeden Monat des Jahres ein Datenpunkt im Chart.
    Dafür benötige ich ja auch für jeden Monat eine datenzeile. Januar, Februar....usw.
    der code von dir berücksichtigt ja den aktuellen Monat. Die anderen Monate bleiben dabei unberücksichtigt
    Ahso. Ja gut. Kannst ja auch mit ner For-Schleife von 1 bis 12 gehen:

    VB.NET-Quellcode

    1. Dim CurrentMonthName = String.Empty
    2. For i = 0 To 11
    3. CurrentMonthName = Application.CurrentCulture.DateTimeFormat.MonthNames()(i)
    4. Chart.Series(1).Points.AddXY(CurrentMonthName, (From r In HaushaltskasseDataSet.Eintraege Where r.Monat = CurrentMonthName And r.Jahr = ... Select r.Betrag_Ausgaben).Sum())
    5. Next
    (weiß jetzt natürlich nicht, ob's zum Rest passt).
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.