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