Domino 9 und frühere Versionen > Entwicklung

Name in die Gruppe hinzufügen

<< < (5/7) > >>

Axel:
Hi,

die Sache ist nicht ganz so trivial.

Ich denke mal der Vorschlag von Bernhard ist gar nicht schlecht. Was andere fällt mir auf die Schnelle auch nicht ein. Und so bekommst du es auch auf relative einfache Weise in den Griff, wenn einer in einem "Arbeitsgang" ein Markierung in der Liste entfernt und bei einem anderen Gruppeneintrag die Markierung setzt. Du musst dir nur vorher die Liste "merken".

Axel



Selin:
so, ich versuche nun das Ganze Schritt für Schritt zu machen.
Habe zwei Listfelder.
Liste1  = @Right(@DbColumn("":"NoCache"; ""; "Gruppe"; 1);"_")
Liste2 brechnet; Inhalt Liste1 und Auswahlformel auch @Right(@DbColumn("":"NoCache"; ""; "Gruppe"; 1);"_")

Habe zwei Buttons.
Import= fügt den aktuellen Namen in die Gruppen ein, die ich in Liste1 markiert habe
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.Liste1)
      Set docGroup = view.GetDocumentByKey("#ABC_" & doc.Liste1(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 
   Msgbox("Die Gruppenliste wurde aktualisert")
   
End Sub

Remove
Habe einafch das Imporieren Script genommen und statt das Einfügen, löschen reingeschrieben.

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.Liste2)
      Set docGroup = view.GetDocumentByKey("#ABC" & doc.Liste2(idx), True)
      
      subj = docGroup.GetItemValue( "Members" )
      Set item = docGroup.GetFirstItem( "Members" )
      If (subj(0) = doc.Name_Gruppe(0)) Then         
         Call item.Remove
         Call docGroup.Save(True, False)
      Else
         Msgbox("Name vorhanden")
      End If         
   Next 
   Msgbox("Die Gruppenliste wurde aktualisert")
   
End Sub

Remove löscht die Liste2 bzw den aktuellen Namen aus den Gruppen, die markiert sind.
Aber die Häckchen sind in der Liste immer noch da.
Die muss ich dann manuell rausnehmen und das Dokument Speichern.

Will ich dann wieder einen Namen in die Gruppe einfügen, bekomme ich die Meldung
"Objekt Variable not set"
Habt ihr Tipps?

Danke + Gruß
Selin

klaussal:

--- Zitat ---"Objekt Variable not set"
--- Ende Zitat ---

An welcher Stelle ? Was sagt der Debugger ?

Selin:
hier:

     ...
     For idx = 0 To Ubound(doc.Liste1)
      Set docGroup = view.GetDocumentByKey("#ABC_" & doc.Liste1(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 
   Msgbox("Die Gruppenliste wurde aktualisert")
   
End Sub



Danke

koehlerbv:
Das ist doch auch ganz logisch - Du schmeisst ja in Deinem Remove-Code auch das Item aus dem Dokument 'raus. Beim Hinzufügen versuchst Du, das Item zu instantiieren, was gar nicht mehr da ist (und prüftst das nicht mal ab).

Da ich hier mittlerweile überhaupt nicht mehr durchsehe: In welches Dokument willst Du die Gruppenmitglieder hinzufügen - In doc oder in docGroup ?

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln