Domino 9 und frühere Versionen > ND6: Entwicklung
Probleme bei AS400 Abfrage mittels ODBC auf Domino-Server (RunOnServer)
koehlerbv:
NotesUIDocument.Reload + .ViewRefresh - solange da kein Richtext Item involviert ist (auch wenn es gar nicht geändert wurde).
Sonst hilft nur ein Close / Reopen, wie Peter es schon aufgemalt hat.
Bernhard
Basti07:
Ein RTI ist nicht vorhanden, habe mich nun aber trotzdem für das Close und Reopen-Verfahren entschieden und als Vorlage den Code von ata verwendet.
Was könnte das Problem sein, wenn trotz dem Reopen, die Felder nach wie vor leer bleiben und ich sie erst sehe wenn ich händisch schließe und wieder öffne??
Zum Ablauf:
In dem Button Click-Event rufe ich nach
--- Code: ---Call Agent.RunOnServer(doc.NoteID)
--- Ende Code ---
die u.s. ReOpen-Function mit
--- Code: ---Call ReOpen(doc)
--- Ende Code ---
auf.
Die ReOpen-Function habe ich etwas angepasst, da das
--- Code: ---doc.Save(True, True)
--- Ende Code ---
mir immer die zuvor vom Agent eingetragenen Werte rausschmeißt. In auskommentierter Form bleiben sie erhalten.
So ganz verstehen tu ichs nicht ???
Habt Ihr noch eine Idee warum das ReOpen nicht funzt wie es soll?
Danke
Gruß Basti
--- Code: ---Function ReOpen(doc As NotesDocument) As Integer
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim dbThis As NotesDatabase
Dim unid As String
ReOpen = 0
Set dbThis = doc.ParentDatabase
'Call doc.Save(True , True)
unid = doc.UniversalID
doc.SaveOptions = "0" ' # ... Speicherabfrage vermeiden
Set uidoc = ws.CurrentDocument
Call uidoc.Close
Set doc = dbThis.GetDocumentByUNID(unid)
Set uidoc = ws.EditDocument(True , doc)
Set doc = uidoc.Document
If doc.HasItem("SaveOptions") Then
' # ... das Feld SaveOptions wieder entfernen...
doc.RemoveItem("SaveOptions")
'Call doc.Save( True , True )
End If
ReOpen = 1
Print "Das Dokument wurde erneut geöffnet: " & unid
End Function
--- Ende Code ---
Peter Klett:
M.E. wird das Dokument nicht sauber geschlossen, sonst wäre die Abfrage nach dem SaveOptions nach dem Öffnen sinnfrei.
Dokument Speichern
SaveOptions setzen
UIDoc schließen
Wenn dieses Dokument wieder neu geöffnet wird, kann es kein SaveOptions haben, denn das kann nicht gespeichert worden sein. Ist es dennoch enthalten, ist es nicht wirklich völlig neu geladen worden.
Ich würde das Dokument nach dem Schließen aus dem Speicher entfernen und erst dann wieder öffnen.
Function ReOpen(doc As NotesDocument) As Integer
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim dbThis As NotesDatabase
Dim unid As String
ReOpen = 0
Set dbThis = doc.ParentDatabase
'Call doc.Save(True , True)
unid = doc.UniversalID
doc.SaveOptions = "0" ' # ... Speicherabfrage vermeiden
Set uidoc = ws.CurrentDocument
Call uidoc.Close
Delete doc
Set doc = dbThis.GetDocumentByUNID(unid)
Set uidoc = ws.EditDocument(True , doc)
Set doc = uidoc.Document
If doc.HasItem("SaveOptions") Then
' # ... das Feld SaveOptions wieder entfernen...
doc.RemoveItem("SaveOptions")
'Call doc.Save( True , True )
End If
ReOpen = 1
Print "Das Dokument wurde erneut geöffnet: " & unid
End Function
Basti07:
Peter, das Delete hat's gebracht!
Vielen Dank
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln