[gelöst] Drop-Down Bemerkungscodes

3. Dezember 2007 10:58

Hallo,

um in unserer Navision-Anwendung Bemerkungscodes vorzugeben, habe wir eine neue Tabelle generiert, in der wir die zur Auswahl stehenden Bemerkungscodes pflegen. Auf diese Tabelle "Bemerkungscodes" beziehen sich alle Bemerkungsforms / -tabellen.

Leider habe ich es noch nicht hinbekommen, dass nur noch die in der Tabelle "Bemerkungscodes" definierten Codes akzeptiert werden. Im Moment kann ich neben den Drop-Down-Möglichkeiten auch noch manuell andere Codes eingeben - dies soll allerdings unmöglich sein.

Leider habe ich die entsprechende Einstellung nicht gefunden. Kann mir jemand weiterhelfen und mitteilen, wo ich die Properties entsprechend ändern muss.

Danke im Voraus und Gruss

Rainer
Zuletzt geändert von rgebhart am 3. Dezember 2007 12:49, insgesamt 1-mal geändert.

3. Dezember 2007 11:08

ist das bei Dir mit 2 Feldern also Code und Beschreibung gelöst oder bezeichnest du als Code die möglichen Eingaben im Feld Bemerkung?
im ersten Fall musst du das Feld Bemerkung auf editable=false (no) setzen, dann kann die Eingabe nur noch über das Feld Code erfolgen, in dessen Properties muss natürlich VerifyTableRelation und ValidateTableRelation auf true (Yes) setzen.
Im zweiten Fall musst du diese beiden Properties auf dem Feld Bemerkung setzen, und die Table Relation natürlich auch auf deine Tabelle mit zulässigen codes.

3. Dezember 2007 11:37

Es handelt sich nur um das Feld "Code" in den Bemerkungstabellen. In das Feld "Bemerkung" kann weiterhin ein Freitext eingegeben werden.

Das Problem lag daran, dass die Properties VerifyTableRelation und ValidateTableRelation tatsächlich nicht auf true (Yes) gesetzt waren. Jetzt werden zumindest nur noch Einträge (Codes) zugelassen, die in meiner neuen Tabelle definiert sind.

Jetzt habe ich allerdings noch das Problem, dass das Feld "Code" leerbleiben kann, wenn man nichts auswählt. Wie kann ich das verhindern?

3. Dezember 2007 12:17

Hallo Rainer,

1.Vorschlag
in den Properties des Feldes gibt es auch die Eigenschaft "NotBlank". Wenn Du diese auf "TRUE" setzt, dann erlaubt das System nicht mehr, dass das Feld leer verlassen wird.

Ein Problem bleibt: Der Benutzer wird damit nicht gezwungen, dass Feld beim ersten Mal auszufüllen.

zusätzlich: Setze einen Standardwert mit der Eigenschaft "InitValue". Dies ist die Vorbelegung für dieses Feld. Bei einem neuen Datensatz wird dieser Wert immer vorbelegt. Der Benutzer kann ihn ändern, aber nicht herausnehmen, da ja "NotBlank" auf TRUE steht.


2.Vorschlag:
Wenn Du keine Vorbelegung möchtest, dann würde ich es im Code in dem OnInsert und OnModifyTrigger umsetzen:

Code:
IF "Feld Name" = '' THEN
  ERROR('Feld muss gefüllt sein!');


In dem Fall wird das Anlegen und das Speichern des Datensatzes nur zugelassen, wenn das Feld auch wirklich gefüllt ist.


Schönen Gruß

Gregor

3. Dezember 2007 12:48

Danke, das hat weitergeholfen.

Viele Grüsse

Rainer

3. Dezember 2007 17:07

Kleiner Vorschlag : statt
Code:
IF "Feld Name" = '' THEN
  ERROR('Feld muss gefüllt sein!');

schreibe doch einfach
Code:
TESTFIELD("Feld Name");

Entspricht auch eher dem NAV-Standard.