Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 25.09.04 - 22:00:38

Titel: Autoren eines Doks
Beitrag von: TMC am 25.09.04 - 22:00:38
Ich brauche in einer Variablen die Namen aller Autoren eines NotesDocument.

Gibts da was? In der Designerhelp hab ich nix gefunden.

Ein kurzer Hint (ja, .... / nö, gibt's ned) reicht mir schon  ;)

Wenn "nö", dann bastle ich mir eine Function, die alle Items checkt auf die IsAuthors property und lese entsprechend den Content aus.
Titel: Re: Autoren eines Doks
Beitrag von: fritandr am 25.09.04 - 22:06:49
Hallo Matthias,

suchst Du sowas?

1.   This script prints the name of each author of a document. For example, if Ivan Ash created the document and Kate Gaston modified it, the script displays "Ivan Ash" and "Kate Gaston."

Dim doc As NotesDocument
'...set value of doc...
Forall a In doc.Authors
  Messagebox( a )
End Forall´

Gruß
Andreas
Titel: Re: Autoren eines Doks
Beitrag von: TMC am 25.09.04 - 22:10:03
Hi Andreas,

nicht ganz, designer Help sagt:
Zitat
Authors property
Read-only. The names of the people who have saved a document.

Ich brauche aber eher sowas:
Code
Forall itm In doc.Items
If itm.IsAuthors Then
  vAuthorArray = Arrayappend(vAuthorArray, itm.Values) 
End If

Hab mir gedacht, es gibt evtl eine Function oder andere Möglichkeit....

Trotzdem Danke !

Matthias

*edit*
ich sehe gerade, dass ich mich nicht klar ausgedrückt habe, sorry Andreas:
Prinzipiell brauche ich die Members aller Autorenfelder. Sowas wie @Authors, aber @Authors liefert ja (je nach Kontext) nur den Inhalt des 1. Autorengfeldes.
Titel: Re: Autoren eines Doks
Beitrag von: fritandr am 25.09.04 - 22:18:04
Schade, das wäre aber auch zu einfach gewesen.

Dann muss ich wohl noch weitersuchen.
Titel: Re: Autoren eines Doks
Beitrag von: TMC am 25.09.04 - 22:23:18
Schade, das wäre aber auch zu einfach gewesen.
Dann muss ich wohl noch weitersuchen.

Kein Problem  ;) Du brauchst aber nicht extra danach suchen. Ich nehme einfach die item.IsAuthors property, damit bekomme ich dann die Inhalte.
Hab nur gemeint, ob es evtl. noch eine andere Property oder so dafür gibt um einfacher da ran zu kommen....
Titel: Re: Autoren eines Doks
Beitrag von: koehlerbv am 25.09.04 - 22:31:17
Matthias, sowas gibt es nicht. Selbst @Authors gibt nur den Inhalt des ERSTEN Author-Feldes aus, so lohnt also auch kein Evaluate.

Dein vorgeschlagenener Weg ist schon der absolut richtige  ;)

HTH,
Bernhard
Titel: Re: Autoren eines Doks
Beitrag von: TMC am 25.09.04 - 22:39:06
OK, danke für die Bestätigung, Bernhard.

Habe da gerade was geschrieben:

Code
Public Function GetAllAuthors(doc As NotesDocument) As Variant
	
	Dim vAuthorArray As Variant
	
	Redim vAuthorArray(0)
	Forall itm In doc.Items
		If itm.IsAuthors Then
			vAuthorArray = Arrayappend(vAuthorArray, itm.Values) 
		End If
	End Forall
	
	GetAllAuthors = Fulltrim(vAuthorArray)
	
End Function
;)

Matthias

P.S. Warum hat uns eigentlich Iris @Authors überhaupt gegeben? Gibt es da einen Grund?
In der Hide-when - Best Practices wollte ich auch schon @Authors erwähnen, aber dann ist mir zum Glück die Einschränkung eingefallen und hab es wieder gelöscht.
Ich möchte nicht wissen wieviele Programmierer da schon in die Falle getappt sind.

PPS:
Schade dass wir noch nicht den Erledigt-Buhtong haben  :)
Titel: Re: Autoren eines Doks
Beitrag von: TMC am 04.10.04 - 23:19:40
Weitere Frage:

Bsp.: Man hat einen "Dokument bearbeiten" - Button in einer Maske.
Der Button soll aber nur gezeigt werden, wenn ein User Autor dieses Dokumentes ist (oder Editor oder höher lt. ACL ist).

Gibt es da überhaupt eine Möglichkeit in Formelsprache, ohne im Dokument selbst ein Feld zu platzieren, welches einem diese Abfrage abnimmt?
Titel: Re: Autoren eines Doks
Beitrag von: koehlerbv am 04.10.04 - 23:40:42
Ganz  verstehe ich die Frage jetzt nicht, Matthias. Du hast doch (unbedingt) Autorenfelder in Deinem Dokument. Dann kannst Du die doch auch ohne weiteres abfragen ?

Für HideWhens:
!(UserNamesLst *= Authorfield1 : Authorfield2 : Authorfield3)

Wenn es denn so viele Felder gibt ...

Wenn - was ich für sträflich halte - der berechtigte User nicht via Autorenfelder geführt wird, aber Editor oder höher ist, kann man ja immer noch @UserAccess einbeziehen  ;)  M.E. macht das aber die Zugriffsverwaltung (insbesondere hier mit HideWhens) nur unnötig kompliziert (anstatt diese sauber durchzuziehen).

Half das ? Ober habe ich Deine Frage "mistverstanden" ?

Servus (und herzliche Grüsse wie immer von "Ober..." nach "Nieder..."),
Bernhard
Titel: Re: Autoren eines Doks
Beitrag von: TMC am 04.10.04 - 23:51:56
Volltreffer, Bernhard. @UserAccess war prinzipiell genau das was ich suchte. Danke.

Erst vor ca. 4 Wochen hab ich mir mal wieder die Mühe gemacht, ALLE @Formel-Befehle im Designer durchzugehen, um einige wieder ins Gedächtnis zu bringen die man immer mal wieder vergisst weil sehr selten braucht (und die nach Murphy natürlich die Volltextsuche nicht ausspuckt wenn man was bestimmtes sucht).
Aber @UserAccess hatte ich da wohl vollkommen überlesen...

Matthias (der hinüberwinkt zu den oberbayrischen Bergen  :) )
Titel: Re: Autoren eines Doks
Beitrag von: koehlerbv am 04.10.04 - 23:58:23
Und wenn Du jetzt denkst, dass das nur Dir so geht ...  ;)
Da ich mit Autorenfeldern anders umgehe (das ist aber sicher kontextabhängig), habe ich das auch seit langem nicht mehr gebraucht und musste vorhin auch erstmal wieder "blättern"  ;)

Ich winke (nicht nur) daher fröhlich von den Bergen zurück ins Donau-Tal !

Bernhard
Titel: Re: Autoren eines Doks
Beitrag von: TMC am 05.10.04 - 00:13:01
Ich hab das gleich mal in Bern in die Notizen gesteckt für den HideWhen-BP-Artikel, ist nämlich ein schönes weiteres Beispiel  ;)

Grüße nach "Ober..." von "Nieder..."

Matthias