Domino 9 und frühere Versionen > ND8: Entwicklung
Problem mit SaveOptions
DAU-in:
Ich werde hier langsam kirre.
ich möchte folgendes:
die Anwender bearbeiten ein Dokument und sollen bestimmte Items via Button im Backend ändern können.
Feolgendes soll passieren, wenn die Aktion ausgelöst wird:
- Hinweis, dass das Dokument gespeichert wird
- der Anwender wählt via Picklist etwas aus
- die Werte werden umgeschossen
- das Backenddokument wird gespeichert
- SaveOptions wird auf 0 gesetzt
- das Frontenddokument wird geschlossen
- das Backenddokument wird via UniversalUNID angezogen und als Frontenddokument geöffnet
Folgendes passiert mir:
1. Das SaveOptions Item wird mit 0 abgespeichert (Fehler wurde von der Chefin entdeckt)
2. Danach habe ich im Backend das SaveOptions entfernt:
Jetzt werde ich im neugeöffenten Dokument gefragt, ob ich speichern will. Während der Abfrage ist ein weiteres Fenster mit dem Dokument geöffnet.
Wie bekomme ich das hingebogen? Oder habe ich einen Fehler im Code?
Folgendes habe ich noch gefunden:
noch einer, der rätselt:
http://www-10.lotus.com/ldd/nd85forum.nsf/5f27803bba85d8e285256bf10054620d/bce9c41f1e1512398525779f004b44e8?OpenDocument&Highlight=0,uidoc.close
das wusste ich auch noch nicht bzw. hat mir bisher kein Bein gestellt:
http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/queryclose-annoyances?opendocument&comments#anc1
Die Version ist:
Release 8.5.2
Revision 20100811.1131 (Release 8.5.2)
Standardkonfiguration
und hier der Code:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim session As New notessession
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim flag As Integer
Dim strUNID As String
Dim docReopen As NotesDocument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
flag = Messagebox ("blabla ----Möchten Sie fortfahren?",4, "Hinweis")
If flag = 6 Then
Call uidoc.save
' Setzen der Eigenschaften, hier bekommen die Anwender noch ein Picklist zur auswahl
'diverse Felder setzen
Call doc.save(False,False)
strUNID = doc.UniversalID
uidoc.document.SaveOptions ="0" 'keine Speicherabfrage
Call uidoc.Close
Set docReopen = session.currentDatabase.GetDocumentByUNID(strUNID)
'------------------------------------------------------------
' da im docReopen nun immer das SaveOptions entfernt werden muss
If docReopen.HasItem("SaveOptions") Then
Call docReopen.RemoveItem("SaveOptions")
Call docReopen.Save(False, False)
End If
'------------------------------------------------------------
Call ws.EditDocument(False,docReopen)
ws.CurrentDocument.EditMode = True
End If
End Sub
Werner Götz:
Nach dem
--- Code: ---Call uidoc.Close
--- Ende Code ---
ist ein
--- Code: ---Delete doc
--- Ende Code ---
nötig, sonst greift Notes in der Zeile
--- Code: ---Set docReopen = session.currentDatabase.GetDocumentByUNID(strUNID)
--- Ende Code ---
auf das sich bereits im Hauptspeicher befindende doc zurück.
Viele Grüße
-Werner
DAU-in:
Danke ich probiers morgen.
pram:
Anstatt
Set docReopen = session.currentDatabase.GetDocumentByUNID(strUNID)
Call ws.EditDocument(False,docReopen)
kann man auch
Set docReopen = ws.EditDocument(False,docReopen).document
schreiben, dann braucht man kein delete
Werner Götz:
Was hat denn diese Schreibweise mit dem Delete zu tun, welches nach dem uidoc.Close aufzurufen ist? Und woher kommt dann das docReopen?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln