Domino 9 und frühere Versionen > ND6: Entwicklung
Kanonische Form aus Adressdialogfeld
(1/1)
Bille:
Hallo!
In einem Leserfeld werden die zugriffsberechtigten Personen für dieses Dokument gespeichert. Diese Personen ermittle ich über eine Dialogbox (Feld: Dialogliste mit "Adressdialog für Auswahl verwenden"). Die Mitarbeiter können dann aus dem Adressbuch die gewünschten Personen auswählen.
Jedoch werden diese dann in der Abbreviate-Form im Leserfeld gespeichert.
--- Code: ---Max Mustermann/FirmaXY/DE
--- Ende Code ---
In einem Thread (http://atnotes.de/index.php?topic=34373.0) habe ich gelesen, dass für ein Leserfeld der kanonische Name erforderlich ist.
Wie komme ich aus dem Adressdialog an die kanonische Form?
Bille
Glombi:
Die kanonische Form wird automatisch erzeugt, wenn das Leserfeld bearbeitbar oder berechnet ist (nicht berechnet beim Anlegen).
Ansonsten lässt sich diese Form auch immer erzeugen mit:
FIELD ReaderNames := @Name([Canonicalize];<Name>)
Angezeigt wird der Name aber immer nur in der Abbreviate Form - ist ein Feature. Daher sicherheitshalber immer in den Dokumenteigenschaften nachsehen, ob auch wirklich die Canonicalize Form drin steht.
Andreas
Bille:
Ich hatte bisher das Leserfeld nicht in der Maske gespeichert, sondern lasse dies mittels Button erstellen.
--- Code: ---
REM *** Auswahl der zusätzlichen Leser aus Adressbuch ***
If Not ws.DialogBox( "DialogLeser" , False , False, False, False, False, False, "Einstellung Zugriffsschutz für Dokument", doc ) Then
Exit Sub
End If
REM *** Auslesen der zusätzlichen Leser ***
Dim ergebnis As String
Dim i As Integer
For i = 0 To Ubound(doc.zusLeser) ' Feld aus DialogBox
ergebnis = doc.zusLeser(i) & "," & ergebnis
Next
REM *** Ergänzung der generellen Leser ***
ergebnis = ergebnis & profildoc.generelleLeser(0)
i = 0
Dim LeserNeu() As String
Forall elements In SY_XExplode(ergebnis,",")
Redim Preserve LeserNeu(i)
LeserNeu(i) = elements
i = i +1
End Forall
REM *** Leserfeld setzen ***
Dim LeserItem As NotesItem
Set LeserItem = New NotesItem( doc, "Leser", LeserNeu, READERS )
LeserItem.IsReaders= True
--- Ende Code ---
Nachdem ich nun direkt in der Maske das Feld "Leser" (Typ: Leser, Bearbeitbar, ohne Vorgabewert) angelegt habe, wird nach Ausführen des Button nur noch ein Leerstring im Feld "Leser" angezeigt. ???
Das Problem liegt wohl schon in der Dialogbox. Dort wird das Feld "zusLeser" gefüllt, im Debugger zeigt es mir den Inhalt schon in der Abbreviate Form an.
Kann ich die von Dir gepostete Formel bereits in der Dialogbox anwenden?
Ich weiß nicht, wo ich da ansetzen muss ...
Bille
Bille:
Ich hab jetzt in der Dialogmaske ein berechnetes Feld "zLeser" mit Formel
--- Code: ---@Name([Canonicalize];zusLeser)
--- Ende Code ---
erstellt.
Im Script-Code greife ich dann auf das Feld "zLeser" zu, in dem die Adressen in kanonischer Form enthalten sind.
Andreas, vielen Dank für die Formel!
Bille
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln