Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: master am 13.12.11 - 15:32:53
-
Hi,
ich müsste Infos von meinen Scripten aus den Bibliotheken in die Scripte bringen, welche in den Events der Dialogmaske ausgeführt werden.
Hier ein Beispiel, was ich machen möchte:
' Globale Declaration
Dim globaleinfo as string
Sub startdlg
Dim ws as new NotesUIWorkspace
Dim se As New NotesSession
Dim dialogdoc As New NotesDocument(se.currentdatabase)
globaleinfo = "Vorbelegung"
ws.DialogBox "teilmaske", True, True, False, False, False, False, "titel", dialogdoc
MsgBox globaleinfo
End Sub
Im "Postopen" möchte ich den Inhalt der Globalen Variable "globaleinfo" lesen und schreiben, aber trotz Use der Scriptbibliothek handelt es sich um eine weitere Kopie der Variablen im Speicher.
Sub Postopen(Source As Notesuidocument)
Msgbox globaleInfo
globaleInfo = "neuer Inhalt"
End Sub
An das Dialogdoc hängen bring in meinem Fall nichts, da es sich im konkreten Anwendungsfall nicht um einen String handelt, sondern um ein Objekt einer komplexen Klasse. Auch getenvironmentstring der NotesSession scheidet aus dem gleichen Grund aus.
Hat irgendwer noch ne andere Idee?
Gruß
Klaus
-
in den Dialogen hast du einen eigenen Speicherkontext, es gibt keinen Weg, da irgendwelche Objekte durchzuschleusen (wenn doch, dann wäre ich da auch sehr interessiert daran)
Gruß
Roland
-
... du kannst definitiv keine globalen Objekte durchschleusen. Du wirst dein Objekt in einen Stream wandeln müssen und temporär ins Filesystem geben oder in die Parameter deines Objektes Feldern in deinem docDialog mitgeben und dann Objekt neu initialisieren. Ein String wäre über das Environment oder ein Profildokument machbar - nach meiner Meinung...
Toni
-
Das ist so nicht richtig. Das könnte über sogenanntes Remote event binding funktionieren.
Kurz zusammengefasst bindet man sich beim aufruf der maske ans queryclose event des notesuidocumentes und hast dann einen gemeinsamen kontext (in etwa).
Bin da vor Jahren mal drüber gestolpert, ich bin mir nur nicht sicher, ob das im dialogbox- kontext funktioniert...
Näheres dazu hier: http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-75CGS2
Es gibt noch nen part 2:
http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-75CJ6F
Vielleicht hilft es Dir ja weiter...
Edit: habs grade gecheckt. Leider gibt dialogbox kein uidocument zurück , an dessen events man sich hängen könnte... Aber vielleicht hilft der tipp trotzdem...
-
... beim uidoc mag das gehen - aber hier gibt es in der Dialogbox kein uidoc, wie du schon festgestellt hast. Der Ansatz hier würde bedeuten nicht über den Dialog zu gehen, sondern über ein Dokument mittels der Dialogmaske - sieht dann halt nicht mehr wie ein Dialog aus...
Toni
-
Für Parameterübergaben in Dialoge verwende ich immer versteckte Felder, welche ich im DialogDokument vorbelege und dann in den Skripten innerhalb der Dialoge auslese.
-
... so mach ich das auch - aber in diesem Fall soll ein komplexes Klassenobjekt global durchgreicht werden - und das geht so nicht - leider...
-
Aus dem Codeschnippsel von Master geht da ja nicht direkt hervor, wie komplex die Objekte sind. bzw. Ein String
ist da nicht wirklich komplex :-)
-
Urs, ich finde die Aussage aber eindeutig:
... da es sich im konkreten Anwendungsfall nicht um einen String handelt, sondern um ein Objekt einer komplexen Klasse.
Bernhard
-
@bernhard, stimmt. wer lesen kann ist klar im Vorteil :-)
-
Kann passieren, Urs - ich bin da auch gut drin ;).
Ich wollte das nur nochmal verdeutlichen, damit das eigentliche Problem klar ist: Einfach kann jeder, aber das Problem von Klaus ist wirklich eine Herausforderung.
Bernhard
-
... daher wird es nur über den Umweg einer Transformation gehen - wie Bernhard schon bemerkte - eine Herausforderung - und nebenbei wurde mir das Event-Binding wieder ins Bewusstsein gerückt. Da verwende ich bislang immer noch die Events der Dialogmaske...
Toni
-
Hallo zusammen,
vielen Dank für eure Tipps und Hilfe. Ich habe das Vorhaben fallengelassen. Ich verwende die Events der Dialogmaske.
Gruß Klaus