Storno programmieren
-
Hallo,
ich möchte in meinem Programm einen Button anlegen, mit dem ich den letzten Eintrag stornieren kann. Wie muss ich das machen?
Aus den Postings in "Werte rückgängig machen" in diesem Forum werde ich nicht schlau und mit Undo/Redo bei CodeProject kann ich nichts anfangen.
Vielleicht kann mir jemand in verständlichem Deutsch sagen, was ich machen muss?
Danke und Grüsse
Franz
-
Franz Hembera schrieb:
Vielleicht kann mir jemand in verständlichem Deutsch sagen, was ich machen muss?
du merkst dir den zustand, der vor dem hinzufügen des letzten eintrags aktuell war und stellst ihn wieder her, wenn der button angeklickt wird.
eine genauere antwort wirst du bei der schwammigen fragestellung wohl kaum kriegen.
-
also ich würde es so machen das alle daten in einem array sind. dabei hat jeder datensatz eine ID bzw. einen index. dieser sagt wo sich der datensatz im array befindet.
soll nun die letzte aktion rückgängig gemacht werden so nimmt man einfach das letzte element des array der gleichzeitig den zuletzt erstellten datensatz darstellt und löscht mit diesen index den datensatz.
dann müssen nur noch die eventuellen steuerelemente oder variablen aktualisiert werden. in der liste der datensätze kann man diesen index auch verwenden um datensätze die mittendrin sind zu löschen und nicht der der zuletzt erstellt wurde.
-
Franz Hembera schrieb:
ich möchte in meinem Programm einen Button anlegen, mit dem ich den letzten Eintrag stornieren kann. Wie muss ich das machen?
Das kommt drauf an, wie du "den letzten Eintrag" erstellt hast. Mach genau das, was du da getan hast, wieder rückgängig.
Es gibt dafür keine allgemeingültige Antwort, keinen fertigen "Undo"-Code.Es kommt ganz auf das Design deines Programms an, wie das geht, und ob das ganz einfach oder fast unmöglich ist.
Wenn du so eine Funktion nicht von Anfang an bedacht hast, sondern einfach drauf los programmiert hast, ist es sehr wahrscheinlich, dass das ohne großen Aufwand gar nicht geht. Irgendwelche Funktionen dranzupfriemeln, die bei der Planung nicht berücksichtigt worden sind, ist meistens sehr schwierig, und macht die Software noch schlechter wartbar als sie ohnehin schon ist.
Manchmal ist "Wegwerfen - Neu machen" die bessere Alternative. Nach dem, was ich bisher von deinem Programm gesehen habe, rate ich dir das auch. Wirf weg, was du jetzt hast, und fang neu an. Plane diesmal das Programm sauber durch, mit allen benötigten Funktionen.
-
Ich habe das ganze bereits zum x.mal neu geschrieben, weil meinem Herrn Schwiegersohn immer wieder etwas Neues eingefallen ist, das er in dem Programm gerne hätte. Nochmal was zu ändern, nein danke.
Ich habe in dem Programm einen Button, mit dem ich alle getätigten Einträge auf einmal löschen kann. Das ist aber nicht Sinn der Sache, da nur ein eventuell fehlerhaft getätigter Eintrag gelöscht werden soll.
z.B.: Barzahlung Normalbenzin 50.--€; // falsch, soll bei Diesel eingetragen
werden.Damit müssen sich bei einem Storno auch die Zählerstände und die Gesamtabgabe der dazugehörenden Zapfstände des Kraftstoffes ändern.
Nun weiss ich nicht, wie ich das anstellen muss, dass der letzte Eintrag storniert werden soll.
Es wäre vielleicht hilfreich, wenn jemand von Euch einen Programmierer in München kennt, der mir da helfen könnte!
Danke und Grüsse
Franz
-
Eine Software weiß nicht was sie machen soll wenn man es ihr nicht als Programmier sagt.
Wie es geht haben die viele bereits gezeigt.
Wenn Du nicht alles löschen möchtest dann mache eben nur das Rückgängig was Du rückgängig machen möchtest.
-
- Bau eine Klasse, die den Buchungsdatensatz darstellt, also die Bewegung der Daten.
- Bau eine zwite Klasse, die die Zählerstände hält. Also die aktuellen Werte.
- Die zweite Klasse erhält Methoden (Buchen/Storno)
- Jede Bewegung wird in einer Liste von Objekten des ersten Types gehalten.
Viel mehr ist nicht nötig.Aber IMHO haten wir das schon mal diskutiert.