Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kassenprogramm - Verkäufe speichern (https://www.delphipraxis.net/146334-kassenprogramm-verkaeufe-speichern.html)

unchained 18. Jan 2010 10:26


Kassenprogramm - Verkäufe speichern
 
Hallo liebe Delphi User,

ich schreibe grade an einem Programm zur Unterstützung der Kassen an einem Vereinsfest.
Bestellung aufgeben, Wechselgeld ausgeben, etc alles funktioniert.

Nun möchte ich aber gerne die Werte aus den jeweiligen Bestellungen abspeichern um nachher die Einnahmen abzuschätzen.

Hierbei sollen die gesamt erwirtschafteten Summen je für

1) Getränke
2) Bratwurst
3) Fleischbrötchen

angezeigt werden. Sie sollen auch zwischendurch abgefragt werden können.

Ich habe schon so gut wie alles probiert, irgendwie stehe ich immernoch auf dem Schlauch. Summiere ich die Werte einer Bestellung auf, so bleiben sie im Label nur angezeigt, solange die Bestellung besteht. Kommt eine neue Bestellung, so wird die vorherige gelöscht.

Ich kann das Programm gern hochladen, damit ihr einen Blick drauf werfen könnt. :)

Vielen Dank schonmal

André

DeddyH 18. Jan 2010 10:33

Re: Kassenprogramm - Verkäufe speichern
 
Hallo und Willkommen in der DP :dp:,

Dein Problem ist ein gutes Beispiel dafür, dass man immer Logik und Darstellung trennen sollte. Ein Label dient lediglich der Anzeige von Daten und nicht deren Speicherung. Für Letztere könntest Du beispielsweise eine Liste (TList und Nachkommen) oder ein dynamisches Array verwenden, da passen dann "beliebig viele" Daten rein.

Sherlock 18. Jan 2010 10:34

Re: Kassenprogramm - Verkäufe speichern
 
Speicher die Käufe halt woanders ab, nicht in den Labels.

Eine geeignete Struktur für einen Verkauf wäre zB. ein Delphi-Referenz durchsuchenRecord oder eine eigene Delphi-Referenz durchsuchenclass. Mehrere Verkäufe kannst du dann in einem Delphi-Referenz durchsuchenArray oder einer Delphi-Referenz durchsuchenList speichern.

Sherlock

unchained 18. Jan 2010 10:43

Re: Kassenprogramm - Verkäufe speichern
 
Ich probiers mal aus und werd dann Bericht erstatten :).

Die Labels waren dafür da um der Person, die an der kasse sitzt den Wert des Wechselgeldes oder die Anzahl der Verkauften Wertmarken anzuzeigen. Dass da das speichern nicht nach meinen Vorstellungen klappt dachte ich schon ;).

Die Links sehen schonmal gut aus. Vielen Dank !

unchained 18. Jan 2010 11:16

Re: Kassenprogramm - Verkäufe speichern
 
So habs mal mit dem RECORD ausprobiert

--> http://www.delphipraxis.net/internal...ghlight=record

nun Speichert er und läd er die Werte der Bestellung, allerdings nur einer Bestellung. Gebe ich neue Werte ein, so verschwinden die Vorherigen.

Wie ergänze ich die alten Werte um die neuen Werte?

Das wärs dann eigentlich. :)

PS: Gut wäre es, wenn er die Werte für oben genannte Waren nach Uhrzeit in einer .txt datei speichert.

mkinzler 18. Jan 2010 11:19

Re: Kassenprogramm - Verkäufe speichern
 
Ich würde mir die Speicherung in einer Datenbank überlegen

Sherlock 18. Jan 2010 11:20

Re: Kassenprogramm - Verkäufe speichern
 
Nunja, es kommt darauf an, was Du willst. Möchtest Du alle einzelenen tRansaktionen nochmal im Zugriff haben, oder reicht eine Summe?
Wenn die Summe reicht, solltest Du nach jeder Transaktion die jeweiligen Teile des Records entsprechend anpassen. Wenn Du alle Transaktionen haben möchtest, musst Du für jede eine neue Variable vom Recordtyp erzeugen und in einer Liste oder einem Array pflegen. Dieses Konstrukt lässt sich dann am Ende durchlaufen und die Bestandteile des Records kannst Du dann aufaddieren.

@mkinzler: Das dürfte über das Ziel der Aufgabe hinausschießen, oder? ;)

Sherlock

mkinzler 18. Jan 2010 11:22

Re: Kassenprogramm - Verkäufe speichern
 
Zitat:

@mkinzler: Das dürfte über das Ziel der Aufgabe hinausschießen, oder? Wink
Nicht unbedingt.

unchained 18. Jan 2010 11:28

Re: Kassenprogramm - Verkäufe speichern
 
Was ich genau möchte ist:

Quasi ne Tabelle in der oben steht:

Bratwurst // Getränke // Fleischbrötchen

und an der Seite :

Menge

Wert in Euro



Die Tabelle solle bei jeder Bestellung aktualisiert werden und am Ende einsehbar sein.

haentschman 18. Jan 2010 11:29

Re: Kassenprogramm - Verkäufe speichern
 
ich stimme da (ausnahmsweise :mrgreen: ) mkinzler zu.

wenn ich das:
Zitat:

Hierbei sollen die gesamt erwirtschafteten Summen je für

1) Getränke
2) Bratwurst
3) Fleischbrötchen
lese, ist das nicht das Ende der Fahnenstange. Je komplizierter die Auswertungswünsche werden umso schneller ist es mit Record´s oder Arrays ein Graus...

EDIT: seht ihr ? Es geht schon los... :zwinker:
Zitat:

Quasi ne Tabelle in der oben steht:

Sherlock 18. Jan 2010 11:30

Re: Kassenprogramm - Verkäufe speichern
 
Aha, OK. Für solche tabellarischen Geschichten gibt es das Delphi-Referenz durchsuchenTStringGrid.

@haentschmann: Tatsächlich scheint das Projekt komplexer als ich anfangs dachte. Dürfte dem TE genauso gehen :D

Sherlock

unchained 18. Jan 2010 11:34

Re: Kassenprogramm - Verkäufe speichern
 
Es muss nicht so kompliziert sein wie ich oben beschrieben habe. Die Funktion ist nicht zwingend notwendig.

Wäre nur ne Spielerei und informativ zu Wissen wie viel und was verkauft wurde.

Stringgridwerte kann ich speichern und laden?

Luckie 18. Jan 2010 11:36

Re: Kassenprogramm - Verkäufe speichern
 
Zitat:

Zitat von unchained
Stringgridwerte kann ich speichern und laden?

Ja kann man. Aber du solltest, wie schon mehrfach erwähnt, Daten, Datenhaltung und Oberfläche von einander trennen.

mkinzler 18. Jan 2010 11:37

Re: Kassenprogramm - Verkäufe speichern
 
Zitat:

Stringgridwerte kann ich speichern und laden?
Ja ist nur die Frage wie sinnvoll das in diesm Fall ist

unchained 18. Jan 2010 11:39

Re: Kassenprogramm - Verkäufe speichern
 
Was spricht dagegen? :)

Ich glaube ich versuche das erstmal mit nem Stringgrid

schiebe den Gesamtwert einer Bestellung in das Stringgrid und Summiere danach dann alles auf.

Zwar nicht so elegant aber ich arbeite dran... vllt krieg ichs ja später eleganter hin. :)

divBy0 18. Jan 2010 11:41

Re: Kassenprogramm - Verkäufe speichern
 
Zitat:

Zitat von unchained
Was spricht dagegen? :)

Du hast das Problem doch schon selbst mit dem TLabel festgestellt.

Du musst deine Darstellungen von der Programmlogik trennen. Daten in Records, Arrays oder sonst wo speichern und die Labels mit den Daten aktualiseren. Wenn du die Daten in Recors, Arrays,... hast, dann solltest du auch mit den Daten weiterarbeiten und die nicht zur Weiterverarbeitung aus dem Label z.B. holen.

Sherlock 18. Jan 2010 11:42

Re: Kassenprogramm - Verkäufe speichern
 
Es ist umständlich zu programmieren und wenn Du erstmal alles irgendwie erfassen kannst, möchtest Du das auch abspeichern, so daß die Daten nach einem Programm-/Rechnerneustart zur Verfügung stehen. Und DAS ist ohne DB wirklich fummelig.

Sherlock

unchained 18. Jan 2010 11:47

Re: Kassenprogramm - Verkäufe speichern
 
ohje. Ich versuchs erstmal.... wenns nicht klappt lese ich mich mit der Datenbank schlau :)

Luckie 18. Jan 2010 11:52

Re: Kassenprogramm - Verkäufe speichern
 
Zitat:

Zitat von unchained
Was spricht dagegen? :)

Weil dein Lehrer übermorgen das ganze gerne in einem Listview hätte und nächste Woche als Konsolenprogramm. ;)

Ich würde dir übrigens folgendes vorschlagen: http://www.michael-puff.de/Artikel/C...rKlassen.shtml

unchained 18. Jan 2010 11:54

Re: Kassenprogramm - Verkäufe speichern
 
Ne mit meinem Lehrer hat das nichts zu tun. Ich studiere zwar Maschinenbau / und habe Maschinenbauinformatik, dennoch ist das Kassenprogramm auf meinem Mist gewachsen.

Ich geh mal deinen Link durch :) Danke

p80286 18. Jan 2010 13:22

Re: Kassenprogramm - Verkäufe speichern
 
Na grundsätzlich sollten sich Daten auf einem Datenträger befinden!
Und da muß man sich zwangsläufig mit der Organisation der Daten, auf dem Datenträger beschäftigen.
Wenn man als Datenträger eine DB nutzt, dann muß man zwar nicht überlegen, wie man ein Datenrecord aufbaut, dafür steht einem dann das Design der Tabellen, StoredProcedures, Trigger usw. ins Haus.

Ich stell mir gerade vor, dieses Kassenprogramm wird eingesetzt und alle Verkaufsdaten sind weg, weil jemand den Rechner einfach abgeschaltet hat.............................


Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz