Form schreibgeschützt öffnen

29. Juli 2008 15:14

Hallo Leute,

ich habe folgendes Problem:

Ich möchte eine Form, die normalerweise ganz irgendwo anders geöffnet wird, in einer anderen Maske zugänglich machen. Wenn man die Form aber in diesen ganz speziellen Ort öffnet, sollen die Felder auf Editable = False stehen. Normalerweise sollen diese aber bearbeitet werden können. Ich brauche eine Funktion mit der ich eine Form schreibgeschützt öffnen kann.

Hat jemand eine Idee?

Grüße
Daniel

29. Juli 2008 15:31

Definiere sie dir doch als Variable. Dann kannst du vor dem form.run(modal) ein form.editable(false) einsetzen.

29. Juli 2008 15:40

Irgendwie läuft das noch nicht:

"SLCalculationBOM" = Variable für Form "SL-Calculation BOM"

"SLCalculationBOM".editable(false);
FORM.RUNMODAL(Form::"SLCalculationBOM",VkzKalkStueli);

Fehlermeldung: Sie dürfen nicht 'SLCalculationBOM' in FormNO eingeben. Der Cursor befindet sich vor dem ungültigen Zeichen.

??? Hab keinen Plan. Bitte um Hilfe!!

Grüße
Daniel

29. Juli 2008 15:43

Du musst den statischen Form aufruf nutzen und eine Funktion schreiben in der die Felder auf False setzt werden.

ergo Variable anlegen mit dem Typ Form und die gewuenschte Form angeben.
Dann darueber die Funktion aufrufen und die Felder auf False setzten.
Daraufhin das Form aufrufen!
Zuletzt geändert von MatthiasKönig am 29. Juli 2008 15:47, insgesamt 1-mal geändert.

29. Juli 2008 15:46

Schon wieder eine Fehlermeldung:

SLCalculationBOM.RUN(VkzKalkStueli);

"Sie dürfen maximal 0 Parameter verwenden, um diese Funktion aufzurufen"

Ich möchte die Form SLCalculationBOM mit den Daten von VkzKalkStueli füllen.

29. Juli 2008 15:52

Irgendwie habe ich das jetzt nicht verstanden. (Bin Navision-Neuling)

29. Juli 2008 16:00

Kann ich nicht einfach meine "Form" in form einer Variable starten, die dann auf Editable = False gesetzt wurde?

SLCalculationBOM.EDITABLE(FALSE);
FORM.RUNMODAL(FORM::SLCalculationBOM,VkzKalkStueli);

29. Juli 2008 16:31

In der zweiten Codezeile wird nicht die VARIABLE SLCalculationBOM verwendet; daher kann NAV auch nicht wissen, dass die Form nicht editierbar sein soll.
FORM::SLCalculationBOM sucht nun im Object Designer nach einer Form mit dem Namen(!) SLCalculationBOM und wird natürlich nichts finden.

29. Juli 2008 16:34

Dass du die Form mit einem bestimmten Record öffnen willst, hast du ja nicht erwähnt :wink:

Bsp - EK-Bestellung PurchOrderNo anzeigen:

Code:
PurchHeader.SetRange("Document Type",PurchHeader."Document Type"::Order);
PurchHeader.SetRange("No.",PurchOrderNo);
clear(form50);
form50.editable(false);
form50.SetTableView(PurchHeader);
form50.runmodal;

29. Juli 2008 17:12

Leute,

ihr seid KLASSE!!! :)

Funktioniert :)

29. Juli 2008 17:35

Dann gönn uns doch auch ein [gelöst] ;)

29. Juli 2008 21:30

Eine Alternative dazu:
Wenn die Form im LookUpMode geöffnet wird,
kann man diesen im OnOpenForm abfragen und dort dann schreibschützen.