Autor Thema: IsValid-Abfrage funktionert nicht! [Lotusscript]  (Gelesen 1588 mal)

Offline augustus

  • Frischling
  • *
  • Beiträge: 11
IsValid-Abfrage funktionert nicht! [Lotusscript]
« am: 04.04.07 - 10:58:08 »
Hallo Notesprofis,

Ich habe mir und euch zwar geschworen, dass ich ab sofort die Finger von LS lassen werde, aber manchmal kommt es eben anders als gedacht.

Ist aber nur eine kleinigkeit, die mir schon wieder meine Nerven raubt.
____________________

In einem Dokument übergebe ich Werte an ein anderes Dokument mit der gleichen Nummer im Feld 'projectnumber'.

Das funktiniert auch alles wunderbar.

Wenn jetzt aber kein Dokument mit der gleichen 'projectnumber' existiert, soll er stattdessen ein neues dokument erstellen.

If newdoc.IsValid = False Then
      Set newdoc = New NotesDocument( db )
   End If


geht leider, aus mir unerfindlichen Gründen nicht!
Code
Sub Click(Source As Button)
	
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim newdoc As NotesDocument	
	
	
	Dim collection As NotesDocumentCollection
	Dim searchFormula As String   
	Dim A As String
	On Error Goto ErrHandler
	
	Set db = session.CurrentDatabase
	Set uidoc = workspace.CurrentDocument  
	Set doc = uidoc.Document
	
'________________________________________		
'Ab hier wird's interessant:

	
	A = uidoc.FieldGetText("projectnumber")
	searchFormula$ = |projectnumber = "| + A +|"|
	Set db = session.CurrentDatabase
	Set collection = db.Search(searchFormula$, Nothing,0)
	Set newdoc = collection.GetFirstDocument()
	
	If newdoc.IsValid = False Then
		Set newdoc = New NotesDocument( db )
	End If


Ich hoffe ihr könnt mir weiterhelfen.

Viele Grüße,

Augustus

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: IsValid-Abfrage funktionert nicht! [Lotusscript]
« Antwort #1 am: 04.04.07 - 11:12:02 »
Definiere "geht leider nicht". Siehe auch "Sei genau und informativ bei der Beschreibung deines Problems"
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

klaussal

  • Gast
Re: IsValid-Abfrage funktionert nicht! [Lotusscript]
« Antwort #2 am: 04.04.07 - 11:16:51 »
Als Idee:

Code
	If uidoc.IsNewDoc Then
		keylng = doc.halter_nr(0)
		Set viewhalter = db.GetView ("a_halter" )
		Set docsearch = viewhalter.GetDocumentByKey (keylng )
		If Not (docSearch Is Nothing) Then
			Msgbox "Halter-Nummer schon vergeben !"
			continue = False
			Exit Sub
		End If	
	End If

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: IsValid-Abfrage funktionert nicht! [Lotusscript]
« Antwort #3 am: 04.04.07 - 11:21:05 »
Aber bitte vorher noch einen View.refresh einplanen, denn es könnte ja sein das irgendjemand anderes diese Projektnummer gerade vergeben hat.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline augustus

  • Frischling
  • *
  • Beiträge: 11
Re: IsValid-Abfrage funktionert nicht! [Lotusscript]
« Antwort #4 am: 04.04.07 - 11:46:50 »
Hallo meine Retter,

vielen, vielen, vielen, vielen Dank.

Ich habe den Code nun wie folgt bearbeitet und es funktioniert:

Code
A = uidoc.FieldGetText("projectnumber")
	searchFormula$ = |projectnumber = "| + A +|"|
	Set db = session.CurrentDatabase
	Set collection = db.Search(searchFormula$, Nothing,0)
	Set newdoc = collection.GetFirstDocument()
	
	
	If uidoc.IsNewDoc Then
		keylng = doc.projectnumber(0)
		Set viewhalter = db.GetView ("Userview" )
		Call viewhalter.Refresh
		Set docsearch = viewhalter.GetDocumentByKey (keylng )
		If  (docSearch Is Nothing) Then
			Set newdoc = New NotesDocument( db )
			continue = True
			Goto SetForm
			Exit Sub
		End If	
	End If

@m3:

Hast recht, werde nächstes mal dran denken. Für die Suche: Error Nr. 91 Object Variable not Set.

Hochachtungsvoll,

Augustus

klaussal

  • Gast
Re: IsValid-Abfrage funktionert nicht! [Lotusscript]
« Antwort #5 am: 04.04.07 - 11:57:57 »
Wofür ist denn jetzt noch die collection  ???

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: IsValid-Abfrage funktionert nicht! [Lotusscript]
« Antwort #6 am: 04.04.07 - 12:03:50 »
Genau schmeiß den db.Search und alles was damit zu tun hat weg. Das frisst jetzt nur noch Performance
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz