Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: ReinerB am 07.09.05 - 15:11:27
-
Dieser Befehl wird in LotusScript benutzt um eine @Formel auf ein Dokument-Item anzuwenden?
Kann man die @Formeln aus der Formelsprache auch auf Programm-Variablen in LotusScript anwenden?
Grüße
Reiner
-
Das hatten wir schon zig mal hier - bitte suche mal nach Evaluate
Andreas
-
Jo, außerdem steht das auch in der Designerhilfe, wie Du Strings an Evaluate übergeben kannst. Ausführungszeichen-Problematik kannst Du umgehen, indem Du Pipe ( | ) oder geschweifte Klammern ( {, } ) anstatt Ausführungszeichen ( " ) verwendest.
-
Sorry wegen des Themas,
habe jetzt mal einiges mehr gelesen hier in diesem Forum und sollte eigentlich etwas schlauer sein wegen EVALUATE.
Aber folgendes Problem kapiere ich nicht:
Dim t(1) As String
Dim t2 As Variant
Dim t3 As Variant
t(0) = "gh"
t(1) = "ab"
t2 = Evaluate(|@Sort(t)|)
t3 = Evaluate(|@Sort("gh":"ab")|)
Warum ist t3 gefüllt und t2 leer? Das will in meinen Kopf nicht rein. Erkennt SORT t nicht als Tabelle? In reiner Formelsprache funktioniert dieses Beispiel.
Ziemlich ratlos
Reiner
-
Wenn Du Variablen aus Script übergeben willst, darfst Du die nicht so direkt mit in die Formel schreiben.
Richtig wäre in dem Fall :
t2 = Evaluate(|@Sort(| & t & |)|)
-
Danke für den Tipp. Über Variablen-Einbindung in @Formeln in LS habe ich auch was im Forum gefunden.
Aber deine Änderung wird nicht angenommen, Type mismatch. t ist doch ein Array aus String und somit eine Textliste oder nicht? @Sort funktioniert doch mit Textlisten.
Oder muß ich eine Änderung machen:
Dim t4 as Variant
t4 = t
t2 = Evaluate(|@Sort(| & t4 & |)|)
Wird vom Designer genommen, bringt aber bei der Ausführung einen Type Mismatch.
Eine Idee?
Und schon wieder bin ich ratlos :-:
Reiner
-
ALSO:
Evaluate arbeitet mit TEXT, Dein t ist ein ARRAY.
Du musst entweder Dein Array in einen Text parsen, wie ihn die Formel erwartet:
tString = {"} & Implode( t , {" : "} ) & {"};
t2 = Evaluate( {@Sort(} & tString & {)}
oder aber Du übergibst den Wert über ein Dokument....
set doc = New NotesDocument( DeineDB )
doc.sortField = t
t2 = Evaluate( "@Sort( sortField )" , doc )
HTH
Tode