Autor Thema: Probleme mit GetDocumentByKey  (Gelesen 2657 mal)

Offline Chris_stoff

  • Frischling
  • *
  • Beiträge: 6
  • Ich liebe dieses Forum!
Probleme mit GetDocumentByKey
« am: 12.11.03 - 16:05:33 »
Hallo zusammen,

Ich bin ziemlich neu in der Notesprogrammierung und habe folgendes Problem:

Ich möchte per Onchange in einem Feld innerhalb einer Maske ein Dokument aus einer Ansicht holen und auf einen bestimmten Wert des Objektes zugreifen, welches ich zur Berechnung des nächsten Feldes brauche.

Per Debug LotusScript sehe ich, dass die Zuweisung des Dokumentes per GetDocumentByKey nicht erfolgreich ist.

Hier das Codefragment:

Sub Onchange(Source As Field)
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim viewdoc As NotesDocument
   Dim user As String
   Dim uit As Single
   Dim azpt As Single
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   Set db = s.CurrentDatabase
   Set view = db.GetView("BE_Mitarbeiter")
   user = s.UserName
   Set viewdoc = view.GetDocumentByKey(user)    <-- funktioniert nicht ...
   uit = doc.GetItemValue("urlaub_in_tagen")(0)
   azpt = viewdoc.GetItemValue("azpt")(0)   <-- hier schmiert er ab "Object variable not set"
   doc.urlaub_in_stunden = uit * azpt
End Sub

Die Hilfe und meine Literatur bringen mich leider nicht weiter ...

Ich hoffe hier weiß jemand rat.

Vielen Dank im Voraus.

Christof Wasser

ps: Ist es eigentlich sinnvoll Workspace, UIDoc etc. in jedem Feld neu zu deklarieren oder kann ich das auch noch anders lösen? Stichwort Globals ...

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Probleme mit GetDocumentByKey
« Antwort #1 am: 12.11.03 - 16:13:21 »
Klar kannst Du in der globalen Section des Formulars globale Parameter deklarieren, besonders für ein onChange macht das eminent Sinn.

Ansonsten: Vermutlich steht in der Var user der Name nicht in demselben Format wie in Deinem View, deshalb findet er das Dokument nicht. Im Debugger kannst Du ja sehen, was in user drinsteht und vergleiche das dann mit der ersten Kolonne Deines Viehs
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Chris_stoff

  • Frischling
  • *
  • Beiträge: 6
  • Ich liebe dieses Forum!
Re:Probleme mit GetDocumentByKey
« Antwort #2 am: 12.11.03 - 17:27:50 »
hmm ...

also der user Eintrag in dem Dokument aus dem View wird über ein Adressdialog (d.h. aus dem Directory) erzeugt. Es ist als Namensfeld gekennzeichnet.

In dem Onchange Ereignis wird der aktive User der Variable user zugewiesen. Beide User werden mit CN und O gespeichert ...

Die beiden Namen sind soweit ich erkennen kann identisch. Ich finde keine Erklärung ... wenn ich mit GetFirstDocument auf den View zugreife erhalte ich ohne Probleme ein Dokument, jedoch nicht das was ich gerne hätte.

Ich habe jetzt mal ein FTSearch davor gesetzt und dann versucht mit GetFirstDocument das richtige Dokument zu bekommen ... jedoch kommt hier die Fehlermeldung: "Notes error: Abfrage ist nicht verständlich". Die DB ist volltextindiziert.

Hier der Code:

Sub Onchange(Source As Field)
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim viewdoc As NotesDocument
   Dim user As String
   Dim uit As Single
   Dim azpt As Single
   Dim temp As Single
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   Set db = s.CurrentDatabase
   Set view = db.GetView("BE_Mitarbeiter")
   user = s.UserName
   REM Set viewdoc = view.GetDocumentByKey(user)
   temp = view.FTSearch(user, 0)           <-- hier kommt die Fehlermeldung
   Set viewdoc = view.GetFirstDocument()
   uit = doc.GetItemValue("urlaub_in_tagen")(0)
   azpt = viewdoc.GetItemValue("azpt")(0)
   doc.urlaub_in_stunden = uit * azpt
End Sub

Hat vielleicht noch jemand einen Hinweis??

thx

Christof

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Probleme mit GetDocumentByKey
« Antwort #3 am: 12.11.03 - 17:39:56 »
Bringt zwar nicht wirklich weiter, aber das muss so aussehen:

temp = view.FTSearch(Chr(34) & user & Chr(34), 0)
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:Probleme mit GetDocumentByKey
« Antwort #4 am: 12.11.03 - 19:58:38 »
Ist die erste Spalte der View, in der die Usernamen stehen, sortiert?

Falls nicht, geht GetDocumentByKey nicht.

Und immer als 2. Parameter true verwenden !!!
Also:
Set viewdoc = view.GetDocumentByKey(user, True)

Das mit dem FTSearch lass mal sein.

Andreas
« Letzte Änderung: 12.11.03 - 19:59:27 von Glombi »

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Probleme mit GetDocumentByKey
« Antwort #5 am: 12.11.03 - 20:01:42 »
Genau, das dürfte die Lösung sein, das mit dem Sortieren. Und das FTSearch seinlassen war eigentlich auch meine Meinung, auch wenn ichs nicht ausdrücklich gesagt habe ....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Chris_stoff

  • Frischling
  • *
  • Beiträge: 6
  • Ich liebe dieses Forum!
Re:Probleme mit GetDocumentByKey
« Antwort #6 am: 13.11.03 - 09:24:36 »
Danke für den Tipp mit der Sortierung!

Jetzt funktioniert alles reibungslos...

schönen Gruß

Christof

Offline Lancelot

  • Senior Mitglied
  • ****
  • Beiträge: 357
  • Geschlecht: Männlich
  • Tu was Du willst, aber schade keinem!
Re:Probleme mit GetDocumentByKey
« Antwort #7 am: 17.11.03 - 09:59:24 »
Hy versuch doch mal deinen key so zu füllen.

key = uidoc.FieldGetText( "Feldname" )

Wenn da nicht in der Variabelen drin steht, dann hast Du das uidoc nicht im Zugriff.
Wenn was drin steht aber die Ansicht in der erstn Spalte nicht das gleiche Format hat, oder nicht sortiert wird geht es auch nicht.

CU Lancelot
Gruß Gerry (Lancelot)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Probleme mit GetDocumentByKey
« Antwort #8 am: 17.11.03 - 13:18:01 »
Warum soll er das? Es funktioniert doch seit dem Sortieren
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz