Domino 9 und frühere Versionen > ND8: Entwicklung

Problem mit SaveOptions

(1/2) > >>

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