Das Notes Forum

Domino 9 und frühere Versionen => ND6: Administration & Userprobleme => Thema gestartet von: LukasSChl am 24.03.10 - 08:40:19

Titel: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 08:40:19
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


Code
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
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: klaussal am 24.03.10 - 08:45:45
Wenn dies der x-te Versuch sein sollte, eine laufende Nummerierung zu machen, vergiß es.
Dazu gibt es genug Beiträge im Forum.
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: ascabg am 24.03.10 - 08:47:11
Hallo,

Frag doch mit view.EntryCount ab, ob sich Dokumente in der Ansicht befinden.


Andreas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 08:52:07
@ascabg Danke dir, werds ma testen

EDIT:
Code
		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
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: Axel am 24.03.10 - 09:00:05
...doch leider kommt nach der Zeile
"Set oDocView = oView.GetFirstDocument"
direkt die Fehlermeldung.
...

Welche Fehlermeldung?

Axel
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 09:27:18
@Axel
Die Fehlermeldung lautet: "Object Variable not set"

mfg Lukas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: ascabg am 24.03.10 - 09:38:58
Und Du bist sicher das Du die View gesetzt hast?

Code
Set oView = oDb.GetView( "(§LfdNr)" )

Das Paragraphenzeichen erscheint mir doch etwas suspekt.


Andreas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 09:46:40
Code
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:
Code
If Not oView.EntryCount > 1 Then
     Set oDocView = oView.GetFirstDocument
     oDoc.LfdNr = oDocView.LfdNr(0) + 1
Else
     oDoc.LfdNr = 1
End If


mfg Lukas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: ascabg am 24.03.10 - 09:54:19
Dann stell Deine Abfrage nach dem EntryCount mal um.

Code
If oView Is Nothing then Error
If oView.EntryCount > 0 then

Und baue eine Fehlerbehandlung ein.


Andreas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 10:06:52
Code
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:
Code
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
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: Driri am 24.03.10 - 10:15:51
Ne, wenn oView schon Nothing ist, dann kann der EntryCount auch nichts als einen Fehler zurückliefern, weil es nichts gibt, in dem gezählt werden könnte.

Kontrollier noch einmal die Zuweisung von oView und ob es die dort angegebene View tatsächlich gibt.


Und wie Klaus schon geschrieben hat : Wenn das der Versuch einer eindeutigen Nummer wird, dann stöber mal hier im Forum nach Beiträgen zu dem Thema. Da gibt es diverse Fallstricke, die man kennen und berücksichtigen sollte. Und dann muß man sich immer noch überlegen, ob man nicht evlt. doch einfach mit der Universal ID auskommt.


Edit :

Das PostOpen halte ich persönlich übrigens nicht für den idealen Ansatzpunkt für so etwas. So generierst Du nämlich sehr schnell doppelte Nummern, weil ja zwischen Öffnen des Dokumentes und Speichern einige Zeit ins Land gehen kann, in der andere Benutzer ebenfalls ein Dokument erzeugen und die selbe ID ziehen.
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 10:48:23
Code
		
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
Code
   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.
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: ascabg am 24.03.10 - 11:01:50
Welche Maske?

Andreas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: Axel am 24.03.10 - 11:03:28
Du wirfst hier Back- und Frontendfunktionen durcheinander.

Eine Möglichkeit wäre z.B.

source.Editmode = True
source.FieldSetText("BearbEin", oSession.CommonUsername)
source.FieldSetText("Status", "01 - Einlieferung in Bearbeitung")
Call source.Refresh


Axel
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 11:04:42
@  ascabg
Die Maske (Werte), ist eine Eingabemaske für neue Datensätze.
Durch einen button wird diese aufgerufen und im Postopen event steht der Code um den es hier geht.
Nur leider kann ich die Felder nicht bearbeiten und die werden auch nichtma angezeigt, nur die automatisch befüllten Felder zeigen Werte an.

@Axel
ich teste^^ vielen dank erstma
EDIT: leider ohne Erfolg, auch wenn ich die Felder so anspreche, bekomm ich die Maske leider ohne die Möglichkeit zu editieren, was aber gehen soll

mfg Lukas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: ascabg am 24.03.10 - 11:17:48
Frage anders.

Wie sieht denn der Code im Button aus, mit dem Du die Maske aufruft und zum Bearbeiten oeffnen willst?


Andreas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 11:21:20
@Command([Compose];"(Werte)")

daran sollte es nicht liegen, ich habe eine "Vorlage" in der der Button Code, genau gleich sind, und da öffnet er die Maske und lässt mich die Felder editieren
mfg Lukas
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: LukasSChl am 24.03.10 - 11:34:37
OK hat sich geklärt, musste Notes neustarten um die Rollen zu aktualieseiren.

Die Rollen sind in der "Absatz verbergen wenn Formel wahr ist"

eingebaut.

Jetzt klappt alles.

Vielen Dank für eure Hilfe.

--closed--
Titel: Re: View = firstDocument Error ! Need help plz
Beitrag von: koehlerbv am 25.03.10 - 01:25:22
Liebe AtNotes-User, die Ihr später mal über diesen Thread stolpert: Natürlich kann man auf die hier bislang beschriebene Art und Weise keine eindeutigen Nummern erzeugen. Ich kann mich hier meinen Vorrednern nur nochmals anschliessen.

Bernhard