Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wiesel am 04.07.08 - 16:56:57

Titel: Liste erstellen per Script
Beitrag 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
Titel: Re: Liste erstellen per Script
Beitrag von: koehlerbv am 04.07.08 - 17:06:33
Was Du brauchst, ist ein Array, welches Du aufbaust und anschliessend dem Item zuweist. Details siehe DesignerHelp.

Bernhard
Titel: Re: Liste erstellen per Script
Beitrag von: Wiesel am 07.07.08 - 09:52:58
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.
Titel: Re: Liste erstellen per Script
Beitrag von: m3 am 07.07.08 - 09:57:32
ArrayAppend
Titel: Re: Liste erstellen per Script
Beitrag von: Wiesel am 07.07.08 - 10:21:40
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?

Titel: Re: Liste erstellen per Script
Beitrag von: m3 am 07.07.08 - 10:26:47
altReader ist kein Array sondern ein String, wenn Du "doc.Reader(0)" machst.
Titel: Re: Liste erstellen per Script
Beitrag von: koehlerbv am 07.07.08 - 10:27:32
Du hast nichts vergessen, sondern die Doku nicht richtig gelesen. ArrayAppend braucht Arrays zum verknüpfen - Dein altReader ist aber ein String.

Bernhard
Titel: Re: Liste erstellen per Script
Beitrag von: Thomas Schulte am 07.07.08 - 10:30:36
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.
Titel: Re: Liste erstellen per Script
Beitrag von: Wiesel am 07.07.08 - 11:14:17
Oh ja, die Kleinigkeiten :o)

Hat super geklappt.

Ich danke Euch!