Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Alois am 14.05.03 - 08:04:04

Titel: Role in Leserfel hinzufügen
Beitrag von: Alois am 14.05.03 - 08:04:04
Arbeite gerade an ein Workflow Datenbank und vergebe Leser und Autoren Rechten über Leserfeld bzw Autorenfeld nur mit Rollen.

In der Maske sind 2 "bearbeitbare" Felder von Typ Leser bzw. Autor mit "Mehrfachwert zulassen" "Werte trennen bei Eingabe von neue Zeile". Diese Felder werden initialisiert mit ein Vorgabewert "[DefaultLeser]" und "[DefaultAutor]".

Beim speichern eine Dokument (mit der Maske) möchte ich in Leserfeld "[Leser1]" und "[Leser2]" und in Autorenfeld "[Autor1]" und "[Autor2]".

Ich habe mittleweil alles probiert.
...Anfanglich mit FieldGetText und FieldSetText, später mit FieldAppendText... Immer bekomme ich "[Rolle1] [Rolle2]" ind mein Leserfeld und keiner kann diese Dokument mehr lesen.

...dann bin ich auf die Idee gekommen dass es vielleicht ein Item sein könnte... Ich habe mein Skript geändert so dass ich die Werte der Felder erst anschauen kann:

Forall i in doc.items
   Messagebox(i.Name)
End Forall

Ich bekomme jetzt die Meldung:
"Instance Member Item does not exist!"

Jetz weiß ich gar nichts mehr: Kein Textfeld!!! Kein Item!!!
oder mache ich ein Denkfehler.

Bitte wieder um Hilfe
Titel: Re:Role in Leserfel hinzufügen
Beitrag von: Jörg P. am 14.05.03 - 08:40:27
Hi,

ich bin nicht der Script-Experte, daher ein Tip, von dem ich nicht weiss, ob er dir wirklich hilft:
Evt. musst du mit einem NotesName Objekt arbeiten. Schau mal in die Designer-Hilfe, da sind auch ein paar Beispiele.
Titel: Re:Role in Leserfel hinzufügen
Beitrag von: Axel am 14.05.03 - 08:51:53
Hi,

hier ein Auszug auf einem QuerySave-Event einer Maske:

...
'Setzen der Leserfeldes für Zugriffskontrolle
   tmp = doc.Regionalgruppe(0)
   If Left$(tmp, 2) = "FA" Then
      If tmp = "FA - Wasserwirtschaft" Then doc.xRead = "[FAWasser]"
      If tmp = "FA - Abfallwirtschaft" Then doc.xRead = "[FAAbfall]"
   Else
      doc.xRead = "[" & Left$(tmp, Instr(tmp, " - ") - 1) & "]"
   End If  'If Left$(tmp, 2) = "FA" Then
...

Wenn du Mehrfachwerte hast, musst du die Werte in ein Array einfügen un dann dem Feld zuweisen.

So ungefähr:

...
Dim leser(1) As String

leser(0) = "[Leser1]"
leser(1) = "[Leser2]"

doc.xRead  = leser

...

Axel
Titel: Re:Role in Leserfel hinzufügen
Beitrag von: Rob Green am 14.05.03 - 08:58:08
mit den Methoden der NotesUIDocument Klasse kannst Du nebst der Backend Methode von Axel ebenso ein Multivalue Field beschreiben. Der Trenner ist da übrigens ein ":"..

also setfield(...."ABC":"123":"456":"345":"RTE"...)
Titel: Re:Role in Leserfel hinzufügen
Beitrag von: Alois am 14.05.03 - 09:48:23
Hi Harvey, Axel, Rob!

ich kann mich nur bei euch bedanken!

Ich habe gestern den ganzen Tag damit verbracht mein Code zu ändern und nichts hat geklappt.

Super seid ihr!! Danke