Domino 9 und frühere Versionen > ND7: Entwicklung

Feldwert in Execute-Statement ausführen

(1/1)

Mok:
Hallo!
Mein Problem ist Folgendes:

Ich habe ein RTF. In einer Klasse greife ich dann auf dieses Feld zu, hole mir den sich darin befindenden Script-Code, schreibe diesen in die String-Variable script$ und möchte diesen in einem Execute (script$) ausführen lassen.
Befinden sich simple Anweisungen in dem Code funktioniert der Execute.
Sobald ich aber eine verschachtelte Anweisung schreibe, z.B.
--- Code: ---Call doc.ReplaceItemValue("FIELDNAME", "VALUE -> " & doc.GetItemValue("OHTERFIELDNAME")(0))
--- Ende Code ---
bricht Execute mit der Fehlermeldung "Unexpected: String Constant; Expected Statement" ab.
Füge ich den verschachtelten Code direkt in die Variable script$ (ohne ihn also vorher aus dem Feld auszulesen), funktioniert der Execute-Befehl wieder.

Was mache ich falsch??

Hier nochmal bildlich:  :)

Text im Feld "ScriptCode": (funktioniert nicht)
|
' just a comment
Msgbox Proc.GetItemValue("FIELDNAME")(0)
Call Proc.ReplaceItemValue("FIELDNAME", "VALUE -> " & Proc.GetItemValue("OTHERFIELDNAME")(0))
|

--- Code: ---script$ = doc.ScriptCode(0)
Execute script$

--- Ende Code ---

Code in der Variablen script$: (funktioniert)

--- Code: ---script$ = |
' just a comment
Msgbox Proc.GetItemValue("FIELDNAME")(0)
Call Proc.ReplaceItemValue("FIELDNAME", "VALUE -> " & Proc.GetItemValue("OTHERFIELDNAME")(0))
|
Execute script$

--- Ende Code ---

Beim Debuggen ist mir aufgefallen, dass wenn der Wert aus dem Feld kommt, die Anführungszeichen maskiert sind, also z.B.: Msgbox Proc.GetItemValue(""FIELDNAME"")(0).
Kommt der Wert direkt aus der Variablen, kann der Debugger diesen nicht mehr anzeigen  :-: (aber der Execute führt ihn korrekt aus)

Ich hoffe, ihr könnt mir weiterhelfen!

Grüße,

Mok

HH:
Hallo Mok,

die Pipes ( | ) im Feld ScriptCode sind überflüssig.

Hubert

Mok:
Hatte ich schon versucht.
Ändert leider nichts am Verhalten!

Mok:
Für alle, die es interessiert:
Es liegt daran, dass Notes wohl bei der Rückgabe eines RTF nach einer bestimmten Anzahl von Zeichen einen Zeilenumbruch einbaut (siehe hier http://atnotes.de/index.php/topic,36252.0.html)

Nach Umstellung auf rtItem.GetUnformattedText funktioniert Execute wieder einwandfrei.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln