Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: mattu82 am 06.01.04 - 14:06:14
-
Hi,
hab nen Problemchen mit dem Auslesen des User, der derzeit ein Dokument bearbeitet.
Bisher lese ich den User mit
UserName = session.EffectiveUserName
aus.
Allerdings wird gewünscht, dass ich den User über getAbbreviated herausfinde, da das Format, das wiedergegeben wird vorteilhafter ist.
Allerdings weiß ich nicht, wie ich das Anstellen soll, da auch die Hilfe keine Hinweise geben konnte.
Zurzeit arbeite ich mit Lotus Script.
Kann mir jemand nen Tipp geben, wie ich den derzeitigen User mit dem getAbbreviated auslesen kann??
-
Vermutung:
du holst dir den Namen von deinem Session Objekt mit s.Username
erzeust ein NotesName-Objekt und übergibts ihm den Namen
set nn = new NotesName(s.UserName)
dann bekommst du das was du willst von dem Abbreviated-Attribut der NotesName-Klasse
sName = nn.Abbreviated
Ach übrigens: das hab ich aus der Hilfe ;D
-
um vermutungen überflüssig zu machen hier der Code
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim session As New NotesSession
Dim session1 As New NotesSession
Dim db As NotesDatabase
Dim db1 As NotesDatabase
Dim doc As NotesDocument
Dim NotesDocument As NotesUIDocument
Dim UserName As Variant
Set db = session.CurrentDatabase
UserName = session.EffectiveUserName
Set db1 = New NotesDatabase ("server", "names.nsf")
Set doc = view.GetDocumentByKey( UserName )
End Sub
wenn ich das Programm im debugger ablaufen lasse, zeigt er in den session variablen (session und session1) schon die falschen werte an, hier sollten die mit getAbbreviate geholten Werte drinstehen, dass man nachher damit weiterarbeiten kann.
mfg
mattu
-
Das geht, man kann aber auch direkt NotesSession.CommonUserName verwenden.
oder man greift das Object NotesSession.UserNameObject ab, statt ein neues NotesName-Object selber zu instanziieren.
-
heißt das, dass ich die zeile
UserName = session.EffectiveUserName
ändern muss das sie nachher so aussieht:
UserName = NotesSession.UserNameObject
oder hab ich dich da falsch verstanden?
muss ich noch irgendwas deklarieren oder reicht es einfach aus die zeile zu verändern?
-
UserNameObject musst Du einer Variablen zuweisen, die als NotesName - Objekt dimensioniert ist (oder Variant natürlich), weil das ein Objekt zurückgibt. Hingegen das geht:
UserName = NotesSession.CommonUserName
Ueber das Objekt dann lieber so:
Dim nn as NotesName
Set nn = NotesSession.UserNameObject
UserName = nn.Abreviated
-
Danke für die Antworten ich werd mir das mal zu gemüte führen und mich morgen nochmal melden.
-
cool. UserNameObject Attribut kannte ich noch gar nicht.
Abgesehen davon, dass im zweiten Post dieses Threads wohl schon ne Lösung steht , wäre mit diesem Attribut ein einzeiler möglich
UserName = NotesSession.UserNameObject.Abbreviated
-
Richtig, wobei das dann dasselbe ist wie
UserName = NotesSession.CommonUserName
Notes ist immer wieder mal gut dafür, dass man neue Bekanntschaften machen kann ..... mit Attributen oder so ... :D
-
Kennt jemand vielleicht eine Erklärung der einzelnen Namensvarianten (Common, Abbreviated und die anderen 1000) mit einem durchgängigen Beispiel?
Ich habe davon absolut wenig Ahnung und würde mir das gerne mal anschauen. Aber in der Designer Hilfe ist mir das zu trocken, weil ohne Beispiel (zumindest habe ich das nicht gefunden)
-
Richtig, wobei das dann dasselbe ist wie
UserName = NotesSession.CommonUserName
noch was.
das würde also bedeuten
NotesSession.UserNameObject.Abbreviated = NotesSession.CommonUserName
(das ist eine Gleichung keine Zuweisung)
In der NotesName-Klasse gibt es zwei Attribute:
Abbreviated und Common.
aber ich denke die Gleichung
NotesName.Abbreviated = NotesName.Common
ist falsch.
Oder nicht.
Ich bin verwirrt.
ist das CommonUserName von NotesSession etwas anderes als Common von NoteName???
???
-
Unter @Name Beispiel schonmal beispielhaft ein paar aufgeführt:
Beispiele: @Name
1. Dieses Beispiel gibt Maria Zenker/Illustration/ Dokumentation/Entwicklung/F&E/Acme/DE zurück,
@Name([Abbreviate];AUTOR)
wenn ein Benutzer ein Dokument liest, dessen Feld "AUTOR" den Namen von Maria Zenker in hierarchischer Form enthält.
2. Dieses Beispiel gibt Maria Zenker zurück.
@Name([Canonicalize];"Maria Zenker")
Da auf den Namen kein Schrägstrich folgt, handelt es sich hierbei um einen nicht hierarchischen Namen ohne zusätzliche Namensbestandteile.
3. Dieses Beispiel gibt CN=Maria Zenker/ OU=Illustration/OU=Dokumentation/OU=Entwicklung/OU=F&E/O=Acme/C=DE zurück, wenn das die aktuelle Benutzer-ID ist. Der Name wird um die hierarchischen Komponenten der aktuellen Benutzer-ID ergänzt; es findet keine Suche im Adreßbuch statt.
@Name([Canonicalize];"Maria Zenker/")
4. Dieses Beispiel gibt "Maria Zenker" in einem Dialogfeld zurück, falls das Feld "AUTOR" des Dokuments folgendes enthält: CN=Maria Zenker/OU=Illustration/O=Acme.
@Prompt([OK]; "Allgemeiner Name"; @Name([CN]; AUTOR))
5. Dieses Beispiel gibt Entwicklung zurück.
@Name([OU2];AUTOR)
6. Dieses Beispiel gibt US\Acme\F&E\Entwicklung\Dokumentation\Illustration zurück. Die gewöhnlichen Schrägstriche wurden durch umgekehrte Schrägstriche ersetzt. Damit können die Namensbestandteile in einer Ansicht als Unterkategorien verwendet werden. Der allgemeine Namensbestandteil wird nicht zurückgegeben
@Name([ToKeyword];AUTOR)
7. Dieses Beispiel gibt DStreitfeld zurück, falls das Feld "User_Name" die Internet-Adresse im RFC822-Format enthält: "Streitfeld, Dorothee (Miami)" <DStreitfeld@gazette.com>.
@Name([LP];User_Name)
8. Dieses Beispiel gibt "Streitfeld, Dorothee (Miami)" zurück, falls das Feld "User_Name" die Internet-Adresse im RFC822-Format enthält: "Streitfeld, Dorothee (Miami)" <DStreitfeld@gazette.com> .
@Name([Phrase];User_Name)
9. Dieses Beispiel gibt DStreitfeld@gazette.com zurück, falls das Feld "User_Name" die Internet-Adresse im RFC822-Format enthält: "Streitfeld, Dorothee (Miami)" <DStreitfeld@gazette.com> .
@Name([Address821];User_Name)
10. Dieses Beispiel gibt Cam/Lotus zurück, falls das Feld "User_Name" John Doe/Cam/Lotus enthält.
@Name([HierarchyOnly];User_Name)
Auch wenn hier nicht immer (?) Parallelen zum Script gezogen werden können?
Freue mich auch auf weitere Beispiele
TMC
-
Ahh Danke. :D
Also Abbreviated ergibt sowas wie
Maria Zenker/Illustration/ Dokumentation/Entwicklung/F&E/Acme/DE
Das Bsp zu Session.CommonUserName sagt
For example, if user Stew Malone/Editorial/Acme clicks the button, the CommonUserName property returns "Stew Malone"
also diese beiden Beispiele zeigen mir, dass die Aussage
Richtig, wobei das [NotesSession.UserNameObject.Abbreviated] dann dasselbe ist wie
UserName = NotesSession.CommonUserName
nicht richtig sein dürfte.
Oder?
PS: das soll keine Klugscheißerei sein. Ich bin nur interessiert und kenne mich mit diesem Namenszeug nicht so gut aus.
-
Sorry Leute, jetzt war ich aber falsch eingespurt
Abbreviated und CommonUserName ist nicht dasselbe. Der Abbreviated ist vollständig, in der uns am häufigsten auftretenden Form mit den // drin und ohne doe O= OU= C= usw.
Bin grad am schauen, wo eine gute Uebersicht über die Namensgeschichte zu finden ist.
-
Potsmoker, das hat mich auch gewundert (also die Aussage von Jens).
Weil ja imho der [CN] der common name ist und [Abbreviate] eben wat viiiiel längeres .
Wäre aber interessant zu wissen, ob sich da Formel und Script unterscheiden....
TMC
*Edit* ups zu langsam, Jens hat vor mir gepostet ohne dass ich sein Posting gelesen hab ::)
-
Das war aber schon ein Foto-Finish ..... ;)
-
msgbox "Wo bleibt eigentlich Deine Augustiner-Spende Jens, nachdem Du vorhin die 2222 als Beitragszahl hattest"
msgbox "In Bayern heißt das 'Schnappszahl' und derjenige muss eine Runde Y Y Y springen lassen :-)"
print "Off Topic sauber im Script versteckt damit hier nix rauscht :-)"
-
msgbox " Y Y Y für die anwesenden Gäste "
msgbox " Y Y Y Y Y Y für die anwesenden Mitglieder "
msgbox " .... und PROST .... mit einem Schuss Schnaps für die Schnapszahl "
msgbox _
" 3 Gäste, 6 Mitglieder" + _
" Semeaphoros, killinspree, TMC, skywook, AnaisNin, Thomator "
-
Dim szAugustiner As String
szAugustiner= |
Herzlichen Glückwunsch Jens zum 2222er
Prost ;D|
msgbox (szAugustiner)
-
Class objFeiern
Private strDanke As String
Sub New
strDanke = |
Ein ganz herzliches Dankeschön
;D |
End Sub
Sub print
Msgbox strDanke
End Sub
End Class
Dim feiern As objFeiern
Set feiern = New objFeiern
Call feiern.print
-
print "wird ja immer komplexer hier :-)"
print "wollte gerade noch die RTLIB von Normunds einbinden um hier noch ein paar lustige Tables hinzuwerfen, aber das macht Mr. JaBBSE leider nicht ganz mit"
If Not msgbox ("Willst Du noch ein Y ?",1 + 48) = 1 Then
msgbox "Loser!"
Else
msgbox " TMC gibt noch einen aus ----> Y " & Chr(10) & Chr(10) & "Prost"
End If
-
print "rtlib und tables, das wäre stark, falsche Umgebung ...."
msgbox "Gerne - Danke - Prost ;D "
-
Zurück zum Thema:
Hier ist ein Versuch einer Zusammenstellung:
Notes- Namensystem (http://www.atnotes.de/index.php?board=11;action=display;threadid=13149)
-
auch wenn die diskussion hier von meiner frage nen bisschen abgekommen ist, hab ich doch dank eurer hilfe nen weg gefunden das problem zu lösen :D
Vielen Dank für die Unterstützung.
P.S.: Kennt irgendwer von euch ne seite im netz, in der einzelne problemstellungen verständlich erklärt werden?? Ich hab nämlich schon wieder nen neues Problem, möchte aber nicht alles hier im Forum fragen (das würd wahrscheinlich nen bisschen viel) aber die Notes Hilfe kann mir kein stück weiterhelfen.
-
http://www.atnotes.de wäre eine gute Seite ;D
-
Kann Ulrich nur unterstützen. Mittlerweile gibt es auch schon Einführngen zu verschiedenen Themen. Da können sicher mal die Tipps und Tricks in ND6 und R5 ganz global erwähnt werden, besonders erwähnen möchte ich neben dem weiter oben schon erwähnten und neuen "Namensthread" folgendes zu erwähnen:
Parallelinstallation von Clients (http://www.atnotes.de/index.php?board=5;action=display;threadid=12423)
Errorhandling (http://www.atnotes.de/index.php?board=3;action=display;threadid=11980;start=20)
Schleifen in LotusScript (http://www.atnotes.de/index.php?board=11;action=display;threadid=11314)
Wörterbuch (http://www.atnotes.de/index.php?board=12;action=display;threadid=12535)
Java Einführung (http://www.atnotes.de/index.php?board=24)
Uebersicht Zugriffssteuerung (http://www.atnotes.de/index.php?board=9;action=display;threadid=12850)
Die Liste ist bestimmt unvollständig und weitere Tutorials und Uebersichten wird es sicher noch geben.
-
ok wenn ihr meint, dass ich da fündig werde, dann werd ich mich mal auf die suche begeben, die hoffentlich von bahnbrechenden ergebnissen belohnt werden wird ;D