Benutzer mit den meisten Antworten
Kleines Rechenprogram mit GridView

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!
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
- Bearbeitet Patrick Semmler Freitag, 23. Dezember 2011 20:24
- Als Antwort vorgeschlagen Oliver Michalski Dienstag, 27. Dezember 2011 09:53
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 29. Dezember 2011 12:04
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
- Bearbeitet Patrick Semmler Freitag, 23. Dezember 2011 20:24
- Als Antwort vorgeschlagen Oliver Michalski Dienstag, 27. Dezember 2011 09:53
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 29. Dezember 2011 12:04
-
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- Bearbeitet Robert BreitenhoferModerator Donnerstag, 29. Dezember 2011 12:01 Formatierung
-
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
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.