Wollen Sie die änderungen speichern?

Alle Themen rund um die Erstellung von Programmen
Antworten
Henry
Junior Member
Beiträge: 18
Registriert: 19. Mai 2011, 14:52
Wohnort: Erlinsbach
Kontaktdaten:

Wollen Sie die änderungen speichern?

Beitrag von Henry »

Hallo Zusammen
nichts als Anfängerfragen - aber ich finde in den Manuals einfach keine Antworten. :huh:
Ich habe ein Windows mit einem Speichern und einem Schliessen Button. Das funktioniert, wenn ich speichern drücke wird der neue oder modifizierte Datensatz gespeichert und das Fenster geschlossen.
Wenn ich schliessen drücke, wird das Fenster ohne Aktion geschlossen. Aus meiner Perspektive brauche ich diese beiden Funktionen so.

Nun sollte ich aber eine zusätzliche Funktion haben auf dem schliessen Button. Falls die Daten neue oder verändert wurden sollte das Fenster nicht einfach geschlossen werden sondern der User darauf aufmerksam gemacht werden, dass die neuen oder veränderten Daten noch nicht gespeichert wurden.
Gibt es in WinDev eine solche Funktion, die mir angibt ob die Daten schon gespeichert wurden oder nicht?

Vielen Dank für eure Mithilfe
Gruss Henry

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Wollen Sie die änderungen speichern?

Beitrag von Herbert »

In Code des betreffenden Fensters findest du den Slot "Closing of ..."
Dort kommt deine letzte Abfrage hinein. Schlüssel ist der Befehl ReturnToCapture
Den Dialog kannst du übrigens elegant mit dem Wizard mittels Yesno erstellen lassen. Diese Dialoge sind in deinem Programm übrigens wiederverwendbar.

Code: Alles auswählen

//1 : Schliessen
//2 : Offen lassen
SWITCH Dialog("Schliessen des Fensters?")
	// Schliessen
	CASE 1
		
	// Offen lassen
	CASE 2
		ReturnToCapture(EDT_NAME)    // edt_name ist ein Eingabefeld. Hier irgend ein Control, welches den Focus erhalten soll
END

Henry
Junior Member
Beiträge: 18
Registriert: 19. Mai 2011, 14:52
Wohnort: Erlinsbach
Kontaktdaten:

Re: Wollen Sie die änderungen speichern?

Beitrag von Henry »

Vielen Dank Herbert für Deine Antwort. Auf Closing of bin ich auch schon gestossen, aber den Befehl ReturnToCapture habe ich nicht gekannt.
Nun die Frage sollte nur kommen, wenn der Inhalt geändert aber noch nicht gespeichert wurde. Gibt es dazu eine Funktion, die diesen Status der Maske wiedergibt? Wenn also in einem oder mehrer Controls eine Aenderung vorgenommen wurde und danach nicht gespeichert wurde muss diese Frage kommen.

Wenn es keine solche Funktion gibt, dann muss man das wohl ausprogrammieren: Ich stelle mir vor in "Whenever Modified of" eine lokale Variable auf true zu setzen und dann Deine Funktion von dieser Variablen abhängig zu machen. Wenn zwischenzeitlich gespeichert wird, dann würde die Variable wieder auf false gesetzt.

Würde mich freuen, dazu euer Urteil zu hören, ob ich da völlig daneben liege?

Besten Dank und eine gute Zeit
Henry

Benutzeravatar
BRANDELH
Site Admin
Beiträge: 199
Registriert: 30. Juni 2010, 14:31
Wohnort: Germersheim
Kontaktdaten:

Re: Wollen Sie die änderungen speichern?

Beitrag von BRANDELH »

Hi,

je nach Wunsch bzw. Anwendung kann man entweder in "Whenever Modified" (oder so ähnlich) die Daten direkt speichern,
oder aber eine GLOBALE FENSTER Variable für die ganze Seite nutzen, die in diesem Event auf True und beim nächsten Einlesen oder Speichern wieder False gesetzt wird.
Eventuell prüft auch ScreenToFile() sowas, aber ich vertraue lieber meiner Steuervariablen ;-)

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Wollen Sie die änderungen speichern?

Beitrag von Herbert »

ScreenToFile prüft meines Wissens nicht, ob verändert wurde oder nicht, sondern weist die Werte ganz einfach aus den Controls den Varialblenwerte der Datenbanken zu. Auch hat der Befehl nichts mit dem Slot "whenever modified" gemeinsam. Daher ist Huberts Ansatz mit einer globalen Variable auch meiner Meinung nach der Sinnvollste.
Achtung: diese Variablenwerte entsprechen lokalen Variablen. Diese müssen jedenfalls mit HModify oder Hadd bei einem neuen Datensatz defintiv gespeichert werden.

Antworten