Arraywerte in ein Listenfeld übertragen

  • Hallo,
    mein Problem:
    um mehrere Dokumente gleichzeitig zu kategorisieren wählt man die Kategorie aus un alle Dokumente werden aktualisiert. Dabei müssen bestehende Werte beibehalten werden. Leider ist nach dem Update die Kategorie leer...


    Hier mein bisheriger Ansatz:
    Sub Click(Source As Button)
    Dim wert1 List As String
    Dim j As Integer
    Dim s As New NotesSession
    Dim item As NotesItem
    Dim adb As NotesDatabase
    Dim doc As NotesDocument
    Dim col As NotesDocumentCollection
    Set adb=s.Currentdatabase
    Set w = New NotesUIWorkspace
    wert = w.PicklistStrings(PICKLIST_CUSTOM,False,"","Datenbank","Ansicht","Titel","Select call for marked contacts",1)
    If wert(0)<>"" Then
    Set col = adb.UnprocessedDocuments
    For i = 1 To col.Count
    Set doc = col.GetNthDocument( i )
    Set item = doc.GetFirstItem( "Calls" )
    j=0
    Forall v In item.Values
    wert1(j) = v
    j=j+1
    End Forall
    wert1(j)=wert(0)
    item.Values = wert1
    Call doc.Save( False, True )
    Next
    Else
    Messagebox "You didn't select anything...", 48, "No item selected!"
    End If
    End Sub


    Ideen?

  • Hi,
    leider funktionert es nicht, bei deiner Syntax
    krieg ich: "Oparation failed!"
    Hab's umgeschrieben:
    Evaluate(| Field Calls := Calls; cwert := Calls + " | + wert(0) + |"; @SetField("Calls",cwert);|)


    ,dann passiert aber rein gar nichts...

  • Hallo!


    Ich mache das immer über Backend. Das heißt hol dir erstmal das NotesDocument Object. Und arbeite immer mit Arrays, wenn du diese Werte dann in Felder schreiben willst. So ungefähr sollte es funktioniereN:


    dim session as New NotesSession
    dim database as NotesDatabase
    dim coll as NotesDocumentCollection
    dim doc as NotesDocument
    dim tmpdoc as NotesDocument
    dim allewerte as Variant
    dim neuerwert(0) as string


    set database = Session.CurrentDatabase
    ' mit nächstem Befehl holt er sich die Ausgewählten Doks aus der Ansicht
    set coll = database.UnprocessedDocuments
    set doc = coll.GetFirstDocument
    do until doc is Notehing
    set tmpdoc = coll.GetNextDocument(doc)
    allewerte = doc.GetItemValue("Kategorien")
    neuerwert(0) = result 'Wert aus der Eingabe
    allewerte = ArrayAppend(allewerte, neuerwert)
    call doc.ReplaceItemValue("Kategorien", allewerte)
    call doc.Save
    set doc = tmpdoc
    Loop


    So in der Art sollte es funktionieren...