Domino 9 und frühere Versionen > ND8: Entwicklung
Evaluate-statement liefert manchmal falsches Ergebnis
DAU-in:
ein kurzes Update:
1.) umstellen auf 'berechnet beim Anlegen' für das abgefragte Feld zeigte keinen Unterschied
2.) mit temporärem Dokument liefert es ebenfalls falsche Ergebnisse
das Feld isoliert in einer lokalen DB und einem Button mit den 3 verschiedenen Evaluates auf dieses Feld funktionierten problemlos.
Ich bin ratlos.
hier ist der Kot:
Dim session As New Notessession
Dim doc As Notesdocument
Dim strFormel1 As String
Dim strFormel2 As String
Dim strFormel3 As String
Dim var1 As Variant
Dim var2 As Variant
Dim var3 As Variant
strFormel1 = { Eingabe = "blabla"}
strFormel2 = { @getField("Eingabe") = "blabla"}
strFormel3 = { @if(@getField("Eingabe") = "blabla"; @True; @False)}
Set doc = ws.currentDocument.Document
var1 = Evaluate(strFormel1, doc)
Messagebox strFormel1 & " " & Cstr(var1(0))
var2 = Evaluate(strFormel2, doc)
Messagebox strFormel2 & " " & Cstr(var2(0))
var3 = Evaluate(strFormel3, doc)
Messagebox strFormel3 & " " & Cstr(var3(0))
Peter Klett:
Wenn es in einer lokalen DB mit den separaten Feldern funktioniert, probiere doch mal diese DB auf dem Server. Wenn es dann auch funktioniert, kann man wohl lokal <> Server ausschließen.
Gibt es irgendwelche Besonderheiten bezüglich der Felder, auf die Du zugreifst?
- (zugriffsgesteuerte) Abschnitte
- Teilmasken
- gemeinsame Felder
DAU-in:
Hallo Peter,
das Feld ist in einer versteckten Teilmaske.
Ansonsten sind in der Maske ca.8 Teilmasken enthalten, sowie ineinander geschachtelte tabbed tables und 6 zugriffsgesteuerte Abschnitte, da liegt das Feld aber nicht drin.
ich probiere es nächste Woche wieder.
gute Nacht
Dau-in
Peter Klett:
Hast Du schon einmal probiert, mit Evaluate den Wert des Feldes ausgeben zu lassen?
Also so:
strFormel1 = {Eingabe}
var1 = Evaluate(strFormel1, doc)
Messagebox strFormel1 & " " & Cstr(var1(0))
Was verstehst Du unter einer versteckten Teilmaske? Hast Du in der Maske den Bereich mit der Teilmaske verborgen (wüsste nicht, dass das geht)? Oder ist die Teilmaske eine "ganz gewöhnliche" und nur die Felder in der Teilmaske sind verborgen?
Testweise würde ich die Felder aus der Teilmaske entfernen und in die Maske einfügen.
Du kannst auch nur die Teilmaske entfernen, ohne das Feld in die Maske zu kopieren, denn Du greifst ja auf das Item im Dokument zu, das muss vorhanden sein, unabhängig davon, ob das Feld in der (Teil-)Maske definiert ist (zumindest im Client, Du arbeitest doch im Client und nicht im Browser?)
Ich gebe zu, dass das alles keine fundierten Vorschläge sind, sondern eher ein wildes Suchen. Aber das Problem ist absolut unlogisch und eigentlich nicht zu greifen. Da kannst Du nur alles Mögliche und Unmögliche probieren, um dann wohl eher zufällig zu einer Lösung (hoffentlich) zu kommen.
Bastel123:
Probier mal aus, ob es einen Unterschied macht wenn das Dokument im "Lesen" oder "Bearbeiten" Modus ist.
Wenn es nicht vorher gespeichert wurde ist im "Bearbeiten" Modus das doc aus ws.uidoc.document "noch nicht soweit", d.h. es hat noch die alten Werte.
Ich arbeite dann mit uidoc.Fieldgettext("xxx")
Sebastian
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln