Ich hab eine Eingabemaske (mit dcget) in der eine Eingabe über eine Valid Funktion auf 'schon vorhanden' geprüft wird.
Dann wird das Feld mit Return .f. nicht verlassen, sonst geht es mit Return .t. weiter.
Die komplette Eingabemaske kann man über Zwei Buttons (DCPUSHBUTTONXP) 'Speichern' und 'Abbrechen' verlassen.
Nutzt man nun die Abrrechenfunktion, wird trozdem die Valid Überprüfung aktiviert und eben nicht abgebrochen.
Wie kann man das umgehen?
Codeschnipsel
Code: Alles auswählen
@ 10,115 dcget cGruppeNeu picture "!!!" getsize 0 ;
VALID {||suchGruppeNeu(cGruppeNeu),DC_GetRefresh(GetList)} ;
WHEN {||lNeueGruppe} ;
object oGruppeNeu ;
parent oTabPage3
...
@ 28,130 DCPUSHBUTTONXP SIZE 14,1.6 CAPTION "Abbrechen" ACTION {||lNeueGRuppe := .f., neuvarGruppe(), DC_GetRefresh(Getlist)} ;
TOOLTIP "Aktuelle Eingabe abrechen ohne Speichern" ;
WHEN {||lNeueGruppe} ;
COLOR GRA_CLR_WHITE,GRA_CLR_DARKRED FONT "10.Arial" PARENT oTabPage3
...
function suchGruppeNeu(cGruppeNeu)
local cSuch, lReturn
if len(alltrim(cGruppeNeu)) = 0
lWeiter := .t.
else
cSuch := "H" + alltrim(cGruppeNeu) + space(3-len(alltrim(cGruppeNeu)))
sele 2
go top
seek cSuch
if found()
DC_Alert ("Die Gruppe " + cGruppeNeu + " ist bereist angelegt! Bitte andere eingeben!")
lReturn := .f.
else
lReturn := .t.
endif
endif
return lReturn