Autor Thema: Dokument über Code aktualisieren  (Gelesen 1332 mal)

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Dokument über Code aktualisieren
« am: 21.11.05 - 08:57:42 »
Guten Morgen allerseits,

Dokument2 (Child) schreibt per Code (LotusScript) Werte in Felder von Dokument1 (Parent). Dadurch ändern sie für grafische Elemente (im konkreten Fall eingefügte Bilder) die HideWhen Bedingungen.

Wenn Dokument2 dann geschlossen und Dokument1 wieder angezeigt wird dann werden die Elemente erst dann angezeigt / ausgeblendet wenn ich an eine Stelle innerhalb des Dokuments klicke / doppelklicke.

In den Maskeneigenschaften von Dokument1 ist "Felder automatisch aktualsieren" aktiviert.

Über LS soll ja so ziemlich alles möglich sein.... wie kann ich ein 'Refresh' an ein Dokument senden um die Überprüfung der HideWhen Bedingungen anzustoßen?

Es gibt ja die Klasse NotesUIDocument mit der Methode Refresh, aber mein Parent-Objekt hat diese Methode nicht.

Viele Grüße,

Andreas
« Letzte Änderung: 21.11.05 - 09:01:07 von Andreas Huhn »

Offline stitze

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
    • kleisterbande
Re: Dokument über Code aktualisieren
« Antwort #1 am: 21.11.05 - 09:55:38 »
Dann würde ich mal vermuten, das dein Parent Document als NotesDocument vorliegt und nicht als NotesUIDocument.

Mfg

Sebastian
« Letzte Änderung: 21.11.05 - 10:01:08 von stitze »
When i loaded my cap gun , i'm ready for action.

Saying that Java is nice because it works on all OS's is like saying anal sex is nice because it works on all genders.

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Dokument über Code aktualisieren
« Antwort #2 am: 21.11.05 - 09:58:16 »
NotesUIWorkspace.ReloadWindow
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Dokument über Code aktualisieren
« Antwort #3 am: 21.11.05 - 10:02:10 »
Grüß dich Sebastian,

du vermutest richtig. Aber wenn ich es als UIDoc um deklariere meldet der Code schon beim speichern Fehler, weil ich anscheinend im Verlauf des Programms Methoden nutze die UIDoc nicht hat.
Deshalb hätte ich versucht mir ein neues Objekt zu erstellen, aber da weiß ich nicht wie ich an das Parent-Handle heran komme.



Sub Postsave(Source As Notesuidocument)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim response As NotesDocument
   Dim parent As NotesDocument
                Dim parentUI As NotesUIDocument
   
'...set value of response...
   Set db = session.CurrentDatabase
   Set response = source.Document
   
   Set parent = db.GetDocumentByUNID ( response.ParentDocumentUNID )
                Set parentUI =    

   If parent.BStatus_1(0) = "1"
   
   Call parent.Save(True , False)
   
'...
End Sub

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Dokument über Code aktualisieren
« Antwort #4 am: 21.11.05 - 10:05:42 »
Um den Handle auf das UIDokument zu bekommen kannst Du nur ein uiWorkspace.editDocument versuchen.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Dokument über Code aktualisieren
« Antwort #5 am: 21.11.05 - 10:21:24 »
Hallo auch Thorsten und Urs,

NotesUIWorkspace.ReloadWindow bringt das Fenster leider nicht dazu die Elemente vor dem obligatorischen Klick ins Doc zu aktiualisieren.


Call workspace.EditDocument(, parent , , ,True) öffnet mit den Parent noch ein zweites Mal in einem neuen Fenster.



Nur so eine Idee:
Ein Druck auf F9 aktualisiert das Dokument auch. Wär es vielleicht ein Weg mittels SendKeys ein F9 gezielt an ein Fenster zu schicken?

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Dokument über Code aktualisieren
« Antwort #6 am: 21.11.05 - 13:15:23 »
Der Aufruf:

Call workspace.EditDocument(, parent , , , True ,False)

sollte eigentlich das machen was ich möchte. Der letzte Parameter bestimmt ob eine neue Instanz (des zweiten Parameters) erstellt werden soll. In der DesignerHelp steht daß der Focus auf eine bereits existierende Instanz gesetzt wird, falls diese vorhanden ist.

Da sich bei mir ein neues Fenster aufmacht scheint Notes zu glauben daß noch keine offen ist.

Aber der Parameter Parent enthält das Dokument, weil ich die gleiche Objektvariable ja erfolgreich dazu benutze Feldwerte im Doc zu verändern.

Was mache ich falsch? Könnt ihr mir helfen?


   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim response As NotesDocument
   Dim parent As NotesDocument

   Set db = session.CurrentDatabase
   Set response = source.Document
   
   Set parent = db.GetDocumentByUNID ( response.ParentDocumentUNID )

                ....

                Call workspace.EditDocument(, parent , , , True ,False)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz