Domino 9 und frühere Versionen > Entwicklung

Adressenetiketten aus LN erstellen

<< < (4/7) > >>

Xantox:

--- Zitat von: Axel am 20.03.03 - 13:28:13 ---Hi,

das liegt an dieser Zeile in der Routine CreateMailingLabels:

Set wrd = CreateObject ( "Word.Application"  )

Der Funktion CreateObject ist es egal ob ein Wordtask vorhanden ist oder nicht. Es wird immer ein neuer gestartet.

Ich hab' s so gelöst:

...
On Error Resume Next
Set objWord = GetObject("", "Word.Application")
If Err = 208 Then  '  Fehler 208 tritt auf wenn Word noch nicht läuft
  Err = 0
  Set objWord = CreateObject("Word.Application")
  objWord.Visible = True  'Word sichtbar machen
End If
...

Ich versuche erst auf eine bestehende Task zuzugreifen, wenn das nicht gelingt, weil Word eben noch nicht läuft, starte ich es.

Axel


--- Ende Zitat ---

Hallo Axel,

wo hast Du denn Deine Änderung im Script eingetragen? magst du vielleicht dein modifiziertes script posten?

habe ich das richtig verstanden und es wird dann nicht eine extra word-session beim erstellen der labels geöffnet, sondern die vorhandene genommen?

Bei dem script ist bei mir immer der fehler aufgetreten, das nach dem korrekten erstellen der labels und schliessen von word die wordsession sich bei den diensten nicht beendet hat. Somit ist dann immer das "temp.doc" von word geöffnet geblieben und eine fehlermeldung erscheint, das die "temp.doch" gerade in verwendung ist beim erneuten ausführen des labelagenten.

ist dieser fehler dann evtl. auch behoben?

Grüße Xantox

Axel:
Hi,

welches Script verwendest du denn? Ist eknoris oder atas Lösung?


Axel

Xantox:
ich verwende das script von eknori.

Grüße

Axel:
Hi,

du musst nur die Zeile Set wrd = CreateObject ( "Word.Application"  ) durch meine Zeilen ersetzen.

Auszug aus eknoris Script (Routine CreateMailingLabels)
 

--- Zitat ---   ...
                cr = Chr ( 13 ) & Chr ( 10 )
   wdCell = 12
   LabelCount=1    
   DivMod = 1
   
   Set db = s.CurrentDatabase
   Set dc=db.UnProcessedDocuments
   
   On Error Resume Next
                Set wrd = GetObject("", "Word.Application")
                If Err = 208 Then  '  Fehler 208 tritt auf wenn Word noch nicht läuft
                  Err = 0
                  Set wrd = CreateObject("Word.Application")
                 End If
   
                Call wrd.Documents.Add
   Call wrd.MailingLabel.CreateNewDocument ( LabelTemplate )
   wrd.visible = True
   Set doc=dc.GetFirstDocument
   
   While Not doc Is Nothing
      LabelAddress = GetListFieldValues ( doc , Line1Fields ) & cr '// Build label tex
...

--- Ende Zitat ---

Das hast du richtig verstanden. Wenn word bereits gestartet ist, wird diese Session benutzt, sonst wird Word aufgerufen.

Zu deinem anderen Problem kann ich im Moment nichts sagen, da im Orginalscript von eknori die Wordsession nicht beendet wird. Dazu bräuchte ich deinen Code.

Axel
 

Xantox:
Hallo Axel,

danke für die schnelle Antwort.
Ich werde das später gleich mal ausprobieren.


--- Zitat ---
Zu deinem anderen Problem kann ich im Moment nichts sagen, da im Orginalscript von eknori die Wordsession nicht beendet wird. Dazu bräuchte ich deinen Code.


--- Ende Zitat ---

Also mein Problem war/ist, das nachdem du deine Etiketten aus den gewünschten Kontakten über word gedruckt hast, das du dann zwar das word schliessen kannst. aber unter den diensten immer noch die winword-session läuft, die für das etikett gestartet worden ist.

durch das script wird ja für word temporär das "temp.doc" generiert, damit die adressendaten mit der vorlage von word zusammgefügt werden können.

jetzt schliesst du die wordanwendung, die winword-session bleibt geöffnet und somit auch das "temp.doc". jetzt möchte der user weitere etiketten drucken und das bricht dann mit der fehlermeldung ab, das das temp.doc bereits in verwendung sei.

jetzt kann ich natürlich meinen usern nicht erzählen, sie sollen in den task-manager gehen und alle ihre winwordsessions beenden ;)

daher suche ich noch die lösung zu diesem problem *g* :)

Grüße

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln