Domino 9 und frühere Versionen > ND6: Entwicklung
Doc ist noch immer "IsNewDoc" obwohl es gespeichert wurde
Glombi:
Ich kapiere das noch nicht richtig. Du willst per Button speichern (UI-Dokument), setzt ein SaveOptions = "0" und es soll aber erst im QueryClose im Backend gespeichert werden?
Warum nutzt Du nicht das Querysave und machst da einige Abfragen/Hinweise.
Falls das Speichern dann aufgrund des Userinputs unterbunden werden soll, machst Du ein
Continue = False
Exit sub
Kannst Du bitte mal genau erklären, was Du erreichen willst.
Andreas
theBastian:
Ok, stimmt ganz schön unübersichtlich. Versuche mal zu erklären:
Querysave: Abfrage von Pflichtfeldern, die gefüllt werden müssen, bevor das Doc gedruckt oder gespeichert werden kann.
Speicherbutton (siehe oben)
Queryclose: Info an den User, dass er das Doc nicht mehr bearbeiten kann, wenn es erst mal geschlossen ist. Falls ja, Feld $Saved setzen und im Backend speichern. Der Code dazu ...
--- Code: ---Sub Queryclose(Source As Notesuidocument, Continue As Variant)
On Error Goto errHandler
Dim doc As NotesDocument
Set doc = Source.Document
'check if doc in EditMode
If source.EditMode Then
'check if doc is new
If source.IsNewDoc Then
If Messagebox ("Dieses Dokument wird nicht gespeichert." & Chr(10) & _
"Wollen sie wirklich schließen?", _
MB_YESNO + MB_ICONQUESTION, "Schließen") = IDNO Then
Continue = False
Exit Sub
End If
Goto exitScript
End If
'check doc save status
If (Not doc.~$Saved(0) = "1") Then
If Messagebox ("Nach dem Schließen kann dieses Dokument nicht mehr bearbeitet werden." & Chr(10) & _
"Wollen sie wirklich schließen?", _
MB_YESNO + MB_ICONQUESTION, "Schließen") = IDNO Then
Continue = False
Exit Sub
End If
'Set the $Saved field
Dim item As NotesItem
Set item = doc.ReplaceItemValue( "$Saved", "1")
Call doc.Save( True, True )
End If
End If
exitScript:
Exit Sub
errHandler:
Msgbox "Es ist ein Fehler aufgetreten." & Chr(10) & Chr(10) _
& "Fehlermeldung: " & Error$ & Chr(10) _
& "Fehlernummer: " & Err & Chr(10) _
& "Codezeile: " & Erl & Chr(10) _
,64,"Error"
Resume exitScript
End Sub
--- Ende Code ---
Wenn Doc aber noch nicht gespeichert ist und der User ESC drückt kommt eine Dialogbox, ob er speichern will. Das woltle ich mit SaveOptions verhindern. Klappt ja auch, aber so gut, dass das Doc garnicht gespeichert wird. :(
cu
der B@sti
theBastian:
So, bin jetzt schon etwas weiter. Setze wenn alle Bedingungen erfüllt sind
im Querysave: Call source.FieldSetText( "SaveOptions","1" )
im Postsave: Call source.FieldSetText( "SaveOptions","0" )
Mit dem Speicherbutton funktioniert das sehr gut.
Leider macht mir mein Druckscript (auch Button) noch Probleme: irgendwie wird das Postsave nicht abgearbeitet und das Feld "SaveOptions" steht noch immer auf "1". Aber warum?
--- Code: ---Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim Doc As NotesDocument
Dim OrigEditMode As Boolean
Set uidoc = workspace.CurrentDocument
OrigEditMode=UiDoc.EditMode
If uidoc.EditMode Then
Call uidoc.refresh
On Error 4411 Goto exitScript
Call uidoc.Save
End If
Set Doc=uidoc.Document
doc.Form="frmPrintSheet1"
Call workspace.EditDocument(False,Doc)
Set uidoc=WorkSpace.CurrentDocument
Call uidoc.Print
Call uidoc.close
exitScript:
Exit Sub
End Sub
--- Ende Code ---
Sage schon mal Danke für Eure Geduld und Hilfe.
cu
der B@sti
Glombi:
Du solltest auch im QueryClose das SaveOptions auf "0" setzen.
if Source.Document.SaveOptions(0) = "1" then
Source.Document.SaveOptions(0) = "0"
call Source.Document.Save( false, true, true )
End if
Andreas
theBastian:
Mach ich.
Löst das auch mein Druckscriptproblem? Eher nicht, oder?
cu
der B@sti
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln