Autor Thema: getdocumentbyKey  (Gelesen 1147 mal)

Offline MrSerious

  • Frischling
  • *
  • Beiträge: 9
getdocumentbyKey
« am: 08.06.05 - 09:27:18 »
 Habe einige Skripte geschrieben, aber der Debugger zeigt mir für Doc keinen Wert an, was er aber tun soll:

Hier das eine Skript(steht in der Skript Bibliothek):

Public Function Lookup(ansicht As String,key As String, feld As String) As Variant
Dim session As New notessession
Dim db As notesdatabase
Dim vw As notesview
Dim doc As notesdocument

Set db=session.currentdatabase
Set vw=db.getview(ansicht)
Set doc=vw.getdocumentbykey(key,False)

LookUp=doc.getitemvalue(feld)(0)
End Function

Und hier das andere, daß die lookup Funktion aufruft:

Sub Exiting(Source As Field)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim s As String


'***************** Nur neues Dokument vorbelegen!!
If Not uidoc.isnewdoc Then Exit Sub

'************************** Felder vorbelegen
s=uidoc.FieldGetText("fldDatumStart")
'Periode
Call uidoc.fieldsetText("fldPeriode",lookup("AdminPeriode",s,"fldPeriode"))
'Periodefrei
Call uidoc.fieldsetText("Periodefrei",lookup("AdminPeriode",s,"fldPeriodefrei"))
'Stundensatz
' Call uidoc.fieldsetText("dblStundensatz",Cstr(lookup("Intern\MitarbeiterAlternativ",s,"dblStundensatz")))
End Sub

In der Ansicht habe ich auch Werte für Periode und Periodefrei eingetragen, Mir fällt da jetzt nichts mehr ein???

Danke.

Gruss

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: getdocumentbyKey
« Antwort #1 am: 08.06.05 - 10:05:47 »
Das könnte durchaus die gleiche Ursache haben wie bei Deiner anderen Frage:
Eintrag im Index nicht gefunden??

Weiterhin: Deine Code ist noch nicht gut. Du versuchst, Objekte zu instantiieren, prüftst aber danach nicht ab, ob Du Erfolg hattest - im negativen Fall wird dann der User mit einem run-time error "beglückt". Beispiel:
Code
Set doc=vw.getdocumentbykey(key,False)

LookUp=doc.getitemvalue(feld)(0)

müsste beispielsweise heissen:
Code
Set doc=vw.getdocumentbykey(key,False)
If Not (doc Is Nothing) then
   LookUp=doc.getitemvalue(feld)(0)
Else
   <DeineAusnahmebehandlung>
End If

HTH,
Bernhard

Offline MrSerious

  • Frischling
  • *
  • Beiträge: 9
Re: getdocumentbyKey
« Antwort #2 am: 09.06.05 - 08:40:05 »
Hallo,

nochmals Danke.

Dasselbe Problem, wie beim Index, ließ sich eigentlich lösen, indem ich das Skript in die neue DB eingefügt habe. Doc zeigte danach einen Wert an!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz