Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: seerow am 04.03.04 - 14:41:49

Titel: Call doc.FieldAppendText in script einbinden
Beitrag von: seerow am 04.03.04 - 14:41:49
Hallo,

kurze Frage, ich habe vor einiger Zeit mal in diesen Forum ein tolles script gefunden,
welches ein Feld über die Ansicht mit einen Wert aus einer Picklist füllte.
Leider wird der Wert bei einen erneuten update überschrieben. Könnte man das mit der "Call doc.FieldAppendText"
Formel verhindern?

Code
Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim picklist As Variant
   
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   
   picklist = workspace.Pickliststrings(3, False,db.Server,db.FilePath,"sw_update", "Titel", "Eingabeaufforderung", 1)
   
   Set doc = collection.GetFirstDocument
   While Not (doc Is Nothing)
      doc.sw_update_history = picklist
      Call doc.Save(True,False)
      Set doc = collection.GetNextDocument(doc)
   Wend
End Sub
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: Glombi am 04.03.04 - 14:46:16
Das geht nicht, da es eine Metode für ein NotesUIDocument ist.
Du kannst aber aus dem Feld eine Mehrfachwert machen und dann mit

Dim item as NotesItem
... ... ...
Set item = doc.GetFirstItem( "sw_update_history" )
Call item.AppendToTextList( picklist )

arbeiten.

Andreas
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: seerow am 04.03.04 - 15:34:02
prima, hat gefunkst...

Danke
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: seerow am 04.03.04 - 16:27:07
Also ich glaube ich spinn...... >:(

Jetzt habe ich den code von meiner Entwicklungs DB in die produktions DB übernommen, und jetzt bringt es die Fehlermeldung

"Object Variable not exist"
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: seerow am 04.03.04 - 16:29:12
upps code vergessen ...

Code
Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim picklist As Variant
   
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   
   picklist = workspace.Pickliststrings(3, False,db.Server,db.FilePath,"sw_update", "Titel", "Eingabeaufforderung", 1)
   
   Set doc = collection.GetFirstDocument
   While Not (doc Is Nothing)
      
      
      Set item = doc.GetFirstItem( "update" )
      Call item.AppendToTextList( picklist )
      
      Call doc.Save(True,False)
      Set doc = collection.GetNextDocument(doc)
   Wend
End Sub
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: Glombi am 04.03.04 - 16:33:12
Dim item as NotesItem

fehlt ;D
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: Semeaphoros am 04.03.04 - 16:33:34
Schuss in den Nebel, Du schreibst nicht, in welcher Zeile der Fehler auftritt (der wahrscheinlich Object Variable Not Set heisst).

Vermutlich gibt es nicht in jedem Doc das Item "update" und dann bleibt die Variable "item" tatsächlich leer
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: Glombi am 04.03.04 - 16:37:59
Ja er hat es ja nicht dimensioniert, daher der Fehler. Es gehörte zum neuen Programmcode, den ich gepostet hatte. Daher stach es gleich ins Auge (Aua).

Andreas
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: seerow am 05.03.04 - 10:03:02
Hallo,

naja ich habe noch einmal etwas getestet, er bringt die FM weil das Feld beim ersten feldupdate leer ist.
Kann man das irgendwie umgehen.
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: Glombi am 05.03.04 - 10:05:07
Das geht so:

if not doc.HasItem("update") then
 set item = doc.ReplaceItemValue("update",picklist)
else
 Set item = doc.GetFirstItem( "update" )
 Call item.AppendToTextList( picklist )
end if      

Andreas
Titel: Re:Call doc.FieldAppendText in script einbinden
Beitrag von: seerow am 05.03.04 - 13:00:25
danke, funktioniert Prima