Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wiesel am 20.11.06 - 10:51:20
-
Hallo!
Ich habe in einem Querysave einer Maske eine Formel, die bei einem neuen Dokument einen Wert aus einem Profildokument holt und in ein Feld packen soll.
Das funktioniert auch.
Aber das Feld ist im Profildok und in der Maske eine Zahl und das Script packt es mir als Text in das Maskenfeld.
Hier erstmal mein Script:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim uiWs As NotesUIWorkspace
Dim S As New NotesSession
Dim pdoc As NotesDocument
Dim dblBeschluss As String
If Source.IsNewDoc Then
Set pdoc = S.CurrentDatabase.GetProfileDocument( "(DBProfil)" )
dblBeschluss= pdoc.numBeschluss(0) + 1
Call Source.FieldSetText( "numBeschluss", dblBeschluss )
pdoc.numBeschluss = dblBeschluss
Call pdoc.Save(True, False)
End If
End Sub
Wenn ich die Zeile
Call Source.FieldSetText( "numBeschluss", dblBeschluss )
so umschreibe:
Call Source.FieldSetText( "numBeschluss", Cdbl(dblBeschluss) )
dann bekomme ich die Fehlermeldung: ....String exepted...
Wie kriege ich meinen Wert aus dem Profildok als Zahl in das berechnete Feld in der Maske?
Gruß,
Wiesel
-
Indem du das nicht mit FieldSetText machst.
-
oder etwas genauer. indem du ein Notesitem verwendest und das sauber deklarierst.
-
Ergänzend zu Thomas' Anmerkung: Im ProfileDoc bekommst Du auch einen String ...
Irgendwie sieht das ganze nach einer fortlaufenden Nummer aus, was Du da machst. Dann noch über ein ProfileDocument ... Wenn da mehr als eine Person mit der Datenbank arbeitet, sind Dir doppelte Nummern ganz gewiss.
Bernhard
-
In dem Teil der Datenbank arbeitet nur eine Person. Daher sollte das mit der Nummerierung klappen.
Aber ich habe probleme dabei, das Ganze jetzt mit dem NotesItem zu lösen....
-
Item ist nicht erforderlich.
Dim uiWs As NotesUIWorkspace
Dim S As New NotesSession
Dim pdoc As NotesDocument
Dim dblBeschluss As Long
If Source.IsNewDoc Then
Set pdoc = S.CurrentDatabase.GetProfileDocument( "(DBProfil)" )
dblBeschluss= pdoc.numBeschluss(0) + 1
Source.Document.numBeschluss = dblBeschluss
pdoc.numBeschluss = dblBeschluss
Call pdoc.Save(True, False)
End If
Bernhard
-
Immer noch Text.
Gibt es eine Erklärung wann man
Source.Document.numBeschluss = dblBeschluss
und wann man
Call Source.FieldGetText...
gebraucht?
-
Dann steckt der Fehler an anderer Stelle. Wenn dblBeschluss eine Zahl ist, dann wird das auch im Item wieder eine Zahl - egal, was "vorne" in der Maske steht.
Bernhard
-
Funktioniert doch.
Viele lieben Dank für Deine Hilfe!