Autor Thema: Feldwert in Execute-Statement ausführen  (Gelesen 1593 mal)

Offline Mok

  • Frischling
  • *
  • Beiträge: 23
Feldwert in Execute-Statement ausführen
« am: 22.01.09 - 11:59:07 »
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))
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$

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$

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
« Letzte Änderung: 22.01.09 - 14:32:43 von Mok »

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Feldwert in Execute-Statement ausführen
« Antwort #1 am: 22.01.09 - 13:07:07 »
Hallo Mok,

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

Hubert

Offline Mok

  • Frischling
  • *
  • Beiträge: 23
Re: Feldwert in Execute-Statement ausführen
« Antwort #2 am: 22.01.09 - 13:39:05 »
Hatte ich schon versucht.
Ändert leider nichts am Verhalten!

Offline Mok

  • Frischling
  • *
  • Beiträge: 23
Re: Feldwert in Execute-Statement ausführen
« Antwort #3 am: 22.01.09 - 14:23:47 »
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.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz