Boniersystem

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 42 Antworten in diesem Thema. Der letzte Beitrag () ist von Antoz.

    Boniersystem

    Hi Leute und im vorhinein schonmal danke falls mir jemand hilf! :D

    Zuerst zu mir. Ich heisse Thomas bin 30 aus Österreich und kenne mich ABSOLUT nicht mit c++ oder anderen Sachen aus.

    Habe mich schon eingelesen ein wenig und ich glaube mein Problem ist recht simpel warscheinlich zu lösen.

    Zu meiner Geschichte. Ich habe einem gutem Freund bei seiner Neueröffnung seiner Bar geholfen. Sprich Kassensystem aufgebaut und eingerichtet sowie seine Lichtanlage ect.

    Nun zum Teil wo ich mich nicht auskenne. Er möchte ein Programm haben was Produkte auflistet wo er auf einen Button klickt und es passiert folgendes.

    Sagen wir er klickt auf Bier dann soll ein Counter(Label) 1 anzeigen. Ein anderer Button soll das mit -1 auf null setzen falls er falsch gedrückt hat, oder der Kunde sich doch für was anderes entschieden haben soll. Dies krieg ich selbst hin also soweit bin ich das das geht. Auch ein Reset button der alle Label auf 0 stellt hab ich geschafft.

    Nun zum schweren teil! für euch eher Kinderprogrammieren!? :D

    Es soll eine Zeile geben wo Einzelpreis und eine wo die Menge als Gesamtpreis für ein Produkt sein soll sowie ein Label was alle Produkte zusammen rechnet! Ich füge nachher ein Bild ein wie es aussehen sollte bzw. damit ihr wisst was ich meine.

    Zudem soll dann das ganze als Text Datei in dem Ordner wo die Programm exe ist gespeichert werden dass er die ganze liste per Bondrucker drucken kann um diese auflistung zu haben um diese Produkte in der Menge die fehlt nachzukaufen damit der Bestand wieder vollständig ist.

    Mein Problem ist ich kriegs hin +1 -1 und 0 zu setzen, aber dann einzel Preis mit sagen wir 2,70€ und wenn ich das dann 2x habe dass bei Gesamt 5,40€ steht hinzukriegen. Hab gegoogelt aber ich blicke da einfach nicht durch. Ich füge ein Bild von VisualBasic ein.

    Hoffe man kann mir helfen. Danke schonmal.

    Label angepasst. ~Thunderbolt
    Bilder
    • Test.jpg

      114,81 kB, 1.360×768, 196 mal angesehen

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

    Hey und willkommen im Forum,

    Du kannst dir eine Klasse Produkt erstellen, in der du dann die Eigenschaften Preis, Name, usw. erstellst. Dann machst du dir, z.B. ein Bier: Dim Bier as Produkt = New Produkt(Preis, Name
    Auch einen Warenkorb kannst du als Klasse erstellen, der dann eine List(of Produkt) enthält, die alle Gegenstände im Warenkorb enthält. Die Elemente in dieser List kannst du durchgehen, und für jedes Produkt z.B. den Produkt.Preis zur warenkorb.Summe hinzufügen.
    Genug als Ansatz? Bei Fragen stehen hier genug Leute zur Verfügung.

    Grüße

    Edit: Ist jetzt doch wieder VB.NET
    Grüße
    Felix

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Kenaex“ ()

    Hi und danke für die flotte Antwort. Die Sache ist die. Wie oben beschrieben ich bekomme das Zählen hin und das abziehen. Jedoch brauch ich keinen Warenkorb. Es soll nur Sagen wir Button 1 ist Bier und 2 ist dann Redbull oder so. Soll dann wenn ich nun bier 1x drücke der Mengen zähler um1 steigen bei Einzelpreis dann zb. 2,70 rein und bei Gesamt auch. Dann soll bei 2 Mengen einzelpreis gleich bleiben jedoch Gesamt das*2 Anzeigen. Nur krieg ich die Labelanzeige nicht dazu mir einen Preis anzuzeigen bzw. Wenn ich das wie mit dem Counter mache dann schreibt er 2,70 bei einma drücken hin. Bei 2x drücken hab ich dann aber ned 5,40 sondern 4,70 :D er Zählt nur die Zahl vor dem Komma hoch. Ich hab wie gesagt null Plan von Programmieren das Zählen bei nem Klick ist einfach aus nem Youtube Video raus kopiert :D

    Ich weiss halt nur noch dass man irgendwie mit Stringto oder so auch arbeiten muss aber da ich ja einen Fixen Preis pro Produkt habe brauch ich das doch nicht?! Reicht das ned wenn ich sage If sagen wir Einzelpreis = 2,70 then Gesamt = Einzelpreis + Einzelpreis oder so?! :D ich hoffe man checkt worauf ich hinaus will.
    Hey,

    Ich weiß was du meinst, klar. Wenn dein Interesse ist, Programmieren zu lernen, würde ich das ganze schon ausarbeiten. Wenn du nur deinem Freund helfen möchtest, lässt sich das ganze natürlich auch hinklatschen.

    Hier ein Ansatz für die "simple" Variante:
    Mach dir ein paar Variablen, einen int Gesamtpreis, int AnzahlBier, int EinzelpreisBier, usw.. Verbinde deren Anzahl mit deinen Buttons, sprich Klick auf Bier macht AnzahlBier++;. Den Einzelpreis kannst du als const festlegen. Dann nimmst du dir einen int BierGesamtPreis = AnzahlBier * EinzelpreisBier. So machst du das für alle Produkte und rechnest dann BierGesamtpreis, RedBullGesamtpreis usw. zusammen.

    Grüße
    Grüße
    Felix
    So hab nun versucht ne Varialbe fur die einzelnen Label anzeigen zu setzen doch da kommen immer fehler unten. Das einzige was mir bis nun gelungen ist ist folgender Code.

    Sprich bei einem Klick auf den Button passiert das.

    VB.NET-Quellcode

    1. Label1.Text = Val(Label1.Text) + 1
    2. Label2.Text = "2,70"
    3. Label3.Text = Label1.Text * Label2.Text


    Somit hab ich meinen Einzelpreis mit label 2 mal dem label text 1 = label text 3 somit geht das mal nun probier ich mal rum wo ich dann was mit mehr buttons schaffe :D

    Code-Tags eingefügt. ~Thunderbolt

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

    Das mit den Klassen scheint ja nicht angekommen zu sein, du scheinst ja jetzt die schnelle und unübersichtliche Weise gewählt zu haben.

    Mit was genau arbeitest du denn eigentlich? In den Tags ist C++ angegeben, der Code von dir sieht aber alles andere als danach aus.

    Grüße
    Grüße
    Felix
    Ja wie gesagt ich habe null Plan von C++ bzw. diesem ganzen Programmieren.

    Ich machs so. Starte visual Studio 2015 und starte da eine Windows Forms Application.

    Nun bin ich soweit dass wenn ich jeden Button drücke dass er mir EinzelPreis Gesamtpreis Sowie alle Gesamtpreise unten als Total auswirft.

    Ich mach unterhalp der Public Class Form 1 das.

    VB.NET-Quellcode

    1. Dim Zahl1 as Double
    2. Dim Zahl2 as Double
    3. Dim Zahl3 as Double ' usw.


    Beim Button1 der Klickbar ist steht das.

    VB.NET-Quellcode

    1. Private Sub Gö1_Click(sender As Object, e As EventArgs) Handles Gö1.Click
    2. GöM.Text = Val(GöM.Text) + 1
    3. GöGP.Text = GöM.Text * GöEP.Text
    4. Zahl1 = GöGP.Text
    5. Zahl2 = SgP.Text
    6. Zahl3 = FrGP.Text
    7. ProduktG.Text = Zahl1 + Zahl2 + Zahl3


    bei dem Minus Button steht das selbe nur halt mit -1

    VB.NET-Quellcode

    1. Private Sub GöMinus_Click(sender As Object, e As EventArgs) Handles GöMinus.Click
    2. GöM.Text = Val(GöM.Text) - 1
    3. GöGP.Text = GöM.Text * GöEP.Text
    4. Zahl1 = GöGP.Text
    5. Zahl2 = SgP.Text
    6. Zahl3 = FrGP.Text
    7. ProduktG.Text = Zahl1 + Zahl2 + Zahl3


    Das wie du es mir geschrieben hast check ich absolut nicht und so wie ich das nun bis jetzt habe geht wunderbar durch.

    Das was mich ein wenig irritiert ist dass ich bei jedem Button immer Zahl1 usw. erklären muss. Dachte wenn ich das ganz obn hinschreibe würde er das für den ganzen Programmiertable erkennen tut er aber nicht. Entweder mach ich was falsch oder ich machs zu kompliziert!

    Aber sagen wir ich schreib das so durch. Wie schaff ich das dann am schluss dass er mir in ner Textdatei hinschreibt,

    Gösser: 15
    usw.

    Meine Saveto anweisung ist wie folgt (wieder mit hilfe Youtube!)

    Habe einen Button eingefügt sowie ein Savetodialog. Auf Button steht Speichern und der Code für den button ist

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. SaveFileDialog1.ShowDialog()


    Darunter ist dann der Savetodialog.

    VB.NET-Quellcode

    1. Private Sub SaveFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
    2. Dim filetosaveas As String = SaveFileDialog1.FileName
    3. Dim save As New System.IO.StreamWriter(filetosaveas)
    4. save.Write(ProduktG.Text)
    5. save.Close()


    Was auch funktioniert. Ich habe in einer Textdatei den Gesamtpreis aller Produkte. Möchte aber eine Listung mit Gösser: 15 Stück der Preis ist nur als Test gerade verwendet worden.

    Für die Komplexe und gute Variante schein ich jedoch zu doof zu sein :D

    Code-Tags eingefügt. ~Thunderbolt

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

    Antoz schrieb:

    Für die Komplexe und gute Variante schein ich jedoch zu doof zu sein :D


    Ne, das sicher nicht. Nur noch nicht weit genug mit deinem Wissen.

    1. Ganz wichtig: Du solltest wissen, in welcher Programmiersprache zu programmierst. C++ oder VB.Net ?

    2. Lass die Finger von den YouTube Tutorials. Da kannst du davon aus gehen das die von 12 jährigen Script Kiddies kommen die keinen Plan haben von Clean Code und OOP. Ausnahmen bestätigen die Regel. Kauf dir lieber ein Buch und arbeite das durch. Hab ich damals auch so gemacht. Schätze mal, es halt geholfen ;)

    3. Dein Programm als solches ist super für den Anfang, wenn man die ersten Basics drauf hat. Jedoch ist dort alles fest einprogrammiert. Erhöht dein Kumpel die Preise, musst du deine Software ändern. Verkauft er plötzlich auch Tee (oder so), musst du deine Software ändern. Hier wäre eine saubere Produktverwaltung am sinnvollsten, was dann wieder cool zum üben ist.

    4. Kauf dir ein Buch, fange da bei Seite 1 an (auch wenn du meinst, die Grundlagen zu wissen). Kein Copy&Paste -> Handarbeit, debuggen und schauen/nachvollziehen was wo/wie/warum passiert.

    5. Nix YouTube, kaufe Buch ;)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Willkommen im Forum. :thumbup:

    Antoz schrieb:

    VB.NET-Quellcode

    1. Label1.Text = Val(Label1.Text) + 1
    2. Label2.Text = "2,70"
    3. Label3.Text = Label1.Text * Label2.Text
    • Lege Dich zunächst auf eine Programmiersprache fest. C++ / CLI scheint mir für Dich absolut ungeeignet zu sein, Deine Snippets zielen da eher auf VB.NET.
    • Trenne Daten und GUI.
      Mit Daten wird gerechnet, an der GUI werden Daten angezeigt und editiert.
    • Machst Du ganz schnell Option Strict On, da wirst Du gezwungen, die korrekten Datentypen zu verwenden.
      Was soll z.B. "Roullade mit Klößen" MAL "2 Bier" ergeben :?: :?: :?:
    • Wenn Du keine Ahnung hast, schreib zunächst eine möglichst präzise, detaillierte und vollständige Aufgabenstellung, bevor Du irgend eine Zeile Programmcode schreibst
      Die Aufgabenstellung besprexchen wir und dann kannst Du coden.
    • Wenn Du einen Freund hast, für den Du ahnungsloser Neu-Programmierer-Werden-Woller ein Programm von uns erstellen lässt, bekommst Du da den Salär oder wir?
      ==> Vergib diesen Auftrag im Unterforum Marktplatz.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Kenaex schrieb:

    Hab wegen des Screenshots gedacht, du nutzt VB, hab den Code angepasst.


    Warum schreibst du dann Beispiele in C#? ;-p
    product Bier = new product(Preis, Name);

    VB wäre: Dim Bier as New product(Preis, Name)

    Tippe auch auf VB.Net.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Oh, hab ich mal unauffällig geändert. Aber, nicht böse gemeint, keins von beidem scheint wohl verstanden zu werden. noch.
    Ich schließ mich außerdem der Meinung an, die Finger von YouTube zu lassen.

    Hier gibt's kostenlos ein Openbook zu Visual Basic: openbook.rheinwerk-verlag.de/einstieg_vb_2012/

    Grüße
    Grüße
    Felix
    Hi ja das ist mir auch bewusst mit preisänderung. Jedoch soll es nur als Counter dienen um zu sehen Wiviel er nachkaufen muss. Sry dass ich ned genau weiss welche programmiersprache es ist Das mit dem Preis ist nur Bonus nur wichtiger ist das auf nen bon zettel zu kriegen!

    Das mit dem Buch klingt sinnvoll ich werde das mal anschauen und wenn ich zuhause bin schreib ich mal hier rein wie weit ich bisher bin. Verstehe langsam die Befehle.
    @Antoz Dies hier kannst Du parallel bearbeiten:

    RodFromGermany schrieb:

    Wenn Du keine Ahnung hast, schreib zunächst eine möglichst präzise, detaillierte und vollständige Aufgabenstellung, bevor Du irgend eine Zeile Programmcode schreibst
    Die Aufgabenstellung besprechen wir und dann kannst Du coden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    So ich weiss nun wiviele Produkte ich habe und deren Preise.

    Das Ganze sieht so aus.

    Ein Klick auf das jeweilige Produkt löst folgendes aus!
    ProduktMenge +1
    ProdukteinzelPreis = der Preis
    ProduktgesamtPreis = Menge * Einzelpreis.
    Dazu soll auch noch die Option kommen falls er sich verdrückt haben soll einmal das in die verkehrte richtung.

    Das Selbe dann für alle anderen Produkte. Sowie die Preise anzeigen in 2 Kommastellenbereich.

    Am Ende Soll dann eine TOTAL! oder Summe aller Gesamten Produkte zusammengefasst werden von mir aus mit einem Klick auf einen Button wieder wo dann Produktgesamtpreis1+Produktgesamtpreis2 usw, dann per Variablen und String auf 2 Kommastellen angezeigt wird.

    Falls mal eine Preisänderung gemacht wird soll dazu ein Fenster aufgerufen werden können in dem einfach nur das Label mit dem Einzelpreis dann abgeändert wird, welches nach schliessen und neustart gleich bleibt.

    Gegebenenfalls noch ein Leeren Button um alle Mengen sowie Gesamtpreis und Totalsummen Anzeigen auf 0 zu resetten!(Nicht den Einzelpreis, der soll immer da stehen.)

    Und zu guterletzt eine Ausgabe alle Produkte aufgelistet in einer TXT Datei um es per Bonierdrucker dann auszudrucken.

    BSP.:
    Produkt ---------------Menge --------Preis
    Gösser -------------------1 ------------3,40
    Stiegel--------------------2------------6,80
    Cafe----------------------3-------------7,50

    SRY musste solche Striche machen damit das ned so aufeinander geklatscht ist.


    Was ich bisher geschafft habe sind. Die Labels als Zahl zu erklären und deren ausgabe mit 2 kommastellen. Sowie das + und - Zählen und sofortige ausgeben der Gesamtpreise. Was ich nicht kapiere sind Variablen oder der gleichen. Ich mach das halt mit diesem Drag and Drop wo ich alles reinziehe und mit den oben genannten befehlen verknüpfe. Ich verstehe die Int und const und was da alles ist ned so ganz.

    MFG Tom
    @Antoz Wieviel verschiedene Produkte gibt es?
    Ist es sinnvoll, die Produktdaten in eine Datenbank zu packen oder reicht eine XML-Datei (gespeicherte DataTable) aus?
    Das ganze lässt sich dann bequem in einem DataGridView darstellen.
    Nimm ein TabControl, in einem Tab kannst Du die Tabelle der Produktdaten pflegen, in einem anderen Deine Aufgabe bewältigen. Der Input wäre hier der Output der Produktdatentabelle.
    Befasse Dich mal mit ein paar Artikeln vom @ErfinderDesRades .
    Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi. es gibt um genau zu sein nur 13 Produkte. Ich lese da nun schonmal durch um mehr und mehr die Materie zu verstehen.

    Aber wie man das ganze als Table oder so aufbaut da brauch ich dann sicher Wochen oder? :D Der Freund fragt mich jeden Tag ob ichs schon habe der glaubt halt dass ist so einfach in paar Minuten hinzuschreiben!

    MFG Tom

    Antoz schrieb:

    Der Freund fragt mich jeden Tag ob ichs schon habe der glaubt halt dass ist so einfach in paar Minuten hinzuschreiben!


    Wenn du fleißig bist und dich durch kämpfst, kannst du solch ein Programm irgendwann sauber in wenigen Stunden programmieren. Inkl. DB. Also nicht die Flinte ins Korn werfen wenns mal nicht weiter geht. Es lohnt sich!
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen