Hallo Forum,
ich hätte da mal wieder ein Problem welches mich fast in den Wahnsinn treibt!
Folgender Sachverhalt:
In einer Maske A gibt es eine Aktion die ua. diese Zeilen enthält:
1) If ws.DialogBox ( "TM-Gliederung", True, True, False, True, False, False, "Prozessauswahl" ) Then
2) Call ws.ComposeDocument( "", "", "Transaktion" )
3) End If
zu 1)
Die hier aufgerufene Maske "TM-Gliederung" enthält ausschliesslich eine umfangreiche eingebettet Gliederung und ein Feld SaveOptions=0 / berechnet beim Anlegen.
Die Gliederungseinträge machen nix anderes als in der notes.ini eine Variable "RP" mit einem passenden Wert zu setzen
zur 2)
Die hier aufgerufene Maske "Transaktion" enthält ausschliesslich einen Bereich für berechnete Teilmasken. Beispiel:
@If(@environment("RP")="Bestellung IT-Verbrauchsmaterial";"TM-1";@environment("RP")="Verlagerung von Technik Dst zu Dst";"TM-2";"")
So wie ich es prüfen konnte wird über die Gliederungseinträge in der Dialogbox mit Klick auf "OK" die Variable "RP" in der notes.ini gesetzt.
Problem:
Die in Zeile zwei aufgerufene Maske berechnet immer erst beim zweiten Durchlauf die anzuzeigende Teilmaske nach dem aktuellen Wert von "RP"
Diese Fehler (meinerseits?) kann definiert nachvollzogen werden ohne dass die Maske A in der die auslösende Aktion steht neu aufgerufen wird,
sondern nur die Aktion selbst.
Es ist kein Timingproblem irgendeiner Art, ich habe mal zwischen die Zeilen ein sleep 3 gesetzt, gleiches Ergebnis.
Ebenfalls hat der Versuch über ein Feld "RP" in Transaktion" / berechnet beim Anlegen mit @environment("RP") und Anpassung der Berechnungsformel
für die Teilmaske keinen Erfolg gebracht. Es wird sogar keinerlei Teilmaske angezeigt, da wohl die Belegung des Feldes "RP" zu spät erfolgt.
Frage:
Wo liegt hier mein Denkfehler? Kennt jemand das Problem bzw. eine Lösung dazu?
Würde mich über eine hilfreiche Info sehr freuen!
Danke !
Grüße Ricardo