Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: udo187 am 03.05.12 - 16:38:52

Titel: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: udo187 am 03.05.12 - 16:38:52
Hallo liebe Atnotes-Gemeinde !

Folgendes Problem: Maske A in Datenbank A mit einer eingebetteten Ansicht mit Dokumenten der Datenbank B kategorisiert nach Fullname & "Show single category" mit @Username, der "Normaluser" hat nur Leserechte auf die Dokumente der Datenbank A (Autor in Datenbank B).
Mittels Skript erstellt nun der Normaluser mittels Button in der Maske A (kein Button in der eingebetteten Ansicht!) ein neues Dokument in der Datenbank B. Dokument wird problemlos erstellt, nur wird die eingebettete Ansicht nicht aktualisiert. Mittels F9 erscheint dann das neue Dokument in der Ansicht.
Workspace.ViewRefresh bringt nix, ein Uidoc.Refresh ist beim Normaluser nicht möglich, da ja nur Leserechte. Wobei ein Uidoc.Refresh (wenn Schreibrechte vorhanden) zu unkontrollierten Notes-Abstürzen führt (über dieses Problem wurde schon in anderen Beiträgen diskutiert).

Gibts irgendeine Lösung / Trick / Würgaround für dieses Problem ?
Bin für jeden Hinweis dankbar !

Notes Version 8.5.2


Danke im Voraus für die Antworten !
Gruss Udo
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: Peter Klett am 03.05.12 - 16:51:43
Hast Du mal versucht, das Script, das aus dem Button das neue Dokument erstellt, in einen Agenten zu verlagern, der auf markierte Dokumente angewendet wird und den dann über den Button zu starten? Solch ein Agent aktualisiert anschließend normalerweise die aktuelle Ansicht.

Ob der sich aus dem geöffneten Dokument aufrufen lässt und ob der die eingebettete Ansicht aktualisiert, weiß ich nicht, habe ich nicht probiert. Ist nur eine Idee ...
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: udo187 am 03.05.12 - 16:58:35
Hallo Peter,

danke für die Antwort!
Das hab ich noch nicht versucht, werde es ausprobieren und berichten.

LG
Udo
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: pram am 04.05.12 - 01:10:51
- Ein "Reopen" wäre evtl eine Lösung
- Oder das Verlagern des Buttons in die Ansicht (im QueryOpen der embedded-Ansicht sich die View merken und dann im Button darauf den Refresh aufrufen)

probier auch mal anstatt:
  @username
folgendes
  @username + ""
in der "show single category"-Eigenschaft
Ich habe hier schon mal das Verhalten beobachtet, dass sich das ws.viewRefresh bzw F9-Verhalten ändert, wenn da ein "konstanter Wert" und keine Formel drin steht. (wobei @username ja schon eine Formel ist, aber ein Versuch ist es wert )

Gruß
Roland
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: udo187 am 04.05.12 - 09:57:19
Guten Morgen !

Danke an Peter & Roland für die Tipps.
Ich habe nun alle Vorschläge getestet:

- Code in Agent auslagern -> negativ
- show single category"-Eigenschaft berechnen -> negativ
- verlagern des Buttons in die Ansicht und somit eine Verlagerung des Codes in die Datenbank B -> nicht getestet da der gleiche Code (Verzweigungen innerhalb des Codes) auch in der Maske A von Autoren aufgerufen wird, Code müßte daher dupliziert werden (Pflegeaufwand)
- Reopen -> funktioniert  :)

Da die eingebettete Ansicht sich auf einer Tabelle mit Registern befindet, mußte ich diese noch auf "Zeile programmgesteuert wechseln" umstellen und das entsprechende Register beim Reopen "anspringen" (damit die User nicht zu sehr verwirrt werden...).
Uidoc.GotoField funzt ja nicht da die User ja nur Leserechte haben...

Diese Lösung funktioniert wobei ein funktionierendes wes.viewrefresh natürlich vorzuziehen wäre.

Sollte jemanden noch was einfallen bitte melden  ;)

Danke & LG
Udo
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: Tode am 04.05.12 - 10:09:17
Mal probiert mit einem NotesUIWorkspace.ReloadWindow oder @Command( [ReloadWindow])?
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: Peter Klett am 04.05.12 - 10:14:18
...
- verlagern des Buttons in die Ansicht und somit eine Verlagerung des Codes in die Datenbank B -> nicht getestet da der gleiche Code (Verzweigungen innerhalb des Codes) auch in der Maske A von Autoren aufgerufen wird, Code müßte daher dupliziert werden (Pflegeaufwand)
...
Auslagern des Codes in eine Scriptbibliothek in Schablone der Datenbank A, kopieren der Scriptbibliothek in Schablone der Datenbank B, Vererbung der Bibliothek aus Schablone A. Ergebnis: Redundante Bibliothek, aber keine doppelte Pflege durch Designtask. Änderungen nur in Schablone A.

EDIT: Das geht natürlich auch mit jedem anderen Gestaltungselement, z.B. einem Agenten
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: udo187 am 04.05.12 - 10:35:42
...NotesUIWorkspace.ReloadWindow habe ich bereits leider ebenfalls ohne Erfolg probiert.

Ein wes.viewrefresh oder @Command([ViewRefreshFields]) bringt auch nur dann etwas wenn dieser Befehl in der eingebetteten Ansicht eingebunden ist, braucht also den Fokus.
(direkt in Maske A oder über den aufgerufenen Code -> ohne Erfolg).

@Peter: Danke für den Tipp bezüglich der Vererbung !

Udo
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: pram am 04.05.12 - 12:20:20
Da die eingebettete Ansicht sich auf einer Tabelle mit Registern befindet, mußte ich diese noch auf "Zeile programmgesteuert wechseln" umstellen und das entsprechende Register beim Reopen "anspringen" (damit die User nicht zu sehr verwirrt werden...).
Uidoc.GotoField funzt ja nicht da die User ja nur Leserechte haben...
Du kannst im Lesemodus den Tab über "programmatisch gesteuerte Tabellen" umschalten.

Gruß
Roland
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: udo187 am 07.05.12 - 06:38:39
Hallo Roland !

Danke, genau so mache ich es.

Gruß
Udo
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: ata am 07.05.12 - 08:52:34
...NotesUIWorkspace.ReloadWindow habe ich bereits leider ebenfalls ohne Erfolg probiert.

... das steht so auch in der Hilfe:
Zitat
Modifications made to the back-end document outside the current editing session (for example, by an agent or another user) do not appear until the document is closed and reopened.
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: udo187 am 07.05.12 - 09:00:26
Man(n) versucht halt alles um zum Ziel zu kommen  ;)
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: ata am 07.05.12 - 09:20:30
... den ReOpen verwende ich in solchen Fällen - zuckt zwar kurz, aber tut...

  ;)
Titel: Re: Eingebettete kategorisierte Ansicht aktualisieren (wieder mal...)
Beitrag von: udo187 am 07.05.12 - 10:14:50
Ja, das Reopen funzt.
Danke an alle für die Hilfe !

Gruß Udo