Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Marshuhn am 02.06.04 - 12:31:19

Titel: Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: Marshuhn am 02.06.04 - 12:31:19
Hallo Notesgurus,

ich habe erneut eine Frage:

Ich möchte aus unserem Namens- und Adressbuch für den jeweils angemeldeten Anwender ein Feld (Vertreter) auslesen lassen. Dieses soll alles über ein gemeinsames Feld erfolgen. Das gemeinsame Feld lautet HugoErna und soll auch selber gefüllt werden und dann in der Maske gefüllt angezeigt werden.

Ich verwende dafür folgendes Script:

Sub Initialize
   Dim workspace As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim books As Variant
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim actdoc As notesdocument   
   Dim item As notesitem
   Dim done As Variant
   Dim person As String
   Dim test As Variant
   Dim Stellvertreter As Variant
   Dim person1 As Variant
   books = session.AddressBooks
   done = False   
   Set uidoc =   workspace.currentdocument   
   Set actdoc =uidoc.document
   person1 = Evaluate(|@Name([Abbreviate];@UserName)|)
   person = person1(0)
   Forall b In books
    ' check every Domino Directory,
    ' unless we're already done
      If ( b.IsPublicAddressBook ) And ( Not done ) Then
         Call b.Open( "", "" )
      ' look up person's last name
      ' in People view of address book
         Set view = b.GetView( "($VIMPeople)" )
         Set doc = view.GetDocumentByKey( person )
      ' if person is found, display the phone number item
      ' from the Person document
         If Not ( doc Is Nothing ) Then
            done = True
            If doc.Stellvertreter(0)="" Then
               Msgbox "Feld Stellvertreter ist nicht gefüllt"
               Msgbox doc.Stellvertreter(0)
            Else
               Msgbox "Feld Stellvertreter ist gefüllt"
               Msgbox doc.Stellvertreter(0)
'               Call uidoc.fieldsettext("HugoErna","Hallo")
               Set item = actdoc.replaceitemvalue("HugoErna",doc.Stellvertreter(0))            
               Msgbox actdoc.HugoErna(0)
               uidoc.refresh
            End If
         Else
            Msgbox "nicht gefunden"
         End If
      End If
   End Forall
  ' if done is still False, the person wasn't found
   If Not done Then
      Messagebox _
      ( "Sorry, unable to locate person's name." )
   End If
End Sub


Leider wird der Wert nur sehr kurz eingeblendet. Danach verschwindet der Wert wieder. Wenn ich die auskommentierte Zeile
(Call uidoc.fieldsettext("HugoErna","Hallo")
durchführen lasse, dann bekomme ich die Fehlermeldung "Notes Fehler #0c:04).

Vielen Dank schon einmal vorab für die Hilfe.  :D

Danke
Titel: Re:Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: Glombi am 02.06.04 - 12:39:15
Statt uidoc.refresh würde ich ein
call uidoc.Reload
machen. Die Zeile
Call uidoc.fieldsettext("HugoErna","Hallo")
löschen bzw weiterhin auskommentieren, da Du das im Backend setzen solltest.

Andreas

Titel: Re:Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: koehlerbv am 02.06.04 - 12:56:35
Das sieht mir eher nach was anderem aus: Was steht denn als Formel in Deinem berechneten Feld HugoErna ? Vielleicht "" ?

Bernhard

PS:  Statt uidoc.Refresh kannst Du auch NotesUIWorkspace.ViewRefresh nehmen.
Titel: Re:Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: Marshuhn am 03.06.04 - 08:15:12
Hallo Ihr Beiden,

wieder einmal schon danke für die Unterstützung.

Das Feld, welches ich füllen lassen will ist ja das gemeinsame Feld. Die oben beschriebene Formel steht im Initialize. Sonst ist keine weitere Formel in diesem gemeinsamen Feld vorhanden. Leider haben mir Eure Voschläge noch keinen Erfolg gebracht.  :'(

Gruß + danke für hoffentlich weitere Hilfe

Marshuhn
Titel: Re:Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: Glombi am 03.06.04 - 08:34:57
In welchem "Initialize" ?
Wenn ich den Code in das Initialize eines gemeinsamen Feldes einfüge, bekomme ich beim Erstellen eines Dokument hier einen Fehler:
Set uidoc =   workspace.currentdocument  

"Object variable not set"

Also, wo genau ist der Code?

Andreas
Titel: Re:Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: Glombi am 03.06.04 - 08:39:13
Ich habe den Code in das Postopen Event der Maske eingefügt und es funktioniert.
Anstelle eines gemeinsamen Feldes solltest Du also eine Teilmaske machen und den Code dort in das Postopen einfügen.

Andreas
Titel: Re:Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: wuschel am 03.06.04 - 10:54:24
Hallo zusammen,
ich klink mich hier mal ein, denn ich arbeite gemeinsam mit Marshuhn an diesem Problem, will aber hier noch mal unsere grundsätzliche Aufgabe schildern:
Wir wollen ein gemeinsames Feld definieren, das per Lotusscript mit einem Vorgabewert gefüllt wird, der im eigenen Dokument des zentralen Adressbuches steht.
Wir haben mit der geschilderten Prozedur versucht, zum die Inhaltsbefüllung zum Initialize-Zeitpunkt durchzuführen, stoßen hier aber auf Schwierigkeiten.
Wenn also jemand einen Tip hat, wie grundsätzlich eine Feldbefüllung (a la Vorgabewert-Funktionalität) mit LS realisiert wird, würden wir uns sehr freuen
Gruß
Matthias
Titel: Re:Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: Glombi am 03.06.04 - 11:07:54
Das einzige was in einem Feld mit Script geht, ist das Entering Event (und natürlich auch Exiting). Dann muss aber auch der Cursor darin platziert werden, sonst wird das Event nicht ausgeführt.
An Eurer Stelle würde ich eine Teilmaske verwenden. Das Feld muss ja nicht unbedingt in der Teilmaske stehen.

Initialize geht nicht, da das NotesDocument nicht greifbar ist.

Andreas
Titel: Re:Auslesen Feld N/A-book und in gemeinsames Feld schreiben
Beitrag von: Marshuhn am 04.06.04 - 15:10:49
Hallo Andreas,

vielen Dank für den Tipp. Diesen haben wir befolgt und jetzt funktioniert es prima.

Danke

Danke auch an Bernhard

Marshuhn