[gelöst]Variab von einer Form zur anderen Form übergeben(CC)

2. März 2012 08:27

Guten Morgen zusammen,

folgendes Problem beschäftigt mich und ich komme nicht weiter.

Ich habe eine Form1 (Buchblatt) in der ich mir anhand des Buchblattnamens mir Diverse Informationen aus anderen Tabellen herhole. Aus der Form1 heraus möchte ich nun eine andere Form2 öffnen, die so mit dem Rec nichts zu tun hat. Um das anzeigen zu können was ich will brauche ich dort aber den Buchblattnamen.
Wie bekomme ich von Form1, eine Variable beim Öffen von Form2, in diese übertragen?
Ich habe schon versucht über eine Funktion in Form2, vor dem Öffnen der Form2 zu übergeben. Beim eigentlichen Öffnen der Form2 ist die Info aber wieder weg.
Auch der umgekehrte Weg nach dem Öffnen der Form2 über eine Funktion in Form1 die Variable zu holen scheitert.

Ich hoffe Ihr habt einen Tipp für mich

Danke schon mal

Viele Grüsse aus dem Nebel

Roland
Zuletzt geändert von Roland am 2. März 2012 10:52, insgesamt 1-mal geändert.

Re: Variablen von einer Form zur anderen Form übergeben (CC)

2. März 2012 08:58

Die Idee war schon richtig. Kannst du mal den Code posten?

Re: Variablen von einer Form zur anderen Form übergeben (CC)

2. März 2012 09:49

Hi Guten Morgen Stefan,

aus der Form1 rufe ich im OnPush Trigger die Funktion
Code:
Form2.SetVariable(Personalnummer,Ressourcennummer);
FORM.RUNMODAL(Form2);

in Form2 auf
Code:
SetVariable(VAR PersoNr_ : Code[20];VAR RessNr_ : Code[20])
PersoNr := PersoNr_;
RessNr := RessNr_;


Wobei PersoNr und RessNr Globale Variablen sind.

die Alternative aus der Form2 heraus holen bzw beim Öffnen

im OnOpen Trigger
Code:
PersoNr := Form1.SetVariablePerso();
RessNr := Form1.SetVariableRess();


die Funktionen

Code:
SetVariablePerso() PersoNr2 : Code[20]
PersoNr2 := Personalnummer;

SetVariableRess() RessNr2 : Code[20]
RessNr2 := Ressourcennummer;


wobei auch hier die Personalnummer und Ressourcennummer global sind

Re: Variablen von einer Form zur anderen Form übergeben (CC)

2. März 2012 10:00

Der Fehler in Variante1 ist hier:
Code:
FORM.RUNMODAL(Form2);
form2.runmodal; // wäre richtig


Variante 2 kann so nicht klappen.

Re: Variablen von einer Form zur anderen Form übergeben (CC)

2. März 2012 10:22

Hallo,

also diese Form Insatnzen sind unabhängig voneinander. D.h bei jedem Aufruf der Form wird eine neue Instanz erzeugt.

Aber ein Tipp hätte ich für dich.
(Diese will ich selber umsetzten:-) Ich hoff, es klappt)

Erstell eine SingleIntance Codeunit. Zwei globale Rec Variablen der Formen und zwei (mal 2) Funktionen von der du diese gloaben Recs setzt und holst. Und in deien Formen baust du zwei Funktionen get und set, die sich diese glbalen Recs holen oder setzen.
War die Idee so einigermaßen klar.???


Gruß
Aydin

Re: Variablen von einer Form zur anderen Form übergeben (CC)

2. März 2012 10:50

Hallo Stefan,

jetzt hat es geklappt. Den Aufruf hatte ich zwar schon mal versucht. Die Ursache lag eher an einem Denkfehler, der mir erst aufgefallen ist, als Du mir Hoffnung gemacht hast, dass das so klappen muss und ich den Code nochmals Durchgegangen bin. :shock:


So dann muss ich das Unnütze mal wieder rauslöschen ;-)

Viele Dank für Deine Hilfe!

schönes Wochenende

Roland