Domino 9 und frühere Versionen > Entwicklung
Name in die Gruppe hinzufügen
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