Pflichtfelder im Formular

Hallo! Ich nochmal :wink: Wie kann man in einem Formular definieren, dass einige Felder zwingend ausgefüllt werden müssen, bevor man den Datensatz per Datensatznavigations-Pfeil wieder verlassen kann? Finde es eine unschöne Eigenschaft, dass man in Navision standardmäßig quasi leere Datensätze erzeugen kann (z.B. in Debitoren & Verkauf → Angebote). Gruß, Ole

quote:


Wie kann man in einem Formular definieren, dass einige Felder zwingend ausgefüllt werden müssen, bevor man den Datensatz per Datensatznavigations-Pfeil wieder verlassen kann?


Wenn alle Felder gefüllt werden sollen, kann man die FORM-Eigenschaft PopulateAllFields auf Ja setzten … Sollen nur einige bestimmte Felder gefüllt werden, so könnte dies im OnModify-Trigger (Tabelle oder Form) überprüft werden.

quote:


Finde es eine unschöne Eigenschaft, dass man in Navision standardmäßig quasi leere Datensätze erzeugen kann (z.B. in Debitoren & Verkauf → Angebote).


Die Steuerung dieser “unschönen Eigenschaft” obligt dem Entwickler: Field-Property NotBlank auf Ja setzten, und schon muss das Feld einen Wert haben, bei Key-Feldern verhindert dies das anlegen eines “leeren” Datensatzes. Gruß, Jörg

Hallo Jörg, vielen Dank für Deine Tipps. Damit werde ich das wohl so hinbekommen, wie ich mir das vorstelle. Eine Frage nur noch: Wenn ich im OnModify-Trigger der Tabelle feststelle, dass nicht alle Pflichfelder gefüllt sind, wie wäre dann der Befehl, um im Formular wieder den gerade geänderten Datensatz anzuzeigen. Denn eigentlich würde man ja den Datensatz wechseln (wegen des Drückens auf einen der Navi-Pfeile). Danke und Gruß, Ole

quote:


Wenn ich im OnModify-Trigger der Tabelle feststelle, dass nicht alle Pflichfelder gefüllt sind, wie wäre dann der Befehl, um im Formular wieder den gerade geänderten Datensatz anzuzeigen.


Sollte mit 'ner ERROR-Meldung funktionieren:

Table OnModify
...
IF (Feld01 = '') OR   // Pflichtfelder
   (Feld02 = '') OR   // Pflichtfelder
   (Feld03 = '') OR   // Pflichtfelder
   ...                  
THEN
  ERROR('Es wurden nicht alle Pflichtfelder gefüllt.');
...

Hab’s selber nicht probiert … Gruß, Jörg

quote:


Hab’s selber nicht probiert …


Na dann werde ich das jetzt mal tun. [:p] Vielen Dank! [:)]

Hallo, wen die Felder die du überprüfen willst keine Primärschlüssel Felder sind dann muss du auf der Form Eigenschaften \Delayinsert auf True setzen! Gruß Berkan