Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: tuelb am 25.02.03 - 13:24:16
-
Ich habe mal wieder ein (Lotus Notes Verständnis-) Problem.
Ich habe 2 Ansichten, die aus 2 Masken erstellt werden (User,Hardware). In der Maske Hardware gibt es ein Feld "Username" und in der Maske User auch. Wie stelle ich dazwischen jetzt eine Verbindung (Join->SQL) her. Ich möchte, das in der Maske Hardware, die zum jeweiligen Benutzer dazugehörigen Daten (Name,Vorname usw. aus User) angezeigt werden.
Danke.
Sebastian
-
- du hast ja eine Ansicht user - in der ersten Spalte sortiert ist der Name drin.. richtig ?
- in der Maske hardware hast du ein Feld user das als Typ dialogliste besteht mit der formel @DBcolumn() auf die user Ansicht - erste spalte
cu
-
erst mal danke für den Tip aber ich brauche das mal in Lotus Anfängersprache. Ich habe jetzt das Feld in der Maske Hardware auf Dialogliste geändert. Aber wo schreibe ich das @dbcolumn()hin?? Meine Ansicht User hat die Spaltenbezeichnungen ->Benutzernamen,Nachnamen,Vornamen,Kst. und ich würde gerne diese Felder(ausser Benutzername, den habe ich da ja schon) dann in auch in der Maske Hardware haben.
Muss dazu sagen, dass die beiden Masken mit dem LEI befüllt werden.
Danke
-
- wenn du mehrer Felder brauchst geht das viel besser mit Picklist
mach dir ein button neben das user Feld - der folgende aktion beinhaltet:
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As Notesdocument, actdoc As Notesdocument
Dim col As NotesDocumentCollection
Set db = ws.CurrentDatabase.Database
dbname = ws.CurrentDatabase.Database.filepath
userview = "userview"
Set col = ws.PickListCollection(1, False, "",dbname,userview,"Select", "Please select a document.")
If col.count = 0 Then Exit Sub
Set doc = col.GetfirstDocument
Set actdoc = ws.Currentdocument.document
Call actdoc.replaceitemvalue("Subject", doc.Subject(0) )
' und der Rest der Felder ....
actdoc.save True, False
cu
-
werde es gleich mal ausprobieren.... geht es vielleicht, dass man mit einem Agenten alle Dokumente "überarbeitet". D.h. ich erstelle in der Maske Hardware noch die benötigten Felder und sage ihm dann(keine Ahnung wie??), dass er schauen soll, was in dem Feld Benutzer/Hardware steht, dann in die Ansicht User geht dort den Benutzer sucht und die dazugehörigen Werte in die Hardwaremaske einträgt. Dann hätte ich vielleicht auch mein LEI Update Performance Problem umgangen. Kannst Du mir da helfen?
Habe leider nur eine Zwangsliebe zur Lotus Notes und bin noch nicht richtig fit
-
- wenn du mehrer Felder brauchst geht das viel besser mit Picklist
mach dir ein button neben das user Feld - der folgende aktion beinhaltet:
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As Notesdocument, actdoc As Notesdocument
Dim col As NotesDocumentCollection
Set db = ws.CurrentDatabase.Database
dbname = ws.CurrentDatabase.Database.filepath
userview = "userview"
Set col = ws.PickListCollection(1, False, "",dbname,userview,"Select", "Please select a document.")
If col.count = 0 Then Exit Sub
Set doc = col.GetfirstDocument
Set actdoc = ws.Currentdocument.document
Call actdoc.replaceitemvalue("Subject", doc.Subject(0) )
' und der Rest der Felder ....
actdoc.save True, False
Das macht er nicht. Er sagt "Datei nicht vorhanden..." Was soll denn da passieren. Habe keine Ahnung von Lotus Skript.
S
-
- klar kann ein Agent alle Dokumente updaten - du gehst alle doks der Hardware Ansicht durch und sucht bei jedem dok den user aus der Ansicht User - dann wird upgedatet - so einfach ist das.
poste die db mit den 2 Masken+Views - dann werde ich das checken
cu
-
Hier eine schnell erstellte DB mit ein paar Beispieldaten.
Danke schon mal.
-
was ich noch nicht ganz verstehhe - wenn der LEI das ganze Zeug reinschreibt warum willst du dann noch manuell die Namen suchen+reinschreiben ?
cu
-
Ich muss diesen Updatevorgang zeitlich verkürzen, weil der LEI noch andere Aufgabe in der Nacht zu erledigen hat und da kann es nicht sein, dass er für ein Update auf den bestehenden Benutzernamen 1 Stunde braucht(siehe mein posting PRoblem forum). Die Daten für die Hardware und User kommen aus unterschiedlichen Datenbanken(-systemen).
Ich habe jetzt aber schon eine relativ annehmbare Lösung per Agent gefunden.
FIELD Nachname_hw := @DbLookup("";"";"User";sysusername;2);1;
Nochmals Danke für deine Hilfe.
Sebastian