Autor Thema: Frontend mit eingebetteter Ansicht aktualisieren  (Gelesen 4774 mal)

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Frontend mit eingebetteter Ansicht aktualisieren
« am: 15.12.09 - 10:11:23 »
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

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Frontend mit eingebetteter Ansicht aktualisieren
« Antwort #1 am: 15.12.09 - 11:19:58 »
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

  • Gast
Re: Frontend mit eingebetteter Ansicht aktualisieren
« Antwort #2 am: 15.12.09 - 18:19:59 »
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

Offline cg-home

  • Aktives Mitglied
  • ***
  • Beiträge: 172
  • Geschlecht: Männlich
  • atnotes = Retter in der Not
Re: Frontend mit eingebetteter Ansicht aktualisieren
« Antwort #3 am: 15.12.09 - 21:02:33 »
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] )

Vielleicht klappt es ja mit einem
Code
Call notesUIWorkspace.ReloadWindow( )
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

Zitat
In der Statuszeile erscheint die Meldung "Kategorie nicht gefunden"
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
11     Server R11.0.1FP3 - Windows Server 2012R2
700   Clients R11.0.1FP3 - Windows Server 2012R2 über Citrix
Traveler R11 | PowerTools 14 | Ytria | DomNavigator

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Frontend mit eingebetteter Ansicht aktualisieren
« Antwort #4 am: 05.01.10 - 21:01:18 »
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
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline cg-home

  • Aktives Mitglied
  • ***
  • Beiträge: 172
  • Geschlecht: Männlich
  • atnotes = Retter in der Not
Re: Frontend mit eingebetteter Ansicht aktualisieren
« Antwort #5 am: 06.01.10 - 06:15:06 »
Hallo Roland,

klingt gut, werde ich beim nächsten mal auf jedenfall mal testen.

mfg Christian
11     Server R11.0.1FP3 - Windows Server 2012R2
700   Clients R11.0.1FP3 - Windows Server 2012R2 über Citrix
Traveler R11 | PowerTools 14 | Ytria | DomNavigator

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Frontend mit eingebetteter Ansicht aktualisieren
« Antwort #6 am: 06.01.10 - 13:05:24 »
Hallo Roland,

deinen Tip habe ich nun einmal ausprobiert:

   Dim ws As NotesUIWorkspace
   Dim uidoc As notesuidocument
   Dim uidocWVNew As notesuidocument
   
   Set ws=New notesuiworkspace
   Set uidoc=ws.CurrentDocument   
   
   Set uidocWVNew=ws.Composedocument("", "", "WiedervorlageM1D")
   Call uidoc.Refresh

Das funktioniert bei Dokumenten die ich nach der Änderung neu erstellt habe. Bei vorhandenen alten Dokumenten bleibt es dabei, dass erst ab dem zweiten Dokument beide von alleine angezeigt werden.
Damit bin ich nun ein Stück weiter. Vielen Dank für den Tipp.

Frohes neues Jahr,

Bernd

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Frontend mit eingebetteter Ansicht aktualisieren
« Antwort #7 am: 07.01.10 - 13:41:15 »
Das funktioniert bei Dokumenten die ich nach der Änderung neu erstellt habe. Bei vorhandenen alten Dokumenten bleibt es dabei, dass erst ab dem zweiten Dokument beide von alleine angezeigt werden.
Damit bin ich nun ein Stück weiter. Vielen Dank für den Tipp.

Frohes neues Jahr,

Das verstehe ich jetzt nicht ganz. Heisst das, wenn du bereits vorhandene Dokumente aktualisierst, diese in der Ansicht nicht "gerefreshed" werden? Aber so wie du schreibst, hat die Umstellung auf "berechnet" schon mal einen Teilerfolg gebracht?

Dir auch noch ein frohes neues Jahr  :)
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Hatschi

  • Junior Mitglied
  • **
  • Beiträge: 96
Re: Frontend mit eingebetteter Ansicht aktualisieren
« Antwort #8 am: 12.01.10 - 12:54:35 »
Hallo Roland,

das wird noch kurioser:
-altes Dokument
-nicht im Modus bearbeiten
-neue Wiedervorlage erstellen
---> Die eingebettete Ansicht wird richtig angezeigt.

Bin ich dagegen im Modus Bearbeiten, funktioniert es mit der Aktualisierung der Anzeige nicht mehr richtig.

Aber du hast Recht, mit deinem Hinweis habe ich einen Teilerfolg erzielt. Das reicht mir erst einmal für mein Problem.

Bernd

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz