Hallo zusammen
Ich habe ein Problem mit folgedem Lotus Script Auszug.
Dieses Postopen event setzt Doc.View gleich dem ersten Dokument.
Für den Fall das es noch keine Dokumente gibt, soll die laufende Nummer 1 verteilt werden, doch leider kommt nach der Zeile
"Set oDocView = oView.GetFirstDocument"
direkt die Fehlermeldung.
Weiß jmd vllt. wie man sich da abhilfe schaffen kann?
Ich arbeite mit Lotus Notes 6.5
Mit freundlichen Grüßen
Lukas
Sub Postopen(Source As Notesuidocument)
Dim oSession As New NotesSession
Dim oDateTimeHeute As New NotesDateTime ( "" )
Dim oItem As Notesitem
Call oDateTimeHeute.SetNow
Dim oDoc As NotesDocument
Set oDoc = Source.Document
geprueft = False
If source.isnewdoc Then
Dim oDb As NotesDatabase
Dim oView As NotesView
Dim oDocView As NotesDocument
Set oDb = oSession.CurrentDatabase
Set oView = oDb.GetView( "(§LfdNr)" )
Set oDocView = oView.GetFirstDocument
Hier kommt die Fehlermeldung und damit ist hier Ende.
If Not (oDocView Is Nothing) Then
oDoc.LfdNr = oDocView.LfdNr(0) + 1
Else
oDoc.LfdNr = 1
End If
@ascabg Danke dir, werds ma testen
EDIT: If Not oView.EntryCount > 1 Then
Set oDocView = oView.GetFirstDocument
oDoc.LfdNr = oDocView.LfdNr(0) + 1
Else
oDoc.LfdNr = 1
End If
So hab ich mir das gedacht, leider aber auch ohne Erfolg.
(Arbeite jetzt seit ein paar Tage mit dem Notes Designer)
mfg Lukas
Und Du bist sicher das Du die View gesetzt hast?
Set oView = oDb.GetView( "(§LfdNr)" )
Das Paragraphenzeichen erscheint mir doch etwas suspekt.
Andreas
Set oView = oDb.GetView( "($LfdNr)" )
Sollte ein Dollarzeichen sein, aber die Zeile liest er ohne Fehlermeldung, die kommt erst vor dem
Set oDocView = oView.GetFirstDocument
Es sind ja auch keine Dokumente in der Ansicht und deshalb versuch ich das abzufangen:
If Not oView.EntryCount > 1 Then
Set oDocView = oView.GetFirstDocument
oDoc.LfdNr = oDocView.LfdNr(0) + 1
Else
oDoc.LfdNr = 1
End If
mfg Lukas
Dann stell Deine Abfrage nach dem EntryCount mal um.
If oView Is Nothing then Error
If oView.EntryCount > 0 then
Und baue eine Fehlerbehandlung ein.
Andreas
If oView Is Nothing then Error
oView ist Nothing, was aber eigentlich nicht sein sollte, da ich oView ja die lfdNr vorgegeben hab.
If oView.EntryCount > 0 then
Also wenn ich nur Teste mit:
If oView.EntryCount > 0 then
Messagebox ("test")
End if
auch wenn ich das ">" zum "<" mache kommt der Fehler, und ich bekomme keine Msgbox ausgegeben, also stört der sich hier doch schon am Entry Count oder?
mfg Lukas
Set oDb = oSession.CurrentDatabase
Set oView = oDb.GetView( "($LfdNr)" )
Set oDocView = oView.GetFirstDocument
If Not (oDocView Is Nothing) Then
Messagebox ("letzte lfdNr + 1")
oDoc.LfdNr = oDocView.LfdNr(0) + 1
Else
Messagebox ("dieses ist das erste Dokument")
oDoc.LfdNr = 1
End If
Es funktioniert jetzt auch soweit, dass sich die Maske öffnet, die Felder jedoch nicht editierbar sind (werden auch garnicht angezeigt)
Hab es mit
source.Editmode = True
oDoc.BearbEin = oSession.CommonUsername
oDoc.Status = "01 - Einlieferung in Bearbeitung"
Call source.RefreshHideFormulas
versucht, bringt aber leider auch nix.
mfg Lukas
@Diri
ja das stimmt, aber das ist mir erstmal nicht wichtig, hauptsache ich bekomme das Gesamtkonstrukt ans laufen, mit der Nummer überleg ich mir dann später noch was.