none
Kleines Rechenprogram mit GridView RRS feed

  • Frage

  • Hallo,

    ich soll ein kleines Program schreiben, das ähnlich wie eine Rechnungsersteller. User soll ein Formular ausfüllen und das ganze als pdf exportieren können.

    Das ganze hat soweit geklappt.

    Nun mein Problem:

    Ich habe da ein GridView mit 5-Spalten (A,B,C,D,E) eingebaut.

    Spalte E soll (C * D) ausrechnen. So wie, Gesamt = stückzahl x einzelpreis

     

    Das habe ioch leider nicht hingekriegt. 

    Hätte jemand ne Idee wie ich das machen kann?

    Sollte ich andere Komponente benutzen als GridView?

    Danke und Gruß

    Teddy

     

    P.S. : Das ist kein kommerzieles Program!

     

     

     

    Freitag, 23. Dezember 2011 08:47

Antworten

  •  

    Hallo Teddy,

    es wäre einfacher Dir zu helfen, wenn Du schreiben würdest, was Du schon probiert hast und wo Du genau nicht weiterkommst.

    Im Prinzip sind das, was Du brauchst, absolute Basics:

    * Zellwert aus C und D in Zahl (je nachdem, was gebraucht wird, Double oder int) umwandeln  natürlich mit Fehlerbehandlung, falls der Wert keine Zahl oder NULL ist

    * Zahlenwerte multiplizieren

    * Ergebnis der Zelle in Spalte E zuweisen

    Das ganze wird dann am besten im CellValueEvent ausgeführt.

    Weil  Weihnachten vor der Tür steht, habe ich mal was funktionierendes zusammengeschrieben:

     

    private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                if (this.Visible)
                    CalculateSumme(e.RowIndex);
            }
    
            private void CalculateSumme(int rowIndex)
            {
                double einzelPreis = 0;
                int anzahl = 0;
                DataGridViewCell einzelPreisCell = dataGridView1.Rows[rowIndex].Cells[2];
                DataGridViewCell anzahlCell = dataGridView1.Rows[rowIndex].Cells[3];
                if (einzelPreisCell.Value != null)
                    double.TryParse(einzelPreisCell.Value.ToString(), out einzelPreis);
                if (anzahlCell.Value != null)
                    int.TryParse(anzahlCell.Value.ToString(), out anzahl);
                double gesamtPreis = einzelPreis * anzahl;
                dataGridView1.Rows[rowIndex].Cells[4].Value = gesamtPreis.ToString("#.00");
    
            }
    


     

    Gruß und frohes Fest,

    Patrick

    Freitag, 23. Dezember 2011 20:24

Alle Antworten

  •  

    Hallo Teddy,

    es wäre einfacher Dir zu helfen, wenn Du schreiben würdest, was Du schon probiert hast und wo Du genau nicht weiterkommst.

    Im Prinzip sind das, was Du brauchst, absolute Basics:

    * Zellwert aus C und D in Zahl (je nachdem, was gebraucht wird, Double oder int) umwandeln  natürlich mit Fehlerbehandlung, falls der Wert keine Zahl oder NULL ist

    * Zahlenwerte multiplizieren

    * Ergebnis der Zelle in Spalte E zuweisen

    Das ganze wird dann am besten im CellValueEvent ausgeführt.

    Weil  Weihnachten vor der Tür steht, habe ich mal was funktionierendes zusammengeschrieben:

     

    private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                if (this.Visible)
                    CalculateSumme(e.RowIndex);
            }
    
            private void CalculateSumme(int rowIndex)
            {
                double einzelPreis = 0;
                int anzahl = 0;
                DataGridViewCell einzelPreisCell = dataGridView1.Rows[rowIndex].Cells[2];
                DataGridViewCell anzahlCell = dataGridView1.Rows[rowIndex].Cells[3];
                if (einzelPreisCell.Value != null)
                    double.TryParse(einzelPreisCell.Value.ToString(), out einzelPreis);
                if (anzahlCell.Value != null)
                    int.TryParse(anzahlCell.Value.ToString(), out anzahl);
                double gesamtPreis = einzelPreis * anzahl;
                dataGridView1.Rows[rowIndex].Cells[4].Value = gesamtPreis.ToString("#.00");
    
            }
    


     

    Gruß und frohes Fest,

    Patrick

    Freitag, 23. Dezember 2011 20:24
  • Hallo Patrick,

    vielen Dank für deine Antwort.

    Über einen wehr langen Weg, bin ich auch auf ähnliche gekommen.

    Habe deine Lösung schon eingebaut. Tut schon richtig.

    Ich komme aus der Skriptenwelt. Windows und .NET ist mir völlig neu. Ich überlege mir Aufgaben und versuche dabei etwas zu lernen.

    Was ich da machen will ist ein Angebotersteller.

    Mein Programm besteht aus einem Form mit Eingabefelder für Kunde und Artikeln.

    Eingabefelder sind TextBox und Artikelbereich besteht aus DataView.

    Man gibt Kundendaten  und Artikeln ein und bekommt eine PDF-Datei.Noch keine DB-Anbindung und Archivierung.

    Ich habe leider kein funktioniertes code, womit ich rumbasteln kann, gefunden.

    Kennst du eine Quelle, wo ich solche kleine codes finden kann?


    Learning by doing
    Dienstag, 27. Dezember 2011 08:59
  • Hallo Teddy74,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.

    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    *****************************************************************************

    Kleiner Hinweis: Immer für eine Neue Frage einen Neuen Thread aufmachen

    Ein eigener Thread nutzt der Kommunikation und trägt der Übersichtlichkeit in einem Forum bei.

    *****************************************************************************

    Grüße,

    Robert


    Robert Breitenhofer, MICROSOFT  Twitter Facebook
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 29. Dezember 2011 12:04
    Moderator