Domino 9 und frühere Versionen > Entwicklung
Execute - Script-Code an Sub übergeben
TMC:
Ich möchte ein spezielles String einer Sub übergeben.
Aktuell sieht das so aus:
A) Agent von dem aus ich die Sub aufrufe:
--- Code: ---Sub Initialize
Dim strExecuteCode As String
strExecuteCode = |"Some text: " + doc.Title(0)|
Call MySub(strExecuteCode)
End Sub
--- Ende Code ---
B) In der Sub steht dann an entsprechender Stelle:
--- Code: --- strExecuteCode = |strSubject = | + strExecuteCode
'Msgbox strExecuteCode
Execute strExecuteCode
--- Ende Code ---
Was mir hier noch nicht gefällt:
In der Sub müssen die Variablen "doc" und "strSubject" global definiert sein (damit hier Execute funktioniert) - die hätte ich aber gerne in der Sub selber.
Ist das überhaupt so der gängige Weg, um einer Sub/Function die Zusammensetzung eines Strings vorzugeben, oder gibt es da einen einfacheren Weg - ohne Execute zu verwenden?
Prinzipiell geht es hier darum, einer Sub/Function mitzugeben, wie sich ein String in der Sub/Function zusammensetzen soll (also aus Text und 1-x verschiedenen Feldinhalten eines Dokumentes). Dabei möchte ich möglichst variabel sein.
elajen:
Hallo,
die Frage ist ja eigentlich in welchem Kontext läuft die Funtion, die man mit excute ausführt. Nach dem, wie Du's beschreibst, denke ich, daß die Funktion genauso behandelt wird, wie die anderen Funktionen in dem Kontext woraus sie aufgerufen wird (also z.B. zum Global einer Maske ).
Das würde auch den Zugriff nur auf globale Variablen erklären.
Gruß von Ekki
koehlerbv:
Variable, die nicht nur innerhalb eines via Execute erst zur Laufzeit zu kompilierenden und auszuführenden Codes gültig sein sollen, müssen (logischerweise) global deklariert sein. Daran führt kein Weg vorbei.
Matthias, wenn es Dir "nur" um das Verketten von Strings aus n Feldern geht, dann kannst Du doch auch eine Funktion bauen, die in einem Array die Feldnamen, die zu berücksichtigen sind, enthalten.
Bernhard
TMC:
--- Zitat von: koehlerbv am 06.09.04 - 09:34:30 ---Matthias, wenn es Dir "nur" um das Verketten von Strings aus n Feldern geht, dann kannst Du doch auch eine Funktion bauen, die in einem Array die Feldnamen, die zu berücksichtigen sind, enthalten.
--- Ende Zitat ---
Hab auch schon daran gedacht, aber das ist mir zu wenig flexibel.
Beispiel:
Ich möchte z.B. in den Strings haben:
"Text 1 " + doc.Status(0) + " ...." + doc.Subject(0)
oder
"Text"
oder
doc.Feld3(0) + " ...." + doc.Feld7(0) + doc.Feld9(0)
Also eine beliebige Kombination von Text und Feldinhalten.
koehlerbv:
Naja, das meinte ich doch.
Dim aMyFields (0 to 3) As String
Dim strResult As String
aMyField (0) = "Status"
aMyField (1) = "Subject"
aMyField (2) = "Hints"
strResult = RetrieveFields (docMyDocument, aMyField)
Die Function garrabelt sich dann aus docMyDocument via GetItemValue (oder wie auch immer) das Zeugs dynamisch zusammen.
Ich kann da keinen Nachteil zu Execute erkennen.
Ciao,
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln