Domino 9 und frühere Versionen > ND7: Entwicklung

Frontend mit eingebetteter Ansicht aktualisieren

(1/2) > >>

Hatschi:
Guten Tag,

eine bestehende Maske habe ich um eine eingebettete Ansicht erweitert. In der eingebetteten Ansicht des Hauptdokuments, sollen zugehörende Wiedervorlagen angezeigt werden. Die Wiedervorlagen werden aus dem Hauptdokument heraus als eigene Dokumente erstellt. 
Wird nun eine neue Wiedervorlage erstellt, so wird es in der eingebetteten Ansicht nicht angezeigt. In der Statuszeile erscheint die Meldung "Kategorie nicht gefunden". Drücke ich jedoch F9, wird das Dokument angezeigt.
Erstelle ich direkt zwei Dokumente nacheinanander, ohne dazwischen mit F9 zu aktualisieren, dann werden mir nach dem Speichern des zweiten Dokumentes beide Wiedervorlagen angezeigt, ohne das ich danach F9 drücken muß.

Wie bringe ich Notes dazu den Inhalt der Ansicht sofort anzuzeigen. Meine Versuche die Ansichten im Backend zu aktualisieren und im Frontend mit ws.ViewRefresh anzeigen zu lassen funktionieren nicht.

Zu dem Problem gibt es hier im Board mehrere Anfragen. Aber damit komme ich nicht weiter. Dieser hier beschreibt genau mein Problem
http://atnotes.de/index.php/topic,39621.0.html
und der Alias wird als möglicher Verusacher bezeichnet. Aber weder die Ansicht, noch die Maske haben einen Alias.

Könnt ihr mich vielleicht wieder mit euren Fragen und Hinweisen zum Ziel geleiten?

Vielen Dank,

Bernd

Hatschi:
So, nun habe ich versucht die neu erstellte Wiedervorlage im Backend zu lokalisieren.



Sub Click(Source As Button)
Dim ws As notesuiworkspace
Dim uidoc As notesuidocument
Dim db As notesdatabase
Dim view As notesview
Dim doc As notesdocument
Dim collection As notesdocumentcollection

Set ws=New notesuiworkspace
Set uidoc=ws.CurrentDocument
Dim anzahl As Integer
Set doc=uidoc.Document

If uidoc.ModifiedSinceSaved Then
   Print "Ich bin jetzt in der Maske " +uidoc.document.Form(0)
   Call uidoc.Save
   Call uidoc.Close
   'es kommt vor das eine neu ersellte Wiedervorlage nicht angezeigt wird
   'Zwangsaktualisierungsversuche der Ansicht im Backend
   Set db=ws.CurrentDatabase.Database
   Set view=db.GetView("WiedervorlageA1")
   'suchen ob es das Dokument in der View gibt
   Call view.Refresh
   anzahl=view.ftsearch(doc.WV_VerbindungsID(0), 0)
   Print Cstr(anzahl) + " Dokumente gefunden mit WV-ID=" +doc.WV_VerbindungsID(0)
   Set uidoc=ws.CurrentDocument
   Print "Ich bin jetzt in der Maske " +uidoc.document.Form(0)
   Call uidoc.Refresh
   Call ws.ViewRefresh
End If
   
End Sub

Er zeigt mir auch an das er ein Dokument mit der WV_VerbindungsID in der Ansicht findet. Aber im Frontend zeigt er mir das Dokument immer noch erst nach drücken der Taste F9.
Das ist zum Mäusemelken!

Bernd

botschi:
Mir wurde gerade übel, als ich meinen alten Beitrag gelesen habe- richtig schwitzig...  ;D
Mach doch mal eine leere Kopie der DB, bei mir hats damals geholfen meine ich...

Ich versuche seitdem aber solche Stunts auch zu umgehen...
Mit eingebetteten Ansichten habe ich mich schon so oft in die Nesseln gesetzt...

Matthias

cg-home:
Hallo Matthias, Hallo Bernd,

ja, bei diesem Thema kämpfe ich auch immer wieder mal rum.
Wo es meisten klappt, ist wenn ich es per Formelsprache mache.

--- Code: ---@Command([Compose]; ""; "mskMaskenAlias");
@Command( [RefreshWindow] )
--- Ende Code ---

Vielleicht klappt es ja mit einem

--- Code: ---Call notesUIWorkspace.ReloadWindow( )
--- Ende Code ---
oder doch mal die Fromelsprache in LS über Evaluate ausführen
vielleicht verhalten sich diese Befehle etwas unterschiedlich.
http://atnotes.de/index.php/topic,28334.0.html

In meinem letzten Script habe ich nach dem refresh auch nochmal
ein save gemacht. Wenn das bei dir möglich ist hilft das vielleicht auch

--- Code: ---Call docParentUI.refresh
Call docParentUI.Save
--- Ende Code ---


--- Zitat ---In der Statuszeile erscheint die Meldung "Kategorie nicht gefunden"
--- Ende Zitat ---
Das habe ich auch in einigen Datenbanken und ich bin bisher nicht drauf gekommen
was das sein könnte. Aber ich denke das hat nichts mit Deinem Problem zu tun.
Mittlerweilen ignoriere ich es schon.

mfg Christian

pram:
Es ist eigentlich gaaaanz simpel:
Die eingebettete Ansicht muss berechnet sein. Dann reicht ein einfacher uiDoc.refresh.
Als Berechnugsformel gibt man am Besten
"nameMeinerAnsicht"+""
an, da es ansonsten automatisch beim Speichern im Designer wieder auf 'nicht berechnet' umgestellt wird.

Gruß
Roland

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln