[gelöst] Aufruf einer Form mit Parameter

3. Oktober 2007 13:13

Hallo
Ich rufe aus verschiedenen Forms immer eine weitere Form auf. Diese Form soll aber je nachdem von wo aus sie aufgerufen wird, editierbar sein oder eben nicht.
Ich weiss, wie ich die Form selbst editierbar mache, weiss aber nicht, ob ich dem Befehl FORM.RUNMODAL einen Parameter übergeben könnte, der den Schreibschutz setzt oder aufhebt..
Für Eure Hilfe wäre ich dankbar.
Gruss
Jörg

3. Oktober 2007 13:38

Hallo Jörg,

erstelle in der Form, welche aufgerufen wird, eine neue Funktion. Diese neuen Funktion nimmt dann den Parameter entgegen. Zum Beispiel so:

Code:
SetEditable(Editable : Boolean)
CurrForm.EDITABLE:=Editable;

SetEditable ist hier der Funktionname, Editbale ein Parameter vom Typ Boolean.

Wenn du nun die Form aufrufen möchtest, geht das nicht mit FORM.RUNMODAL. Du musst stattdessen eine Variable vom Typ Form anlegen und die Form wie folgt aufrufen:

Code:
Form.SetEditable(FALSE); // bzw. Form.SetEditable(TRUE);
Form.RUNMODAL;

Form ist hier die Variable.

Gruß, Marc

3. Oktober 2007 14:26

Ich stand vor Kurzem vor einem ähnlichen Problem, wo ich jedoch nicht direkt einen Parameter an die Form übergeben konnte, da noch eine andere Form dazwischengeschaltet war.
In diesem Fall habe ich mir (wie so häufig) mit einer SingleInstance-Codeunit geholfen, mit der ich sozusagen "anwendungsglobale" Variablen abbilden kann.
Ein Beispiel dafür findest du in diesem Beitrag.
Dieses Beispiel ist auch in meiner umfangreichen Tools-Sammlung enthalten.

[gelöst] Aufruf einer Form mit Parameter

3. Oktober 2007 15:26

Vielen Dank für die wie gewohnt rasche Unterstützung.
Marc, ich habe Deinen Weg bevorzugt, konnte mit einer kleinen Änderung auch gerade noch den Filter mitgeben. Nun funktioniert es, wie ich es gewünscht habe.

Code:
//-LAND001
hrec.SETRANGE("No.","No.");
   IF hrec.FIND('-') THEN BEGIN
    bem.SetEditable(FALSE,hrec."No.");
    bem.RUNMODAL;
    CLEAR(bem);
   END;
//+LAND001


Gruss
Jörg