[gelöst] Werteprüfung

20. Februar 2013 15:36

Ich habe ein Boolfeld auf einer Mapping - Page. Es kann für eine Tabelle mehrere Mappings geben. (Table ID wird mitgegeben).
Nun möchte ich folgendes machen:
Wenn das Boolfeld gesetzt wird, soll im Hintergrund geprüft werden, ob es schon ein anderes Mapping mit dem gefüllten Boolfeld gibt. Wenn ja, dann ein Confirm an den User, ob er dieses Feld noch füllen will (das andere dann löschen) oder nicht.

Habe folgenden Code im Tabellenfeld (OnValidate-Trigger):


FldMapHdrLoc.SETRANGE("Default Mapping",TRUE);
FldMapHdrLoc.SETRANGE("Table ID","Table ID");
IF FldMapHdrLoc.FINDFIRST THEN BEGIN
IF CONFIRM(STRSUBSTNO(Text50002,FldMapHdrLoc."Entry No.",FldMapHdrLoc."Table ID"),FALSE) THEN BEGIN
FldMapHdrLoc."Default Mapping" := FALSE;
FldMapHdrLoc.MODIFY;
END ELSE BEGIN
"Default Mapping" := FALSE;
END;
END;

Allerdings kommt bei Nein die Meldung nochmals, da der Wert ja schon gefüllt wurde. Ich möchte allerdings, dass der Wert bei Nein gar nicht gefüllt wird.
Zuletzt geändert von stefanr. am 28. Februar 2013 13:57, insgesamt 1-mal geändert.

Re: Werteprüfung

20. Februar 2013 15:58

War das der gesamte Quelltext aus OnValidate?
Falls ja, fehlt ganz zu Anfang die Prüfung, ob der eben gesetzte Wert von "Default Mapping" überhaupt TRUE ist.

Das erklärt aber nicht, warum bei Nein nochmal eine Meldung kommt. Ist vielleicht auf der Page nochmal Code im OnValidate?

Re: Werteprüfung

20. Februar 2013 16:11

Hallo Natalie,

ja das ist der gesamte Code. Habe das auf der Table hinter dem Boolfeld. Wenn ich dann in das Feld klicke, hat er dann ja den Wert schon drin. Den möchte ich bei nein nicht drin haben bzw. dann gleich wieder löschen. Die Meldung kommt ein 2. Mal (warum auch immer) und wenn ich dann nochmals nein mache, dann leert sich das Feld auch wieder

Re: Werteprüfung

20. Februar 2013 16:20

stefanr. hat geschrieben:ja das ist der gesamte Code. Habe das auf der Table hinter dem Boolfeld. Wenn ich dann in das Feld klicke, hat er dann ja den Wert schon drin. Den möchte ich bei nein nicht drin haben bzw. dann gleich wieder löschen.

Das habe ich wohl verstanden - hast du aber meine Antwort verstanden?
Die Prüfung ob TRUE muss unbedingt rein - schließlich kann der Haken wieder entfernt werden, und dann machen die nachfolgenden Prüfungen keinen Sinn.
Teste mal bitte, ob das Problem dadurch schon behoben wird (was ich nicht glaube).

Re: Werteprüfung

20. Februar 2013 16:32

Hallo Natalie,

krass. Das verstehe ich nicht aber es funktioniert fast perfekt. Der Update des Feldes passiert erst, wenn ich in ein anderes Feld klicke. Kann ich das auch noch anpassen?

Re: Werteprüfung

20. Februar 2013 16:38

stefanr. hat geschrieben:Der Update des Feldes passiert erst, wenn ich in ein anderes Feld klicke.

Hm, das versteh ich auch nicht :shock:
Vielleicht noch mit MODIFY ergänzen?

Re: Werteprüfung

20. Februar 2013 16:44

Hallo Natalie,

hatte ich schon allerdings ohne Erfolg. :-D

Nachtrag: Allerdings klicke ich in der Page auf das Feld. Ist die Programmierung in der Table ok?

Re: Werteprüfung

20. Februar 2013 17:15

stefanr. hat geschrieben:Ist die Programmierung in der Table ok?

Eigentlich schon. Hätte sie auf der Page statt gefunden und das Problem hätte auch dort bestanden, hätte ich es mit einem anschließenden CurrPage.UPDATE probiert.

Re: Werteprüfung

28. Februar 2013 13:57

Ein CurrPage.update hat in der Page dann noch geholfen.

Danke.