Domino 9 und frühere Versionen > Entwicklung
Dokument Refresh weil sich im Backend Felder geändert haben
TMC:
Hi,
ein User öffnet ein neues oder bestehendes Dok im Bearbeitungsmodus.
Dort gibt es einen Button: dadurch wird u.a. uiws.pickliststrings ausgeführt. Das Ergebnis wird über
doc.FeldA = szLinkerWert
doc.TEST1 = szRechterWert
in berechnete Felder geschrieben.
Ein anschließendes
Call doc.Save(False,True)
Call uidoc.Reload
zeigt dann auch die Werte wie gewünscht in den Feldern an.
Problem:
Ist dies ein neues Dok, wird es ja durch doc.save gespeichert. Es soll aber erst wirklich gespeichert werden, wenn der User den Button "Speichern" bestätigt.
Mein Versuch:
- uidoc vorher schließen
- dann Felder füllen, speichern.
- uidoc wieder öffnen
- Backend-Dokument (doc) löschen
Aber Fehlermeldung: "cannot remove NotesDocument when instantiated by NotesUIDocument"
2. Versuch:
Backend speichern und schließen, und uidoc neu öffnen
Call doc.save(False, False)
Call uidoc.close
Set uidocReopen = uiws.editDocument(False, doc)
Call doc.remove(True) 'Das Backend löschen
uidocReopen.EditMode = True
Und wieder Fehlermeldung: "cannot remove NotesDocument when instantiated by NotesUIDocument". Auch wenn ich uidoc.close schon vorher platziere....
Hat wer ne Idee was man da noch machen könnte?
Matthias
koehlerbv:
Das ist mir jetzt aber etwas wirr ...
Call uidoc.Refresh tut auch das gewünschte.
Eines der berechneten Felder als Schlüsselwortfeld definieren (tut ja nicht weh ;-) und dann in den Field Properties einstellen "Felder nach Schlüsselwortänderung neu berechnen" tut auch Wunder.
Die Fehlermeldungen, die Du bisher erhalten hast, sind ansonsten sehr brav. Notes tut, was es tun muss ...
Matthias, sag' bitte an, wenn ich was falsch verstanden haben sollte.
Herzliche Grüsse - wie immer - von "Ober.." nach "Nieder.."
Bernhard
koehlerbv:
Noch genauer: Wenn Frontend, dann Frontend: Statt doc.Feld = konsequent im FrontEnd arbeiten: FrontendDocument.FieldSetText ...
Bernhard
TMC:
Hi Bernhard,
Du hast mich indirekt auf die Lösung gebracht :-)
Das Call doc.Save(False,True) hätte ich weglassen sollen, ohne dem gehts wunderbar :-)
Als Refresh mach ich nun folgendes:
Call uidoc.Reload 'Damit die Backend-Doc-Änderung angezeigt wird
Call uidoc.Refresh 'Damit auch berechnete Felder neu berechnet werden
Ich hätte ja schon fast mein Auto verwettet, dass ein doc.save hier sein muss, damit man die Änderungen vom Backend sieht, aber dem ist nicht so.
Also vielen Dank !
Matthias
TMC:
--- Zitat von: koehlerbv am 31.01.04 - 22:08:08 ---Noch genauer: Wenn Frontend, dann Frontend: Statt doc.Feld = konsequent im FrontEnd arbeiten: FrontendDocument.FieldSetText ...
--- Ende Zitat ---
Hmm, geht aber afaik nicht bei berechneten Feldern, oder täusche ich mich da jetzt? Daher bin ich gleich ins Backend ausgewichen...
Matthias
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln