Domino 9 und frühere Versionen > ND8: Entwicklung
Wert in dem Feld "Form" überschreiben
sja:
Lieber @atnotes,
es soll in einer Funktion (LotusScript) unter anderem Wert in dem Feld "Form" geändert werden. Da das ganze Script kompliziert ist, habe ich einen Test-Button erstellt mit folgendem Script. Beim Ende der Funktion soll das Dokument geschlossen werden ohne Nachfrage, ob das Dokument gespeichert soll. In allen Feldern werden zugeordnete Werte gespeichert ohne Problem, nur in dem Feld "Form" habe ich Probleme, wird immer alter Wert behalten, egal in de Backend oder Frontend ändere ich den Wert und speichere das Dokument.
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUiDocument
Set uidoc = ws.CurrentDocument
Call uidoc.Refresh
Set doc = uidoc.Document
doc.StatusAngebot = "8"
doc.abgeschlossen_1 = "ja"
doc.abgeschlossen_am = "30.09.2013"
doc.abgeschlossen_durch = "sja"
'doc.Form = "Abshcluss"
Call doc.Replaceitemvalue("Form", "Abschluss" )
Call doc.Save(True, True)
'Call uidoc.FieldSetText( "Form", "Abshcluss" )
'Call uidoc.Save()
doc.saveOption = "0"
'Call uidoc.Save()
Call uidoc.Close
End Sub
Bitte um Hilfe. Vielen Dank im Voraus
Sofia
Klafu:
Hallo Sofia,
warum machst du vor dem doc.ReplaceItemValue ein Call?
Versuch es mal so, wie es in der Hilfe steht. :)
This script changes the value of the EstimatedCost item to 122.
Dim doc As NotesDocument
Dim item As NotesItem
'...set value of doc...
Set item = doc.ReplaceItemValue( "EstimatedCost", 122 )
Call doc.Save( True, True )
Chris
marschul:
Du hast hier zwar den Button, aber gibt es mglw. noch eine weitere Aktion, die das Dokument noch einmal aus dem Frontend heraus speichert und dabei den Wert in "Form" wieder überschreibt?
Peter Klett:
Das mit dem Call geht völlig in Ordnung, kann man so schreiben, wenn man keinen Rückgabewert haben will (habe ich in Zusamenhang mit ReplaceItemValue noch nie anders gemacht, und funktioniert immer).
Ich denke, dass das Hauptproblem darin besteht, dass das Dokument geöffnet ist. Ich würde das ganze umdrehen.
1. Dokument ändern
2. Dokument refreshen
3. Dokument speichern
4. Dokument schließen
5. Form ändern
6. Dokument speichern
Dann kommt da bzgl. Form nichts aus dem UI dazwischen.
Etwa so:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUiDocument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
doc.StatusAngebot = "8"
doc.abgeschlossen_1 = "ja"
doc.abgeschlossen_am = "30.09.2013"
doc.abgeschlossen_durch = "sja"
Call uidoc.Refresh
Call uidoc.Save()
doc.SaveOptions = "0"
Call uidoc.Close
Call doc.RemoveItem ("SaveOptions")
doc.Form = "Abschluss"
Call doc.Save(True, True)
End Sub
Ich hoffe, das ist etwa das, was Du erwartest ...
dnotes:
Das eigentliche Hauptproblem ist, dass man das Feld SaveOptions hinten ohne "s" schreibt.
Dann braucht man auch kein replaceitem oder irgend etwas anderes... der Code funktioniert dann einwandfrei.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln