Autor Thema: offenes Wordfenster als Wordobject definieren  (Gelesen 1572 mal)

Offline dgerhardt

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
offenes Wordfenster als Wordobject definieren
« am: 17.10.05 - 11:47:55 »
Hallo,

Word ist mal wieder als Thema dran... ;D

Ich möchte eine offene Wordsession (wurde aus einem anderen Lotus Script heraus erstellt) in einem Uidoc im Querysave-Event laden, um das Objekt anschließend als Attachment einzubetten.

Wie bekomme ich nun das offene Wordfenster als Objekt?

In der Notes-Maske ist deklariert: public wd_doc as variant

Postopen: Set wd_doc = nothing
Querysave: ???

Ich habe schon viel im Forum gestöbert, aber bisher nichts passendes gefunden...

Gruß

Dirk

mit besten Grüßen

Dirk Gerhardt

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: offenes Wordfenster als Wordobject definieren
« Antwort #1 am: 17.10.05 - 11:55:44 »
vermutlich mit GetObject. Dann musst du aber bei mehreren geöffneten Dokumenten das richtige finden.
In welchem Kontext wird denn das Word-Objekt von dem anderen Skript erzeugt? Evtl. kannst du ja dieses Objekt weiterverwenden...
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline dgerhardt

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
Re: offenes Wordfenster als Wordobject definieren
« Antwort #2 am: 17.10.05 - 12:15:41 »
Kontext... ja das war ja das problem...

Ich habe aus dem Notesdokument heraus ein neues Worddokument erstellt mittels vorlage. Dieses Script lief ganz gut, hatte aber unter gewissen Umständen (User hat im Hintergrund in einer View über ein Dokument-Kontext ein neues Notesdokument erzeugt) eine Redbox verursacht.  >:D

Ich habe nach langen Testreihen feststellen müssen, daß der Befehl "call uidoc.save" zu der Meldung "Panic: Lookup handle not found" führte. *

Umgehen kann ich das ganze nur, wenn nicht uidoc.save sondern die @Funktion @Command([FileSave]) genutzt wird.  So lagerte ich also den Wordaufruf (LotusScirpt) in einen Agenten aus, den ich via @Function @Command(RunMacro]) ausführe. Das funktioniert auch wie vorher, nur das der Agent den Objekthandle von Word für sich behält und dieser nicht mehr an das geöffnete Dokument übergibt. ???

In der dazugehörigen ScriptLib ist wd_doc als Public gesetzt. Ich dachte, dann muß wd_doc doch auch weiterhin greifbar sein. Tja... wohl nicht...

Nun erzeugte ich das Wordobject via Agent in die Variable "wd_docsave" und hoffte darauf, daß ich dieses Object zu einem späteren Zeitpunkt wieder in das NotesDoc als wd_doc übertragen könnte... Genau das habe ich nicht hinbekommen, sonst wäre das vielleicht auch eine Lösung.

Die Frage, das Wordobject dann später eben reinzuholen habe ich dann der Einfachkeit halber gepostet.

* bekannter Bug in Notes nach Recherchen im IBM-Supportforum
mit besten Grüßen

Dirk Gerhardt

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: offenes Wordfenster als Wordobject definieren
« Antwort #3 am: 17.10.05 - 12:55:56 »
Hört sich ja zum fürchten an  :o
Der Agent und die Maskenevents haben keine gemeinsamen globalen Variablen.
Eine Möglichkeit bestände darin, den Code des Agenten in das Querysave zu schreiben und die Ausführung an ein flag knüpfen.
Das Flag kannst du beispielsweise als Feld realisieren.
Die Schalftläche, die den Agenten aufgerufen hat, weist dem Feld den Wert "YES" zu und machst ein Filesave (beides mit Formelsprache)

Dann im Querysave:
if doc.getItemValue("flagWord")(0) = "YES" then
   doc.replaceItemValue("flagWord") = "NO"
   ... Aktionen mit Worddokument

Hoffe es hilft

Axel 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline dgerhardt

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
Re: offenes Wordfenster als Wordobject definieren
« Antwort #4 am: 17.10.05 - 13:00:57 »
@Axel

genau das hatte ich gerade vor.

Im Querysave öffne ich dann einfach das wd_doc mit
objWord.GetObject("",Winword.Application)

Ich hoffe nur, das dann wd_docsave nicht noch im Speicher steht...
mit besten Grüßen

Dirk Gerhardt

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: offenes Wordfenster als Wordobject definieren
« Antwort #5 am: 17.10.05 - 14:42:31 »
Das folgt eigentlich schon klaren Regeln, ob man auf die Variable noch zugreifen kann. Hoffen ist also vielleicht nicht ganz das richtig Wort.
Die Variablen in den Maskendeklarationen sind global für die Maske.
 
Leider kann man Variablen nicht für eine gesamte Datenbank global deklarieren. Da muß man teilweise ein bischen rumtricksen. Und das mußte ich auch einige Male machen. Aber in nur ganz seltenen Fällen hilft wirklich nix anderes mehr als die Werte in die Notes.ini oder ein persönliches Profildokument zu schreiben.
 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz