AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
02.04.20 - 17:25:58
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  UIDocument zeigt Änderungen nach Speichern (und erneutem Öffnen) nicht an
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: UIDocument zeigt Änderungen nach Speichern (und erneutem Öffnen) nicht an  (Gelesen 307 mal)
der busse
Frischling
*
Offline Offline

Beiträge: 28


« am: 05.03.20 - 22:34:29 »

Ich stehe gerade etwas auf dem Schlauch.
Ich möchten eine gemeinsame Aktion in eine Ansicht und eine Maske bauen.
Grund ist einfach, daß ich eine Änderung von X Sachen in einem Dokument unterbinden will und eine Sache (Titel) ändern möchte. Der Wert wird immer gesetzt. Die Sache mit der View klappt wie gewünscht.
Wenn ich nun aber das Dokument öffne und im Lesemodus bin, dann klappt die Aktualisierung nicht. Ich habe diverse Sachen probiert und kriege maximal den Eintrag im Titel der Registerlasche / des Tabs aktualisiert. Der Titel, der in einem Feld angezeigt wird bleibt auf dem alten Wert. Schließe ich den Tab und gehe zurück in die Ansicht, steht da auch der alte Wert. Der Eigenschaft AutoReload vor dem Save zu setzen hat da auch nichts gebracht. Hier der etwas abgespeckte Schnipsel.


Sub Click(Source As Button)
   Dim ws As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument, uidoc2 As NotesUIDocument
   Dim uiview As NotesUIView      
   Dim doc As NotesDocument
   Dim OldSubject As String, NewSubject As String

   
   Set db = session.CurrentDatabase  
   Set uidoc = ws.CurrentDocument
   
   If (uidoc Is Nothing) Then
      Set uiview = ws.CurrentView
      Set doc = db.GetDocumentByID(uiview.CaretNoteID)
   Else
      Set doc = uidoc.Document
   End If
      
   Call doc.ReplaceItemValue( "X", "some new Value")
   Call doc.Save(False, False)
   If (uidoc Is Nothing) Then
      Call ws.ViewRefresh()
   Else
      uidoc.Close(True)
      Set uidoc2 = ws.EditDocument(False, doc)
      uidoc2.Refresh()
   End If
End Sub


Hat da jemand Erfahrungen bzw. eine Idee?
Ich muss das Dokument natürlich nicht schließen, war aber als Lösung in der Doku angegeben.
« Letzte Änderung: 24.03.20 - 14:27:03 von der busse » Gespeichert
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2656



« Antworten #1 am: 06.03.20 - 07:29:24 »

Ich würde mir die UniversalID des Dokuments merken, dann das uidoc schließen, doc und uidoc aus dem Speicher löschen (delete), Dokument neu über die UniversalID holen, ändern speichern und neu öffnen
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1158



« Antworten #2 am: 06.03.20 - 12:27:31 »

Ich würde das uiDoc nicht schließen und neu öffnen sondern in den Bearbeitenmodus wechseln, und das bevor die Änderungen im Backend durchgeführt werden. 
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.9
--
Nur ein toter Bug, ist ein guter Bug!
der busse
Frischling
*
Offline Offline

Beiträge: 28


« Antworten #3 am: 06.03.20 - 16:14:23 »

Hm. Muss ich mal versuchen. In meinem Schöcker steht doch tatsächlich auch was von Delete, wenn sich z.B. zwei Agenten austauschen.

Das mit dem Editiermodus wollte ich eigentlich vermeiden.
Es sind wohl vereinzelt Anhänge beim Editieren von Richtext-Feldern verändert worden, und da wollte ich halt die Möglichkeit der Änderung per Edit-Modus umschiffen. Zumindest schien mir das in dem Moment einfach.

Gibt es sonst eine Dokumentation, wann Sachen vom Dateisystem ins Notes zurück gelesen werden, wenn man solche Felder editiert?
Ich meine, ich kann mir denken, daß das evtl. beim Speichern des Notesdokumentes passiert, oder das Notes vielleicht die PID vom Programm zieht, daß den Anhang bearbeitet und wartet, bis das weg ist und die Datei dann zurück schreibt oder Änderungen am Filesystem protokollieren könnte und die Daten dann schon zurück schreibt... Aber das wäre dann schon sehr speziell.

Danke bis hierhin & schönes Wochenende.
Gespeichert
der busse
Frischling
*
Offline Offline

Beiträge: 28


« Antworten #4 am: 24.03.20 - 14:26:34 »

Moin,

das Problem ließ sich tatsächlich durch ein Delete beseitigen.

UnID = Doc.UniversalID   
uidoc.Close(True)
Delete Doc
Delete UIDoc
Call ws.ViewRefresh()
Set Doc = db.GetDocumentByUNID(UnId)
Set uidoc = ws.EditDocument(False, doc)


Danke.
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: