Subform.editable(false) - trotzdem editierbar

25. August 2009 09:21

Hallo Leute,

ich habe ein Form, in dem ich über einen Freigabestatus das gesamte Form auf nicht editierbar setze, wenn dieser Beleg freigegeben ist. In diesm Form ist auch ein Subform, welches ich mit
Code:
Currform.SubForm.editable(false);


setze. Wenn keine Zeilen im Subform angelegt worden sind, ist es auch editierbar. Wenn allerdings Zeilen vorhanden sind, kann ich es editieren.

Hat jmd. eine Idee, woran es liegen kann?

Danke schon mal
lg

Re: Subform.editable(false) - trotzdem editierbar

25. August 2009 09:30

Vielleicht rufst du die Befehle an falscher Stelle auf?

Wenn ich in einer Standard-Auftragsmaske in den OnOpenForm-Trigger CurrForm.EDITABLE(FALSE) ausführe, dann ist die ganze Form inklusive der Subform nicht editierbar.
Gleiches gilt, wenn ich den Befehl im OnAfterGetCurrRecord-Trigger ausführe.

Re: Subform.editable(false) - trotzdem editierbar

25. August 2009 09:45

Ich rufe den Befehl im "OnAfterGetRecord" auf, macht es einen Unterschied zu "OnAfterGetCurrRecord"?

Re: Subform.editable(false) - trotzdem editierbar

25. August 2009 09:53

Hi, ich habe es nun auch im "OnAftergetCurrRecord" hinterlegt. Da kann ich immer noch editieren. Macht es einen Unterschied, das die noch editierbaren Felder LookUp's sind?

Re: Subform.editable(false) - trotzdem editierbar

25. August 2009 09:53

Hatten wir das Thema nicht schon mal? Ich meine, mich erinnern zu können, dass das Umschalten der Subform zwischen editable(false) und true dann hakt, wenn man auf einen neuen Beleg hüpft, der keine Zeilen enthält. Dann klappt´s nicht (find ich aber grad nicht :cry: )

Re: Subform.editable(false) - trotzdem editierbar

25. August 2009 09:54

rom hat geschrieben:Ich rufe den Befehl im "OnAfterGetRecord" auf, macht es einen Unterschied zu "OnAfterGetCurrRecord"?

Ja macht es! Jeder Trigger hat seine ganz eigene Daseinsberechtigung (wobei ich noch nie alle genutzt habe!)

Siehe Navision Online-Hilfe (Aus Version 4):
OnAfterGetRecord hat geschrieben:(Forms)
The C/AL code in this trigger is executed after a record is retrieved from a table but before it is displayed to the user. Typically, you will use this trigger to calculate variables that depend on the current record.
Comments
In a form with a table box, the system calls this trigger for each record in the table box, as the records are updated.

If there is an error in the code in this trigger, the system closes the form.

Wird nach jedem Datensatz aufgerufen.

OnAfterGetCurrRecord
hat geschrieben:
The C/AL code in this trigger is executed after the current record is retrieved from the table.

Comments

In a form with a table box, the system only calls this trigger when it updates the current record in the table box.

If there is an error in the code in this trigger, the system closes the form.

Wird nur nach dem "Updaten" des Datensatztes aufgerufen.

Re: Subform.editable(false) - trotzdem editierbar

25. August 2009 09:59

rom hat geschrieben:Macht es einen Unterschied, das die noch editierbaren Felder LookUp's sind?

Nicht verswechseln: Bei Lookup-Feldern kann die Ausklapp-Funktion niemals deaktiviert werden (man kann höchstens den Lookup-Button ausblenden, aber dies geht nicht dynamisch). EDITABLE steuert hier nur, ob ein so ausgewählter Wert ÜBERNOMMEN wird oder nicht.

Edit: Wenn du möchtest, dass der Benutzer in einer Form GAR NICHTS machen kann, auch keine Lookups, Feldauswahl, was auch immer, dann setze ENABLED statt EDITABLE = false.