Domino 9 und frühere Versionen > Entwicklung

Name in die Gruppe hinzufügen

<< < (4/7) > >>

Selin:
Vielen Dank
So hat es funktioniert.
Jetzt muss ich noch ne Abfrage einbauen, die prüft, ob es den Namen schon in der Gruppe gibt.....




Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim docGroup As NotesDocument
   Dim item As NotesItem
   Dim books As Variant
   Dim done As Integer
   Dim idx As Integer
   
   'Zugriff auf das aktuell geöffnete Dokument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   Set db = session.CurrentDatabase
   Set view = db.GetView("(Gruppe)")
For idx = 0 To Ubound(doc.Mailing)
      Set docGroup = view.GetDocumentByKey("ABC_" & doc.Mailing(idx), True)
      
      Set item = docGroup.GetFirstItem( "Members" )
      Call item.AppendToTextList( doc.Name_Gruppe)
      Call docGroup.Save(True, False)
   Next   
End Sub

Selin:
Hallo,

wie mache ich denn den umgekehrten Weg?
Was, wenn ich in dem Kontaktdokument aus der Liste eine Gruppe wieder rausmarkiere?
Dann muss der Name ja auch aus der Gruppe rausgenommen werden??
Könnt ihr mir ein Tipp geben?

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim docGroup As NotesDocument
   Dim item As NotesItem
   Dim books As Variant
   Dim done As Integer
   Dim idx As Integer
Dim subj As Variant
   
   'Zugriff auf das aktuell geöffnete Dokument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   Set db = session.CurrentDatabase
   Set view = db.GetView("(Gruppe)")
   
'Bearbeiten aller markierten Einträge im Listenfeld
   For idx = 0 To Ubound(doc.Mailing)
      Set docGroup = view.GetDocumentByKey("#ABC_" & doc.Mailing(idx), True)
      
      subj = docGroup.GetItemValue( "Members" )
      Set item = docGroup.GetFirstItem( "Members" )
      If (subj(0) <> doc.Name_Gruppe(0)) Then         
         Call item.AppendToTextList( doc.Name_Gruppe)
         Call docGroup.Save(True, False)
      Else
         Msgbox("Name vorhanden")
      End If         
   Next 
   
   
End Sub

koehlerbv:

--- Zitat von: Selin am 11.03.05 - 14:42:10 ---'Bearbeiten aller markierten Einträge im Listenfeld
   For idx = 0 To Ubound(doc.Mailing)
      Set docGroup = view.GetDocumentByKey("#ABC_" & doc.Mailing(idx), True)
      
      subj = docGroup.GetItemValue( "Members" )
      Set item = docGroup.GetFirstItem( "Members" )
      If (subj(0) <> doc.Name_Gruppe(0)) Then         
         Call item.AppendToTextList( doc.Name_Gruppe)
         Call docGroup.Save(True, False)
      Else
         Msgbox("Name vorhanden")
      End If         
   Next 

--- Ende Zitat ---

Du stellst eine neue Frage, hast aber offensichtlich die Funktionalität Deines bisherigen Codes noch gar nicht getestet.
Du holst Dir die Members aus dem Gruppendokument - und vergleichst dann den ersten Eintrag mit dem ersten Eintrag des Feldes "Name_Gruppe" (by the way: Ein extrem unglücklicher Name für dieses Item). Da dort die Gruppenmitglieder immer angehängt werden, funktioniert das schon bei der zweiten Gruppe nicht mehr.

Dann kommt der Witz an sich: Du speicherst das Gruppen-Dokument, das Du bis jetzt nur ausgelesen hast. Wann speicherst Du das Dokument, in Deine auf fragliche Art und Weise gesammelten Informationen landen ?

Wie soll man hier helfen ?

Bernhard

Selin:
Ich weiß jetzt nicht genau, was Du meinst.
Es funktioniert.
Ich kann mehrere Gruppen in der Liste markieren. Nach dem Klick auf die Schaltfläche wird der Name in die Gruppe, Feld Members reinegschrieben

koehlerbv:
Sorry, Du hast Recht. Aber bei der vorhandene Beschreibung und der mangelnden Kommentierung des Codes incl. irreführender Objektnamen kommt man sehr schnell durcheinander.

Warum liest Du bei jeder Änderung von doc.Mailing nicht die Liste komplett neu ein und verwirfst dabei die alte ? Einen eleganten Listenvergleich und ggf. erforderliche Removes traue ich Dir einfach nicht zu. Sorry. Das oben vorgeschlagene wäre doch viel einfacher und löst auch Dein ungeklärtes Problem, doppelte Einträge zu vermeiden.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln