Autor Thema: Embedded View in einem nicht selektierten Frame automatisch aktualisieren  (Gelesen 1747 mal)

Offline SD

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Guten Tag allerseits,

jetzt wird es hier bei mir kreativ. :-)

Ich konnte bereits einige nützliche Threads zum automatischen aktualisieren von Ansichten finden, z.B. per Timer in https://atnotes.de/index.php/topic,51678.0.html und https://atnotes.de/index.php/topic,9344.0.html. Allerdings ist mein Problem, dass NotesUIView.ViewRefresh die falsche View refreshed, weil die richtige in einem anderen Rahmen steckt.

Genaugenommen habe ich ein Frameset mit mehreren Frames, in einem davon ist eine normale View, in der der User üblicherweise arbeitet. In einem anderen Frame ist eine Embedded View, in der etwas automatisch auftauchen soll, sobald es in dieser View landet. Das ganze ist ein wenig zeitkritisch, daher hätte ich gerne, dass die Dokumente dort möglichst zeitnah sichtbar sind und natürlich ohne dass der User erst die View anklicken und F9 drücken muss. Die Konstruktion ist ein bisschen ähnlich, wie ein Widget mit einer View drin, nur dass das ganze in der Datenbank selbst gebaut ist.

Die Lösung mit dem Timer ist schon gar nicht schlecht, allerdings habe ich keine Möglichkeit gefunden die ViewRefresh-Methode auf diese nicht-selektierte Embedded View laufen zu lassen. SetTargetFrame und dann das Dokument refreshen hilft mir anscheinend auch nicht weiter. Prinzipiell wäre es auch möglich die DB so umzubauen, dass die View nicht embedded ist, sondern ihre eigenen Frame bekommt, aber ich fürchte da habe ich das gleiche Problem. Der Cursor ist einfach üblicherweise in einem anderen Frame.

Habe ich da denn überhaupt irgendeine Chance?

Ich komme problemlos an die Backend-View ran, entweder per Timer im Client des Users, oder per updall -T auf dem Server, aber das aktualisiert das FrontEnd nicht (die "On Refresh"-Option der View ist auf "Refresh display from top row" gestellt).

Ich komme auch an die NotesUIView ran. Die könnte ich meinem Timer mitfüttern. Aber leider bietet diese keine Möglichkeit an sich selbst zu refreshen. Das scheint wohl nur über den NotesUIWorkspace zu gehen. Und der NotesUIWorkspace interessiert sich nur für die selektierte View.

Ideen wären sehr willkommen. :-)

Gruß
Stefan

Offline MaVo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 544
  • Geschlecht: Männlich
  • Geht nicht - gibt´s nicht
Stefan, ich habe die Aktualisierung einer bestimmten embView in einem Dokument mit mehreren embView wie folgt gelöst.

Code
Set view = db.Getview("embView2")
Call view.Refresh
Call ws.Viewrefresh()
Call ws.Viewrefresh()

Viell. klappt dies auch in Framesets.
Gruß
Martin

"The man with a new idea is a Crank until the idea succeeds." - Mark Twain

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Meine Gedanken zu diesem Thema:
- Aktualisiert ein uiDoc.refresh nicht die embeddedView?
- Eventuell kann mit JavaScript ein anderes Notes-Frame aktualisieren werden.
- Die View einfach öffnen und die View mit dem Frame/Frameset verknüpfen.
- Ein Refresh mit @SetTargetFrame( targetframe ) und @Command([RefreshFrame]) durchführen.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline SD

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Über die Backend-View gehen und dann den Workspace refreshen hat mir leider nicht weitergeholfen. Die @-Formeln habe ich versucht über Evaluate einzubinden, hat aber auch nicht geholfen.

uiDoc.Refresh hat aber zum Erfolg geführt!

Ich habe den Timer jetzt aus der View rausgeworfen und in die Form eingebaut, in der die View embedded ist. Dort habe ich das richtige uiDoc zur Verfügung. Funktioniert wunderbar! Danke!

Gruß
Stefan

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz