Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: CLP-Alex am 15.02.08 - 14:23:23

Titel: nach editmode = false komische anzeige
Beitrag von: CLP-Alex am 15.02.08 - 14:23:23
Hy zusammen,

ich habe ein eigenes Locking programmiert. Wenn ein User STRG+B auf ein Dokument ausführt wird er automatisch wenn das Dokument schon gelockt ist in den Lesemodus gewechselt.

1. Problem
Kombiniert <berechneter wert> + Maskenoption "Felder automatisch aktualisieren" wird das Dok kurz geschlossen und direkt wieder geöffnet -> Problem Postopen läuft 2x

2. Problem
Nach setzen einer variable kann ich das 1. Problem im Queryclose abfagen, Lesemodeus wird auch gesetzt aber die Ansicht zeigt bearbeitbare Felder und Buttos an. kurz weggeblendet ist alles wie es sein soll??? oder mit anderem Windowsfenster kann man "radieren"

Kennst jemand ne Lösung?

Danke und Gruß
Alex
Titel: Re: nach editmode = false komische anzeige
Beitrag von: Glombi am 15.02.08 - 14:28:07
Wo ist das Script denn hinterlegt - im Querymodechange Event? Dort sollte es nämlich sein. Ich würde dort abfragen, ob bereits ein anderer User das Dokument bearbeitet und dann
Continue = false
setzen.

Andreas
Titel: Re: nach editmode = false komische anzeige
Beitrag von: CLP-Alex am 15.02.08 - 14:34:32
Hy Andreas,

im postopen wird geprüft ob das dokument schon woanders offen ist und in den lesemodus geschaltet. im querymode wird ebenfalls geprüft ob das dokument woanders offen ist und continue = false gesetzt.

postopen eben wegen strg-b

Gruß Alex
Titel: Re: nach editmode = false komische anzeige
Beitrag von: Glombi am 15.02.08 - 14:36:43
Dann würde ich das ins Queryopen packen und dort das Dokument neu im Lesemodus öffnen.
Titel: Re: nach editmode = false komische anzeige
Beitrag von: CLP-Alex am 15.02.08 - 14:45:57
Wie kann ich ein Dok nach dem Queryopen neu öffnen ohne das aktuelle uidoc zu öffnen?
Titel: Re: nach editmode = false komische anzeige
Beitrag von: Glombi am 15.02.08 - 15:39:46
Stimmt, dass scheint nicht so einfach zu gehen.

Eine Alternative wäre ein Hinweis per Msgbox an den Anwender und dann das Öffnen des Dokuments im Queryopen mit Continue = False zu verhindern.

Andreas
Titel: Re: nach editmode = false komische anzeige
Beitrag von: CLP-Alex am 15.02.08 - 15:58:16
Ja, war auch ein Lösungsansatz nur dann kann nur eine Person lesen bzw. bearbeiten.
Auch eine "LeseKopie" zu erstellen ist nicht möglich.

Besteht vieleicht die Möglichkeit STRG-B zu verhindern?
Titel: Re: nach editmode = false komische anzeige
Beitrag von: koehlerbv am 15.02.08 - 16:20:58
Hast Du Dir den entsprechenden BP-Artikel (http://atnotes.de/index.php?topic=20455.0) hierzu schon durchgelesen?

Bernhard
Titel: Re: nach editmode = false komische anzeige
Beitrag von: CLP-Alex am 15.02.08 - 16:38:05
Hallo Bernhard,
Ja, habe ich genau so geplant und wie gesagt, im Postopen Source.EditMode = False bringt eben diese Mischform des Dokuments, Anzeige Edit, aber Notesseitig Readmode.
Gruß Alex
Titel: Re: nach editmode = false komische anzeige
Beitrag von: koehlerbv am 15.02.08 - 17:10:32
Und welcher Code hinsichtlich setzen des EditModes steht im PostRecalc? Überhaupt wäre Code mal nicht schlecht.

Bernhard
Titel: Re: nach editmode = false komische anzeige
Beitrag von: Glombi am 15.02.08 - 17:18:51
Was spricht dagegen, dass Dokument im Postopen mit
Source.Close
zu schließen und dann mit
call ws.EditDocument( false, doc )
wieder im Readmodus zu öffnen?
Titel: Re: nach editmode = false komische anzeige
Beitrag von: koehlerbv am 15.02.08 - 17:22:59
Dass man da mit Strg-B, Doppelklick, Bearbeiten - Dokument bearbeiten etc. sofort wieder in den EditMode wechseln kann ...

Bernhard
Titel: Re: nach editmode = false komische anzeige
Beitrag von: CLP-Alex am 18.02.08 - 08:15:50
Hallo zusammen

hier mal der Code:

Code
Sub Postopen(Source As Notesuidocument)
	Dim ws As New NotesUIWorkspace
'pruefung ob locking aktiv -> wenn ja check auf schon gelockt
	If (Source.isnewdoc = False) Then
		If C_DocFunctions_PostOpenDocument(Source.Document) = False Then
			If source.editmode = True Then	
				'hier lock auf 2 setzten um queryclose zu verhindern -> nur wenn strg - b direkt editmode 
				CONNECTDocumentIsLocked = 2
				Call source.FieldSetText("SaveOptions", "0")			
				Call source.refresh	
				source.editmode = False	
			End If
		End If
	End If
End Sub

Code
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
'pruefung ob locking aktiv -> wenn ja check auf schon gelockt
	If Source.IsNewDoc = False Then
		If Source.EditMode = False Then			
			If C_DocFunctions_PostOpenDocument(Source.Document) = False Then
				Continue = False
			End If
		End If
	End If
End Sub

Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	Dim errormessage As String
	Continue = C_DocFunctions_QuerySave(source.Document,errormessage)
	
	If Continue = -2 Then 
		 ' Abbruch bei Warnung
		Continue = False 
		Exit Sub
	End If
	
	If continue = False Then
		IB_MsgBox errormessage , 16, "Co_Eingabefehler"
	End If
End Sub

Wäre immer noch hilfreich wenn jemand eine Lösung hat.

Gruß Alex
Titel: Re: nach editmode = false komische anzeige
Beitrag von: koehlerbv am 18.02.08 - 09:56:18
Das QuerySave-Event ist in diesem Zusammenhang uninteressant - ich frage erneut nach dem Code im PostRecalc ... DER Teil ist in diesem Zusammenhang interessant.

Bernhard
Titel: Re: nach editmode = false komische anzeige
Beitrag von: CLP-Alex am 18.02.08 - 15:06:27
Hy Bernhard

PostRecalc ist kein Code enthalten.

Gruß Alex
Titel: Re: nach editmode = false komische anzeige
Beitrag von: koehlerbv am 18.02.08 - 15:28:04
Dann solltest Du Dir den BP-Artikel nochmal genau durchlesen ...

Bernhard
Titel: Re: nach editmode = false komische anzeige
Beitrag von: CLP-Alex am 18.02.08 - 15:48:58
HABE ICH und auch getestet, aber den Effekt habe ich immer noch mit der Mischform Read-Edit Mode