Rechnen mit Euro für Kassensystem

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von fichz.

    Rechnen mit Euro für Kassensystem

    Meine lieben VBler,

    ich möchte ein kleines Kassensystem schreiben, welches EUROwerte zusammenrechnen.
    das heißt, ich möchte, dass bei einer Berechnung wie z.B. 7,25€ * 2 nicht etwa 14,5 herauskommt sondern 14,50€
    Kann mir da bitte jemand helfen? ich habe es derzeit mit 3 Textboxen...
    Einzelpreis * Stückzahl = Gesamt
    So ist es bei mir aufgebaut.
    wenn ich bei Einzelpreis einen Preis eingebe und bei Stückzahl den Wert, wie oft es verkauft wird, soll bei Gesamt der Gesamtpreis ausgegeben werden.
    Dankesehr :)
    Das hat mit ein wenig "rumrütteln" geklappt...

    Aber mein zweites Problem ist nun, wie kann ich den Wert der dort ausgegeben wird, so "ins Gehirn bringen", dass ich von einen Artikel mehrfach berechnen kann sondern, dass der Kunde 10 Artikel kaufen kann mit unterschiedlichen Stückzahlen?
    Am Ende soll dann herauskommen, was der Kunde gibt, und was ich zurück ge

    VB.NET-Quellcode

    1. Dim erg As Single = 0.0
    2. Sub btnadd_Click() Handles btnadd.Click
    3. erg += Convert.ToSingle(txt_preis.Text) * Convert.ToInt(txt_anzahl.Text)
    4. End Sub
    5. Sub btnbezahlen_Click() Handles btnbezahlen.Click
    6. MessageBox.Show("Der Endbetrag beträgt " & erg.ToString("C") + ".")
    7. End Sub

    Sollte dann kein Problem mehr für dich darstellen, oder?

    Noch ein kleines Problemchen....


    So sieht meine Kasse derzeit aus...
    Wenn ich "Einzelpreis" und "Stückzahl" ausfülle und dann im Feld "Stückzahl" auf ENTER drücke, wird automatisch in "Gesamt" die Endsumme eingetragen mit Eurozeichen... Genau so wie unter bei Gegeben und Rückgeld...

    Allerdings brauche ich nun einen code, womit ich das so machen kann...
    Einzelpreis: 0,25
    Stückzahl: 2
    Gesamt: 0,50 €

    Einzelpreis: 0,10
    Stückzahl: 5
    Gesamt: 1,00 €

    also, er soll jedesmal "speichern" wenn ich einen neuen Einzelpreis eingebe und eine neue Stückzahl, weil es Kunden gibt, die kaufen nicht nur Schuhe sondern auch die passenden Klamotten dazu....
    Kann mir da bitte jemand helfen?
    Ich weiß nicht wo dein Problem liegt!

    Einzelpreis: 0,25
    Stückzahl: 2
    Gesamt: 0,50 €
    Insgesamt = Insgesamt + Gesamt

    Einzelpreis: 0,10
    Stückzahl: 5
    Gesamt: 0,50 €
    Insgesamt = Insgesamt + Gesamt

    Verstanden?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Novazizo“ ()

    Aaaallllsoooo....
    Einzelpreis: 0,25
    Stückzahl: 2
    Gesamt: 0,50 €
    So das ist der Springende Punkt, das hüpfende Komma....
    die 0,50 müssen doch irgendwo zwischen gespeichert werden, damit ich weiterrechnen kann oder nicht?

    VB.NET-Quellcode

    1. Private Sub btn_submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_submit.Click
    2. If tb_einzel.Text = "" And tb_stk.Text = "" Then
    3. MsgBox("Bitte füllen Sie Einzelpreis und Stückzahl aus!")
    4. Else
    5. Dim Ausgabe As String = (tb_einzel.Text * tb_stk.Text).ToString("C")
    6. tb_gsmt.Text = Ausgabe.ToString
    7. End If
    8. End Sub


    Das ist der Code der für die Ausführung bei Knopfdruck zuständig ist!
    Hey,

    darf ich dich kurz noch auf folgende Zeile aufmerksam machen?

    VB.NET-Quellcode

    1. Dim Ausgabe As String = (tb_einzel.Text * tb_stk.Text).ToString("C")

    hier rechnest du mit Strings: "Abc*Def" ...AliveDevil hat dir doch, im vierten Beitrag, ein schönes Beispiel gegeben, wie man solche Dinge vor der eigentlichen Rechnung konvertiert. Schließlich rechnet man, nach Adam Riese und Eva Zwerg, nicht mit Strings... oder? ;)

    Gruß, Manschula

    VBAkkon schrieb:

    Aaaallllsoooo....

    Das ist der Code der für die Ausführung bei Knopfdruck zuständig ist!


    Also...

    Manschula hat natürlich recht... Wenn du mehrere "Beträge" zusammenrechnen willst, musst du natrülich mit Zahlenwerten arbeiten. Double bietet sich an ;)

    VB.NET-Quellcode

    1. Private Sub btn_submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_submit.Click
    2. If tb_einzel.Text = "" And tb_stk.Text = "" Then ' wäre ein OR nicht angebrachter? Wenn eins von beiden leer ist kannst du ja auch nicht multiplizieren!
    3. MsgBox("Bitte füllen Sie Einzelpreis und Stückzahl aus!")
    4. Else
    5. Dim Ausgabe As String = (tb_einzel.Text * tb_stk.Text).ToString("C")
    6. tb_gsmt.Text = Ausgabe.ToString ' Sobald ie Ausgabe als Double deklariert ist kannst du damit rechnen... ;)
    7. End If
    8. End Sub
    Hey,

    deklariere dir einfach eine globale Variable, z.B. à la:

    VB.NET-Quellcode

    1. Dim Gesamtbetrag As Double

    Bei jeder Einzelberechnung addierst du den Betrag nun zu diesem Gesamtbetrag. Am Ende gibst du diesen aus und siehst, was der Kunde insgesamt zu bezahlen hat.

    Gruß, Manschula

    VBAkkon schrieb:

    Damit komm ich irgendwie nicht klar, das ist mit meinem übrigen Quellcode nicht kompatibel :(


    Ich hab doch gar nichts am Code geändert :)

    Ich machs jetzt mal ungetestet:

    VB.NET-Quellcode

    1. Dim Gesamtbetrag as Double
    2. Private Sub btn_submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_submit.Click
    3. If tb_einzel.Text = "" OR tb_stk.Text = "" Then
    4. MsgBox("Bitte füllen Sie beide Pflichtfelder aus!")
    5. Else
    6. Dim Einzelpreis as Double = tb_einzel.Text
    7. Dim Stueckzahl as Double = tb_stk.Text
    8. Dim Summe as Double = Einzelpreis * Stückzahl
    9. tb_gsmt.Text = Summe
    10. Gesamtbetrag = Gesamtbetrag + Summe ' Was du mit dem Gesamtbetrag machst steht dir offen ;)
    11. End If
    12. End Sub


    Gruß No!
    Dankesehr, das Thema hat sich endlich durchgebissen :D Ich habe es nun endlich, wie ich es brauche :D
    Vielen Dank, an alle, die mir in diesen schweren Stunden beigestanden haben :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VBAkkon“ ()

    Problem Problem Probleheeem

    Wie kann ich Tageseinnahmen ausrechnen?...

    Also er soll wenn ich auf "Nächste Kunde" klicke, alle Felder leert und man wieder neue Artikel einschreiben kann
    das er dann das richtige ergebnis für den individuellen Kunden herausgibt...
    Dann wenn ich auf "Tageseinnahmen anzeigen!" klicke, soll dann ALLES was eingenommen wurde ausgegeben werden.....