Domino 9 und frühere Versionen > ND6: Administration & Userprobleme

workspace.ViewRefresh Problem

(1/3) > >>

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