Domino 9 und frühere Versionen > ND6: Administration & Userprobleme
workspace.ViewRefresh Problem
littleS:
Hallo zusammen,
ich weiß nicht ob das Problem tatsächlich mit workspace.ViewRefresh zusammenhängt, also schildere ich erstmal den Programmablauf.
Es soll ein neuer Termin angelegt werden über eine Maske, die unter anderem ein RichText Feld enthält. Wenn ich einen neuen Termin anlege oder einen Termin ändere funktioniert alles problemlos, solange ich nichts am RichText Feld ändere. Wenn ich das RT Feld ändere, werden die Änderungen beim Speichern oder nach <ESC> und anschließendem Bestätigen das doch gespeichert werden soll, nicht übernommen.
Im Debugger sieht es dann so aus, daß ich in der Zeile
If Continue Then Call gworkspace.ViewRefresh
die Fehlermeldung "Lotus Error - Specified Command is not available from the workspace" bekomme.
gworkspace ist im (Globals) Abschnitt des Moduls unter (Declarations) deklariert als
Dim gworkspace As NotesUIWorkspace
Continue hat den Wert "-1".
Die Fehlermeldung taucht übrigens nur auf, wenn ich den Debugger benutze, andernfalls gibt es keine Fehlermeldung. Die Änderungen werden halt nur nicht gespeichert.
Viele Grüße
s.
diali:
die Fehlermeldung kommt, weil beim Debuggen der Debugger im Fokus ist und nicht die Ansicht.
Ein ViewRefresh wirkt sich nur auf Ansichten im FrontEnd aus und nicht auf RT-Felder.
Wo änderst Du das RT-Feld (BackEnd oder FrontEnd)?
littleS:
Wo änderst Du das RT-Feld (BackEnd oder FrontEnd)?
Hmm, weiß ich nicht :-[, woran erkennt man den Unterschied?
Ah okay, ich denke es ist BackEnd.
klaussal:
Frontend-Klassen haben immer ein "...UI...".
littleS:
Also ich schreib mal was Code
Dim gworkspace As NotesUIWorkspace
Dim gdoc As NotesDocument
Dim bTerminInfoChanged As Boolean
Dim bSpeichernButton As Boolean
Der User drückt <ESC> -> Aufruf von QueryClose(...)
Source.GotoField("TerminThema") '// Fokus auf ein TextFeld, damit OnChange im
'// RT Feld ausgelöst wird
If gdoc.SaveOptions(0) = "0" Then
Call SaveTest(Continue,bSpeichernButton)
If Continue Then Call gworkspace.ViewRefresh
End If
'// OnChange des RT Feldes TerminInfos
Sub Onchange(Source As Field)
gdoc.SaveOptions = "0" '// verhindert default Dialogbox "Ob gespeichert
'// werden soll"
bTerminInfoChanged=True '// das RichText Feld wurde verändert
End Sub
'// SaveTest
Sub SaveTest(weiter As Variant, DoSave As Boolean)
Dim unterschied As Boolean
unterschied = False
unterschied = bTerminInfoChanged
If unterschied Then
ret = Messagebox("Möchten Sie Ihre Änderungen speichern?",3,"Lotus Notes")
Select Case ret
Case 2:
weiter = False
Exit Sub
Case 6: '// Ja Button
Call SaveDok()
End Select
End If
weiter = true
exit sub
End Sub
'// SaveDok()
Public Sub SaveDok()
Call gdoc.Save(True,True,True)
End Sub
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln