Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wiesel am 04.07.08 - 16:56:57
-
Hallo!
Wie bekomme ich in ein Feld mit Mehrfachwerten per Script eine Liste hin?
Ich habe bisher Folgendes auf die Beine gestellt:
...
Dim altReader As String
Dim picklist As Variant
Dim messagelist As String
picklist = workspace.PickListStrings( PICKLIST_NAMES, True )
altReader = doc.Reader(0)
If ( Isempty( picklist ) ) Then
Messagebox "Keine Auswahl" , , "Wählen Sie den Verteiler"
Else
Forall plist In picklist
messagelist = Chr(34) & messagelist & plist & Chr(34) & Chr(10)
End Forall
End If
doc.Reader = altReader & Chr(10) & messagelist
Call doc.Save( False, True )
Aber wenn ich mir dann das Feld über Dok-Eigenschaften anschaue, sind die Anführungszeichen zum Trennen der einzelnen Werte irgendwie immer nicht ganz richtig gesetzt.
Es soll ja sowas wie
"User 1"
"User 2"
"User 5"
rauskommen.
Wie kriege ich so eine Textliste mit den einzelnen Werte für das Mehrfachwertefeld hin?
Gruß und schonmal schönes WE (werde mich erst Montag wieder melden können),
Wiesel
-
Was Du brauchst, ist ein Array, welches Du aufbaust und anschliessend dem Item zuweist. Details siehe DesignerHelp.
Bernhard
-
Aber ist picklist nicht schon ein Array? Und wie bekomme ich das jetzt in ein Item rein? Das habe ich aus der Designer-Hilfe nicht wirklich rauslesen können :o(
Ich habe ja die Variable picklist mit Werten und möchte diese an das bestehende Feld (Mehrfachwerte) anhängen.
-
ArrayAppend
-
Ok, hab ich eingebaut. Meine auch richtig. Aber es kommt ein "Type mismatch".
Mein Script lautet so:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim workspace As New NotesUIWorkspace
Dim collection As NotesDocumentCollection
Dim view As NotesView
Dim altReader As Variant
Dim picklist As Variant
picklist = workspace.PickListStrings( PICKLIST_NAMES, True )
Set db = session.CurrentDatabase
Set view = db.GetView( "VV\nach Abteilung" )
'Selektierte Dokumente in Collection setzen
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not ( doc Is Nothing )
altReader = doc.Reader(0)
doc.Reader = Arrayappend( altReader,picklist )
Call doc.Save( False, True )
Set doc = collection.GetNextDocument(doc)
Wend
End Sub
An der Stelle mit Arrayappend kommt die Fehlermeldung. Hab ich was vergessen?
-
altReader ist kein Array sondern ein String, wenn Du "doc.Reader(0)" machst.
-
Du hast nichts vergessen, sondern die Doku nicht richtig gelesen. ArrayAppend braucht Arrays zum verknüpfen - Dein altReader ist aber ein String.
Bernhard
-
Ja.
Auch wenn du Altreader als Variant deklarierst weist du ihm über Doc.Reader(0) doch nur einen String zu. Gehe zu Notesitems und lese da weiter.
-
Oh ja, die Kleinigkeiten :o)
Hat super geklappt.
Ich danke Euch!