Domino 9 und frühere Versionen > Entwicklung

Variable als Ausdruck verwenden

<< < (2/4) > >>

ata:
... in einer Feldberechnung kannst du kein LS verwenden, sondern nur Formeln...

... mit LS sieht das dann so aus
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim wert1 as long
dim wert2 as long
dim formel as string
Dim vVResult as Variant

Set doc = ws.CurrentDocument.Document
wert1 = 250
wert2 = 13
doc.Wert1 = wert1
doc.wert2 = wert2
formel = "wert1 + wert2"
vResult = Evaluate( formel , doc )


ata

tabama:
ist ja egal, ich kann ja den Feldinhalt mit "varialbe = doc.feld(0)" übernehmen aber:

Notes bringt bei " formel = "wert1 + wert2" den Fehler: "vResult = Evaluate( formel , doc )"

und genau das ist mein Problem. Die Formel ist nicht immer gleich (sprich konstant). Sonst könnte ich sie ja fest ins script übernehmen.

Vieleicht klappts ja doch irgendwie.

ata:
... ich verwende daß bei parametrisierten Excel-Exporten. Dabei werden in einem Feld Formeln hinterlegt und mit Evaluate auf das Dokument angewendet. Bei der einfachen Formel von dir dürfte das kein Problem sein. Allerdings hat der Evaluate auch seine Grenzen - keine UI-Befehle zum Beispiel -

... vielleicht brauch ich mehr Details. Wenn du mir eine abgespeckte Versiondeines Codes zur Verfügung stellst, dann kann ich dir vielleicht weiter helfen - auch was deine Fehlermeldung betrifft - wie heißt die denn im Wortlaut?

ata

tabama:
Hier meine Aufgabe:


--- Code: ---Sub Click(Source As Button)
     Dim workspace As New NotesUIWorkspace
     Dim uidoc As NotesUIDocument
     Dim doc As NotesDocument    
     Set uidoc = workspace.CurrentDocument
     Set doc = uidoc.document
     
     'das Document hat Felder mit vorhandenen Werten
     'die ich der Einfachheithalber hier setze:
     doc.wert1 = 200
     doc.wert2 = 300
     doc.formel = "doc.wert1(0) + doc.wert2(0)"
     
     Dim ergebnis As Variant
     ergebnis = doc.formel(0)
     Messagebox(ergebnis)  
     
End Sub

--- Ende Code ---



Das Probelm:
ergebnis ist nicht 500, sondern der String "doc.wert1(0) + doc.wert2(0)"

koehlerbv:
Na, da macht doch Notes genau das, was Du von ihm verlangt hast.
Die Lösung wurde gleich zu Beginn von Driri gepostet:

doc.formel = Cstr (doc.Wert1 (0) + doc.Wert2(0))

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln