Autor Thema: Postopen=> EditMode sperren  (Gelesen 2600 mal)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Postopen=> EditMode sperren
« am: 10.02.06 - 14:26:09 »
Hallo Zusammen,

ich habe folgendes Skript im Postopen Event. Bis zum Umstellung auf 6 hat es auch funktioniert.
Nun ist es aber so, wenn ich ein neues Dokument erstelle, dessen Maske dieses Evet hat, bekomme ich die Meldung "Dokumentbefehl ist nicht verfügbar".
Wenn ich aber bestehende Dokumente (mit dieser Maske erstellt) öffne, kommt keine Meldung.
Der Debugger zeigt den Fehler bei "source.EditMode = False.

Hat jemand ne Idee, warum es nicht mehr funktioniert?

Danke + Gruß
selin

Sub Postopen(Source As Notesuidocument)
   currentSperren = source.FieldGetText ("Sperren")
   If (currentSperren <> "offen") Then
      source.EditMode = False
      continue = True
      
   End If
End Sub
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Postopen=> EditMode sperren
« Antwort #1 am: 10.02.06 - 14:32:59 »
Hast den den Code unter R6 mal neu kompiliert? Fehlerhaft ist an der Zeile nämlich nichts.

Bernhard

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Postopen=> EditMode sperren
« Antwort #2 am: 10.02.06 - 14:46:34 »
Hallo Bernhard,

habe ich gerade getan und die Meldung erscheint immer noch...
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Postopen=> EditMode sperren
« Antwort #3 am: 10.02.06 - 14:50:27 »
Ich habe mal fix ein PostOpen bei mir herausgesucht:
Code
Sub Postopen (Source As Notesuidocument)
	
	'Prevent editing a signed or discarded entry:
	If  (Source.EditMode = True) And (Source.Document.Status (0)  <> "") Then
		Source.EditMode = False 		'This triggers the QueryModeChange event !
	End If
	
End Sub

Und das funktioniert natürlich unter R4, R5, R6 und R7. Und R3 nicht  ;D ;D

Spass beiseite: Das Problem muss an anderer Stelle zu suchen sein.

Bernhard

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: Postopen=> EditMode sperren
« Antwort #4 am: 10.02.06 - 15:01:18 »
habe es auch mal umgeschrieben, wie in deinem Script

Sub Postopen (Source As Notesuidocument)
   
      If  (Source.EditMode = True) And (Source.FieldGetText("Sperren")  <> "offen") Then
      Source.EditMode = False       
   End If
   
End Sub

aber hmmm, geht nicht.

Im QueryModeChange Event habe ich folgendes stehen:

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
   If Not ( source.EditMode ) Then
      currentSperren = source.FieldGetText( "Sperren" )
      If ( currentSperren <> "" ) Then
         Messagebox _
         ( "Document available for browsing only." )
         continue = False
      End If
   End If
End Sub

Dann wird das wohl auch nicht funktionieren
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Postopen=> EditMode sperren
« Antwort #5 am: 10.02.06 - 15:06:19 »
Der Vollständigkeit halber hier noch der zugehörige Code aus dem QueryModeChange:

Code
Sub Querymodechange (Source As Notesuidocument, Continue As Variant)
	
	Dim szErrorReason As String
	
	'Prevent editing a signed or discarded entry:
	If Source.Document.Status (0) <> "" Then
		If Source.Document.Status (0) = STATUS_SIGNED Then
			szErrorReason = "Freigegebene"
		End If
		If Source.Document.Status (0) = STATUS_DISCARDED Then
			szErrorReason = "Verworfene"
		End If
		
		Messagebox szErrorReason & " Einträge können nicht mehr bearbeitet werden !", MB_ICONEXCLAMATION, "Warnung"
		If Source.EditMode = False Then
			Continue = False
		End If     
	End If     
	
End Sub

Auch im PostRecalc steht noch relevanter Code - hier der Auszug (das Warum ist im Sourcecode kommentiert:)

Code
	'Prevent editing a signed or discarded entry - BECAUSE PostRecalc will be EXECUTED FIRST we have to check this event, too !!!
	If  (Source.EditMode = True) And (Source.Document.Status (0)  <> "") Then
		Source.EditMode = False 		'This triggers the QueryModeChange event !
		Exit Sub
	End If

Der Hund muss woanders begraben liegen.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz