Autor Thema: Eingebettete Ansicht - das erste Dokument in NotesPreview automatisch anzeigen  (Gelesen 3472 mal)

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Hallo !

Ich hatte folgendes Problem mit einer eingebetteten Ansicht und der Preview - vielleicht kann jemand diesen Lösungsweg brauchen:

Eine Rahmengruppe, links der NotesNavigator, rechts eine Rahmengruppe mit 2 Rahmen, der obere (NotesView) für die Ansichten und der untere für die Vorschau (NotesPreview).

Wenn nun Links im NotesNavigator ein Gliederungseintrag (Ansicht) ausgewählt wird, sehe ich rechts die Dokumente und rechts unten die Vorschau.
Soweit so gut, doch ich habe auch eine Seite mit einer eingebetteten kategorisierten Ansicht - einzelne Kategorie anzeigen mit @Username - in die Gliederung eingebunden.
Die NotesPreview zeigte beim Öffnen dieser Seite leider nicht die Vorschau auf das erste Dokument der Ansicht. Leider auch nicht eine leere Preview, sondern das in der zuvor geöffneten Ansicht gewählte Dokument.
Erst beim Selektieren eines Dokumentes in der eingebetteten Ansicht der Seite  zeigte die richtige Vorschau.

Und dies führte bei Usern zu Verwirrung da er "oben" seine eigenen richtigen Dokumente sieht und in der Preview ein anderes.

Einen eigenen Rahmen ohne Preview wollte ich nicht, sondern es sollte in der Preview das erste Dokument der eingebetteten Ansicht angezeigt werden.

Natürlich habe ich dieses Forum durchforstet, habe aber keine Lösung gefunden bzw. bin auf diverse Probleme mit eingebetteten Ansichten und Fokus, selektieren von Dokumenten, etc. gestossen.

Bei der folgenden Lösung wird in der eingebetteten Ansicht kein Dokument selektiert, sondern es wird zuvor das Dokument, welches in der
Preview angezeigt werden sollte, per Agent "gesucht" und dann in der gewünschten Ansicht per Call uiview.SelectDocument(doc) selektiert.
Somit wird es in der Preview korrekt angezeigt !

In der Seite mit der eingebetteten Ansicht muss im Queryopen folgender Code hinterlegt werden:

@Command([ViewChange]; "$FullNameUser");
@Command([ToolsRunMacro];"SetFocus")

wobei die Ansicht "$FullNameUser" die Ansicht mit den Dokumenten ist die dann in der Preview angezeigt werden sollten, erste Spalte mit Fullname aufsteigend sortiert, und der Agent macht folgendes:

Sub Initialize
   Dim ses As New NotesSession
   Dim wes As New NotesUIWorkspace
   Dim db As NotesDatabase   
   Dim col As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim uiview As NotesUIView
   Dim view As NotesView
      
   Set db = ses.currentdatabase
   Set view = db.GetView("$FullNameUser")
   Set col = view.GetAllDocumentsByKey(ses.username)
   Set doc = col.GetFirstDocument
   Set uiview = wes.CurrentView
   If Not (doc Is Nothing) Then
      Call uiview.SelectDocument(doc)
   End If
End Sub


Getestet unter Notes Version > 8.0 - funktioniert wie gewünscht.

Für Feedback & Anregungen - ein "alter Hase" sieht mehr als ein "Frischling" - bin ich natürlich dankbar !

LG
Udo


Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... für mich sind das 2 Stellen, an denen ich ansetzen würde:

1. Im PostOpen der Maske mit der eingebetteten Ansicht
2. In den Events der EmbeddedView TargetFrame(Single click), ...(double click)

Ohne es bisher so gemacht zu haben - aber so wäre mein Ansatz um das sauber zu halten.

Toni
Grüßle Toni :)

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Hallo Toni !

Danke für deine Antwort.
Wenn ich in der eingebetteten Ansicht ein Dokument (manuell) auswähle, so funktioniert die Voransicht ohne Probleme. Das Problem ist der Wechsel zwischen einer normalen Ansicht (wo irgendein Dokument markiert ist und somit in der Vorschau angezeigt wird) und der Seite mit der eingebetteten Ansicht. In der eingebetteten kategorisierten Ansicht ist direkt nach dem Wechsel kein Dokument selektiert, der User sieht aber nur seine eigenen (einzelne Kategorie anzeigen @Username), in der Vorschau sieht er aber ein anderes, eben das was zuvor in der anderen Ansicht selektiert war. Und dies führt zu Verwirrung.
Daher dieser Trick mit "uiview.SelectDocument(doc)" mit zuvor mittels Agent ermittelten doc. Somit wird in der Vorschau auch das richtige Dokument (in meinem Fall immer nur 1 Hauptdokument pro User) angezeigt dass auch oben in der eingebetteten Ansicht (1 Hauptdokument und mehrere Antworten) zur Auswahl stehen.
Das Problem ist irgendwie schwer zu beschreiben wenn man(n) es nicht selbst hat, ich kann am Montag einen Screenshot anhängen.


LG
Udo

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... beim Öffnen des Dokumentes mit der eingebetten Ansicht ist kein Dokument per Default selektiert, daher müsstest du beim Öffnen im PostOpen des Dokumentes ermitteln, welches Dokument das erste in der Kategorie ist und dies dann dem Preview-Frame unterschieben ...
Grüßle Toni :)

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
ja genau das ist das Problem.
Und ich löse dies auf oben beschriebene Weise.

Ob dieser Weg so "gut" ist kann ich nicht sagen.
Wie würdest du das machen ?

LG
Udo

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... deine Lösung ist so weit gut - das Problem mit Version 8.x ist, daß es Sachen gibt, die noch nie funktioniert haben, aber andererseits auch Sachen die bisher immer funktionierten jetzt nicht mehr gehen. Ich habe mitlerweile schon Versionsverzweigungen im Code - und darüber bin ich alles andere als glücklich. Wer weiß, was mit der nächsten Version wieder anders abgefangen werden muß...
Grüßle Toni :)

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Was die Zukunft bzw. die nächste Version bringt werden wir alle früher oder später feststellen (müssen). Die Gefahr bei solcher kleinen "Stunts" ist mir bewußt, ich habe aber keine andere Lösung gefunden. Am einfachsten wäre es - meiner Meinung nach - wenn der Fokus in der eingebetteten View gesetzt werden kann - dann stimmt auch die Preview.
Einige Beiträge hier in diesem wunderbaren Forum haben sich zu diesem Thema mit "sendkey" beschäftigt (wobei sendkey im Notes selbst lt. Hilfe ja nicht funktioniert ?)
- aber alle mit keiner wirklichen Lösung.

Danke Toni für dein Feedback & schönen Abend noch !

LG
Udo

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... den wünsche ich dir auch. Was funktioniert, ist zunächst nicht schlechter als das bisherige  ;)
Am einfachsten wäre gewesen, wenn es weiter wie bisher funktionieren würde. Ich hatte heute wieder das Erlebnis, daß bisherige Toleranzen und Limits jetzt empfindlicher sind - da müssen wir wohl oder übel durch...
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz