Das Notes Forum

Lotus Notes / Domino Sonstiges => Tipps und Tricks => Thema gestartet von: Axel am 20.10.03 - 12:50:44

Titel: Klasse für Word-Automation
Beitrag von: Axel am 20.10.03 - 12:50:44
Hi,

um die Automation und den Datenaustausch von Notes nach Word zu vereinfachen habe ich mir ein paar Klassen geschreiben. Sie stellen Grundfunktionen, wie z.B. Erstellen von Dokumenten auf Basis von Vorlagen, Datenübergabe, Formatieren von Text und Serienbrieffunktion zur Verfügung. Diese Klassen will ich euch nicht vorenthalten.

Die Demo-DB findet ihr hier: http://atnotes.de/index.php/topic,51236.msg329259.html#msg329259 (http://atnotes.de/index.php/topic,51236.msg329259.html#msg329259)

Edit: Link entfernt und Verwies auf Thread im Forum eingerichtet.

Axel
Titel: Re:Klasse für Word-Automation
Beitrag von: eknori am 20.10.03 - 12:57:53
gute Arbeit, besten Dank !!
Titel: Re:Klasse für Word-Automation
Beitrag von: Axel am 20.10.03 - 17:19:40
Hi,

danke für die Blumen.  ;D ;D :-*

Eine Erweiterung habe ich schon in der Schublade. Wenn sie "salonfähig" ist, wird sie veröffentlicht.

So eine Klasse gibt's in Ansätzen auch schon für Excel. Ist aber noch nicht ganz reif.

Axel

 
Titel: Re:Klasse für Word-Automation
Beitrag von: Semeaphoros am 20.10.03 - 17:33:05
Ja, kann mich Ulrich anschliessen, gute Arbeit, danke.

Eine Frage: Aktivieren in Vollbild, funktioniert das korrekt, wenn mehrere Word-Fenster offen sind?

Den Destruktor solltest Du entweder weglassen oder dann DELETE objWord. Das Setzen auf Nothing könnte theoretisch zu einem Memory-Leak führen.
Titel: Re:Klasse für Word-Automation
Beitrag von: Axel Janssen temp am 20.10.03 - 17:47:15
 danke 8)
Titel: Re:Klasse für Word-Automation
Beitrag von: fritandr am 21.10.03 - 14:09:46
Hallo Axel,

schön mal wieder ein paar Beiträge von Dir zu sehen.

Nervt Dich .NET so, daß Du hier Klassen zur Verfügung stellen kannst/musst?
Auf alle Fälle ein herzliches Dankeschön für die tolle Muster-DB  ;D .

Viele Grüße
Andreas

Titel: Re:Klasse für Word-Automation
Beitrag von: Axel am 21.10.03 - 16:21:14
Hi,

vielen Dank für die vielen positiven Reaktionen. Das ermutigt weiter zu machen. Mal sehen was so in der Zukunft noch aus der Feder fließt. Viel hängt auch von den konkreten Anforderungen in der Firma ab.

@Semeaphoros
Vielen Dank für den Hinweis


@fritandr

Zitat
schön mal wieder ein paar Beiträge von Dir zu sehen.

Ich kämpfe immernoch gegen eine heimtückische Krankheit, so dass ich ein bisschen gehandicapt bin. Bin schon seit ca. 8 Wochen krank geschrieben. Sowie es mir einigermaßen geht befasse ich mich ein wenig mit der Materie um drin zu bleiben. Ich hoffe aber, dass ich das Schlimmste überstanden habe.

.Net nervt durchaus nicht. In finde es sehr interessant sich damit zu beschäftigen, wenn auch im Moment nur auf Anwendungsebene (also ohne Internet). Aber Notes bleibe ich auf jeden Fall treu solange wie es in der Firma eingesetzt wird. Ausserdem gibt es die Klasse schon einige Zeit und sie hat mir schon gute Dienste geleistet. Fast alles was bei uns aus Notes-Datenbanken heraus gedruckt wird, Korrespondenz, Referenzlisten u.ä. habe damit realisiert.

Axel


Titel: Re:Klasse für Word-Automation
Beitrag von: Axel am 22.10.03 - 13:19:05
Ja, kann mich Ulrich anschliessen, gute Arbeit, danke.

Eine Frage: Aktivieren in Vollbild, funktioniert das korrekt, wenn mehrere Word-Fenster offen sind?


Hi,

ich hab's mal probiert. Es wird immer das richtige Fenster, auch wenn mehrere offen sind, aktiviert.


Axel
Titel: Re:Klasse für Word-Automation
Beitrag von: Semeaphoros am 22.10.03 - 15:33:50
Manchmal darf man dann doch auch über MS staunen ....


Ach so, ist eigentlich klar, über die Object-Variable hat Notes natürlich ein Handle zum betreffenden Word-Window, deshalb funktioniert es, ich war der irrigen Annahme ausgegangen, dass das über den Titel zu geschehen hat (wie das bei VBA zum Teil funktioniert und mir dort schon gewaltig Schwierigkeiten bereitet hat, wenn man mehrere Dokumente gleichzeitig halten muss). Danke fürs Ausprobieren.
Titel: Re:Klasse für Word-Automation
Beitrag von: Axel am 23.10.03 - 10:32:33

Den Destruktor solltest Du entweder weglassen oder dann DELETE objWord. Das Setzen auf Nothing könnte theoretisch zu einem Memory-Leak führen.


Hi,

ich hab's mal getestet. Ich darf im Destruktor nicht DELETE objword verwenden. Sonst bekomme ich eine Fehlermeldung "Illegal Delete".

Meines Wissen wird, mit der Zuweisung von Nothing eine Variable als ungültig gekennzeichnet und Notes schmeißt sie bei nächster Gelegenheit aus dem Speicher. Ich werde mal noch ein bisschen auf die Suche gehen. Vielleicht finde ich ja noch ein paar Infos. Für den Fall das, werde ich es euch wissen lassen.

Ich setze die Klasse bisher in mehrere Datenbanken ein und diese werden intensiv genutzt. Mir sind bisher noch keine Schwierigkeiten untergekommen.

Axel
Titel: Re:Klasse für Word-Automation
Beitrag von: Semeaphoros am 23.10.03 - 11:13:27
Dann lass das Ding am besten weg. Wahrscheinlich darf man in dem Falle den Delete gar nicht innerhalb der Class verwenden, würd ich mal meinen. Notes sollte allerdings die Members einer Klasse auch wirklich selber korrekt abräumen, ohne dass man das im Destructor nochmal machen müsste
Titel: Re: Klasse für Word-Automation
Beitrag von: Doc am 06.01.05 - 13:16:02
Hallo Notes Gemeinde,
hab die class von Axel nun auch einmal versucht, aber ich bekomme einen Fehler, den ich nicht verstehe.

Fehler Hinweis:  "Microsoft Word:  Das angeforderte Element ist nicht in der Sammlung vorhanden".

Word öffnet sich im Hintergrund mit der "Brief.dot" jedoch ohne die Maskenfelder zu füllen.

Ich weiss der letzte Beitrag ist schon etwas länger her zu diesem Thema aber, vielleicht hat ja jemand einen Tipp. Mit der Demo Datenbank funktioniert es hingegen einwandfrei.
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 06.01.05 - 18:15:56
Hi,

das kann zum Beispiel eine fehlende Textmarke oder ein fehlendes Formularfeld sein. Überprüfe mal deine Fromularfelder und deinen Code, ob die Namen der Formularfelder und die Schreibweise im Code identisch sind.

Du kannst auch mal den Code posten. Markiere bitte die Stelle an der der Fehler auftritt. Das lässt sich mit dem Debugger einfach feststellen.

Axel
 
Titel: Re: Klasse für Word-Automation
Beitrag von: Doc am 10.01.05 - 08:43:28
Hallo Axel,
danke für die Antwort, hatte bis jetzt noch keine Zeit, werde es mir heute mal ansehen und nach deinen Angaben prüfen.

Gruss
Werner


Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 25.04.05 - 08:56:21
Hallo liebe Gemeinde,

da auch mein Chef nun mit Serienbriefvorlagen arbeiten möchte, möchte ich es nicht auslassen zur bereitgestellten NotesToWord zwei Fragen zu stellen ;D

1) Ist es schon jemandem gelungen mehrere Vorlagen zur Verfügung zu stellen? Sprich eine Auswahl zu erhalten?

2) Adressauswahl auf das persönliche bzw öffentliche Adressbuch?! Hier sind leider Personinformationsdokumente vorgegeben die einen Pflegeaufwand beinhalten!

Vielen Dank für euer feedback

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 25.04.05 - 09:10:12
Hi,

zu 1.
Da gibt es zwei Möglichkeiten.

1. Die Vorlagen im Filesystem (z.B. auf dem Server) zur Verfügung stellen und eine Auswahlliste (z.B. Prompt) fest verdrahten.
 
2. Das ist die komfortablere Alternative. Man legt sich Dokumente an mit jeweils der Vorlage in einem RTF-Feld und einem sprechenden Titel in einem Textfeld. In einer Picklist (oder Prompt) lässt man den User auswählen und löst die entsprechende Vorlage in ein temp. Verzeichnis.


zu 2.

Die mitgelieferte DB dient nur zu Demozwecken wie die Methoden der Klasse einzusetzen sind. Eine Integration in die Notes-Adressbücher sollte ohne Probleme machbar sein.


Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 25.04.05 - 12:14:51
Danke @ Axel ...

doch eines würde mich noch immer interessieren! Im strVorlage = FileDetach("Serienbrief") ist ein die Vorlage hinterlegt. Wenn ich nun die Vorlage doppelle und die Vorlage in "Sereinbrief2" umbename und strVorlage = FileDetach("Serienbrief") durch strVorlage = FileDetach("Serienbrief2") ersetze, funzt die Geschichte leider nicht!

Object Variable not set .... !!

Warum das? Was habe ich übersehen?

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 25.04.05 - 13:08:36
Hi,

hast du auch den Titel des Dokumentes, an dem die Vorlage hängt entsprechend umbenannt? Der Parameter von FileDetach ist nicht der Dateiname, sondern der Titel des Dokumentes.


Axel
 
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 09:53:17
 :o .. vielen Dank ... hatte ich mich wohl vertan! Vielen Dank

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 10:24:30
Oh .. sage mal lieber Axel ...

ich verstehe die Funktion der Steuerdatei nicht! Warum gibt es die und warum ist es mir erlaubt eine weitere Steuerdatei als Vorlage zu erstellen?

Vielen Dank

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 28.04.05 - 12:24:11
Oh .. sage mal lieber Axel ...

Oh...., warum so förmlich, da krieg ich ja schon ganz rote Ohren  :o


Die Steuerdatei beinhaltet die eigentlichen Daten für einen Serienbrief.  Ein Serienbrief besteht im Grunde genommen aus zwei Teilen. Zum Einen dem Dokument selbst. In diesem werden die Felder an die entsprechenden Stellen im Text eingefügt. Als Zweites brauchst du noch eine Datenquelle. Das kann entweder eine Datenbank oder auch eine Excel-Tabelle sein. Es kann aber auch eine Textdatei oder ein Worddokument sein, in dem die Daten tabellarisch enthalten sind. Und diese Möglichkeit nutze ich um mit Daten aus Notes-DBs Serienbriefe oder auch Etiketten zu erstellen. In der ersten Zeilen müssen die Feldnamen stehen. Dieses werden, wie oben bereits gesagt, in das Seriendruckdokument eingefügt.

Ich hoffe ich habe es halbwegs verständlich erklärt.

Axel
   
Titel: Re: Klasse für Word-Automation
Beitrag von: Semeaphoros am 28.04.05 - 12:30:24
Ach, Axel, die roten Ohren sind aber wirklich perfekt in Deinem Avatar dargestellt .....



 ;D
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 12:50:07
Okay .. aber warum ist das Dokument nicht mit einer Datei gefüllt  ;D

Mir kommt das Steuerdateidokument so hilflos in der Db vor, zumal das [Datei] leer ist ::)

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 13:08:03
So .. nun kommt doch noch der Oberhammer ..

da dachte ich mir und überlegte ... ich nehme mir mal den XP Agenten, ein paar View und die Masken. Baue mir das in meine Mail-Db um es zu testen! Nichts!!

Dann habe ich mir eine leere Db geschnappt und alle DesignElemente hineingekippt und probiert!

Fehlermeldung ist im Bild zu sehen!

Ich garantiere das ich alles richitig übernommen habe, warum aber kann ich mir die Funktionalität nicht in meine Mail-Db einbauen (auch in eine Test-Db nicht)

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 28.04.05 - 13:25:00
Okay .. aber warum ist das Dokument nicht mit einer Datei gefüllt ;D

Mir kommt das Steuerdateidokument so hilflos in der Db vor, zumal das [Datei] leer ist ::)

Wieso soll das Dokument mit einer Datei gefüllt werden? Das macht doch nu mal gar keinen Sinn. Das Dokument wird zu einer Datei.

Das Steuerdateidokument brauch dir nicht hilflos vorzukommen, das ist schlicht und ergreifend überflüssig. Die Erstellung der Steuerdatei war mal anders geplant. Davon ist das Dokument übriggeblieben.

Hast du auch in den Agenten die Feldnamen angepasst und alle Script-Libs eingebunden.
Wie sieht denn dein Code aus?

Was willst denn du in der Mail-DB damit?


Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 14:14:06
Gleich kriege ich ein Rohr ... heute schon wieder ein ganz schlechter Tag!

Ich habe es nun hinbekommen .... aber .... ich bin mal auf die Dumme Idee gekommen deine DEMO auf den Server zu kippen! Nicht gut!

Wo ist denn hier der Unterschied ob ich die Funktion local oder auf dem Domino nutze? Ich kann leider nicht dem folgen warum die Anwendung auf dem Server nicht funktioniert  ??? ::)

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 14:45:17
Hier noch die Fehlermeldung aus dem debug ... aber ist als String gedimmst  ::)

lg
Andy

Zusatz: Ich habe den Fehler allgemein gefunden! Wobei ich nicht richtig diese Geschichte einordnen kann. (VorlgenLookup) lassen sich nicht kopieren, nicht replizieren und nicht verschieben. Diese und die Vorlagen und Konfiguration werden nicht im Domino R6 angezeigt.

Komisch!

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 28.04.05 - 15:19:11
Hi,

ich hab's bei mir mal mit der Demo-DB getestet und hab den gleichen Effekt gehabt. Das liegt aber nicht an 6.5, sondern an einer fehlenden Rolle. Die muß irgendwann mal verloren gegangen sein.

Füge in die ACL die Rolle Administration ein und setze sie bei dir. Dann sollte das funktionieren. Ich verberge die Konfigurationsansichten und andere Ansichten die der Administration dienen immer per Rolle, so das ein normaler User dort keinen Unfug anstellen kann.

Außerdem ist die Rechtezuweisung bei der Ansicht (VorlagenLookup) nicht korrekt. Diese wird auch nur angezeigt wenn man die rolle Administration hat. Das musst du in der Gestaltung bei den Ansichten-Eigenschaften auf dem Schlüssel-Tab auf Alle Leser und höhere ändern.

Dann sollte die Demo-DB laufen.


Axel

 
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 15:40:13
Hi,

leider ist das Problem ein anderes ... so vermute ich und das beweist auch die Praxis. Bevor ich jetzt nich irgendwie weiter an der Db rumdoktor wollte ich gerne von dir wissen ob du Dom5 oder Dom6 nutzt  ;D

Ich habe alle Rollen, User, Server und Gruppen sowohl in die ACL und im Design hinterlegt.

Folgendes:

Wenn du dir die Demo herunterladen TUST  8) (lokal), entpackst due Datei und öffnest diese mit dem NotesClient .. alles wunderbar!

Schiebst, replizierst und kopierst diese aber rüber auf einen Server (ich habe es in allen Varianten mit 2 verschiedenen GETUT) so verschwinden die von mir angesprochenen Designelemente. Ab ins NIRVANA!

Da kann ich einstellen was ich möchte!  :o Null Chance!

lg
Andy

Titel: Re: Klasse für Word-Automation
Beitrag von: Semeaphoros am 28.04.05 - 15:47:22
Da tust Du mal die ACL vor dem Repliziertuten anpassen tun, wenn Du willst, dass alles rüberrepliziert wird.
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 15:51:31
Asche auf mein Haupt! Seit 10 Minuten überlege ich, wie ich am Besten wieder aus der Geschichte heraus komme ohne euch zu belügen  ;)

Tolles Teil ... feedback von mir ... klappt sogar auf dem Server  8)

Und für Leute die nicht lesen können .... denkt an die Rolle  ;D

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 28.04.05 - 15:59:54
Hi,

das mit der Rolle ist eindeutig ein Fehler von mir. Ich habe nicht darauf geachtet, dass sie in der ACL der Demo-DB fehlt. Ist anscheinend bisher auch nicht aufgefallen.

Werde ich so schnell wie möglich ändern.

Warum dass bei dir dann lokal funktioniert hat, ist eigentlich auch klar. Es ist keine konsitente ACL gesetzt, d. h. Rollen greifen bei lokalen Betrieb nicht. Du hast die DB dann auf den Server repliziert/kopiert und da greifen dann die auch die (nicht vorhandenen  ;D) Rollen.

Lass das mit der Asche usw. mal sein tun. Und nun genug getutet.  ;D


Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 18:16:53
Hallo .. ich bin es mal wieder!

Ist eigentlich nee devolper Geschichte .. aber ich habe das Script mit einer Picklist ergänzt aber bei FieldgetText geht der Part leider auf die Bretter!

'Dialog zur Auswahl
Set colPick = db.UnprocessedDocuments
Set colPick = workspace.PickListCollection(1, True, db.Server , db.FilePath , "vwVorlagenLookupDruck","Office", "Markieren Sie bitte die gewünschte Vorlage.")
 If colPick.count > 0 Then
  Set doc = colPick.GetFirstDocument
  Set tmp = doc.FieldGetText( "xKeyVorlagenTitel" )
  strVorlage = FileDetach("tmp")
End If

Ich wollte erreichen das Filedetach mit dem Wert gefüllt wird !

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: koehlerbv am 28.04.05 - 18:26:04
"Auf die Bretter" ist 'ne geile Fehlerbeschreibung >:(

Auch wissen wir nicht, wie tmp deklariert wurde - auf jeden Fall ist aber Set in Verbindung mit FieldGetText vollkommen falsch, da kein Objekt zurückgegeben wird.

Bernhard
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 20:25:09
Nun ja .. Bretter = Typ mismatch!

Ein tolle Anregung mit Set, danke!

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 28.04.05 - 20:33:38
...geht der Part leider auf die Bretter!

Hi,

klasse Umschreibung für eine Fehlermeldung. Die muß ich mir merken.  ;D


Aber nu mal Spaß beiseite. Bernhard hat dir schon einen Tipp gegeben. Allerdings war das nur die "halbe Wahrheit".

Denn die Picklist liefert dir eine DocumentCollection zurück und von dieser bekommst du wiederum, so wie du es mit GetFirstDocument gemacht hast Zugriff auf die Dokumente. Allerdings funktioniert der Zugriff nur mit Backend-Funktionen. FieldGetText ist dagegen eine Frontend-Funktion.

Dein Code müsste so aussehen:

'Dialog zur Auswahl
Set colPick = db.UnprocessedDocuments
Set colPick = workspace.PickListCollection(1, True, db.Server , db.FilePath , "vwVorlagenLookupDruck","Office", "Markieren Sie bitte die gewünschte Vorlage.")
If colPick.count > 0 Then
  Set doc = colPick.GetFirstDocument
  strVorlage = FileDetach(doc.xKeyVorlagenTitel(0))
End If

Eventuell könnte auch PicklistStrings was für dich sein. Schau dir mal dier Designer-Hilfe dazu an.


Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 28.04.05 - 20:37:57
@Axel .. prima! Nicht das ich jetzt die ganze Lösung von Dir haben wollte aber viel wichtiger ... ich merke es mir ;D

Vielen Dank für deine Mühe  :-*

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 28.04.05 - 20:43:05
Hi,

keine Ursache.


Einen schönen Abend

Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 29.04.05 - 07:15:04
Guten Morgen @All ...

mir ist heute nacht doch noch die Idee für Felderweiterungen eingefallen und ich mußte mal heute morgen um 01:30 Uhr aufstehen und mir das anschauen!

Sehe ich das richtig, das z.B. die Seriendruckvorlage mit VB behaftet ist und das ich die Vorlage in Word mit dem VB-Editor öffnen muß um an den Quellcode bzw an die Sprungmarken zu gelagen?

Anderes Beispiel: Die Breifvorlage habe ich mir angeschaut .. die sieht ja zunächst leer aus doch im VB-Editor kann ich Sprungmarken entdecken.

Ist das also der richtige Weg zur Realisierung?

Man glaubt es kaum, man benutzt immer MS-Word ... doch 95% der Funktion bleiben auf der Strecke weil man sie nie benutzt  ;D

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 29.04.05 - 08:14:19
Hi,

um die Sprungmarken zu sehen brauchst du keinen VB-Editor. Das sind Felder, die in das Worddokument eingefügt wurden. Wenn du dir das Seriendruck in Word anschaust, dann siehst du an den entsprechenden Stellen z.B. so was <<Name>>. Das ist ein sogenanntes Seriendruckfeld. Hier werden dann die Daten aus dem Feld Name eingefügt.

Suche mal in der Online-Hilfe von Word nach Serienbrief bzw. Seriendruck. Dort bekommst du jede Menge Infos. Den Seriendruck hier zu erklären würde den Rahmen des Forums sprengen.

Bei der Realisierung bin ich folgenden Weg gegangen:

1. Erstellung der Steuerdatei mit den entsprechenden Feldern von Notes aus.
2. Erstellung des Seriendruckdokumentes und einfügen der Seriendruckfelder in Word.


Axel

 
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 29.04.05 - 08:49:46
Hallo Axel ...

das habe ich ja soweit verstanden, wenn ich jedoch das brief.dot öffne sehe ich nichts!

Auszug aus dem Agenten:

'Neues Dokument auf Basis der Vorlage erstellen. Dot muß nicht im Vorlagenverzeichnis liegen
Call cWord.CreateNewDoc(strVorlage)
   
'Einfügen der Daten in entsprechende Formularfelder
strTemp = doc.Anrede(0)
If strTemp = "Herr" Then strTemp = strTemp & "n"
Call cWord.InsertInField("Anrede", strTemp)
Call cWord.InsertInField("Name", doc.Name(0))
Call cWord.InsertInField("Anschrift", doc.Anschrift(0))
Call cWord.InsertInField("Ort", doc.Ort(0))
   
strTemp = doc.Briefanrede(0)
If Right$(strTemp, 1) <> "," Then strTemp = strTemp & ","
Call cWord.InsertInField("Briefanrede", strTemp)

strVorlage ist in diesem Fall ja "brief.dot" doch wenn ich mir das mal anschaue .. dann ist das doc leer  ;D

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: adminnaddel am 29.04.05 - 08:51:46
Ah .. habs gefunden ... alles klar!

Mann muss nur das ganze doc mal makieren .. dann sieht man die Sprungmarken  8)

lg
Andy
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 29.04.05 - 09:17:22
Hi,

Vorsicht!  Nicht das es hier zu Verwechslungen kommt.

Die brief.dot ist keine Serienbrief-Datei, sondern ein ganz normales Dokument. Die Sprungmarken, die du siehst, sind Formularfelder. Die habe ich hier etwas zweckentfremdet.  ;D

Du siehst das Ganze auch, wenn du die alle Formatierungszeichen anzeigen lässt (umgedrehtes P in der Symbolleiste).

Anstatt von Formularfeldern kannst du auch Textmarken in das Dokument einfügen. Die dazugehörige Methode in der Klasse heisst dann InsertAtTM.

Im Code würde das dann so aussehen:

Call cWord.InsertAtTM("Name", doc.Name(0))

Hier würde der Inhalt des Feldes Name an der Position der Textmarke Name in das Dokument eingefügt werden.

Textmarken sind im Dokument völlig unsichtbar. Über das Menü Einfügen - Textmarke kannst du Textmarken verwalten.

Du siehst auch hier wieder: viele Wege führen nach Rom (in diesem Fall nach Word )

Axel
 
Titel: Re: Klasse für Word-Automation
Beitrag von: Semeaphoros am 29.04.05 - 09:20:31
Auch die Textmarken lassen sich als grauer Strich anzeigen irgendwo in den Optionen, sie werden aber nicht mit angezeigt, wenn alle Steuerzeichen gezeigt werden, müssen also extra zur Anzeige gebracht werden.
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 29.04.05 - 11:01:31
Danke Jens für den Hinweis. Das war mir bisher nicht bekannt. Man lernt eben nie aus.
Für was ein Notes-Forum doch alles gut ist.  ;D :o


Es ist eigentlich ganz einfach im Optionen-Dialog zu finden, siehe Anhang.



Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: Semeaphoros am 29.04.05 - 11:11:27
... und es ist wirklich sehr, sehr praktisch, wenn man sieht, wo diese Marken sitzen. Sie sind auch einfacher zu bedienen als "missbrauchte" Eingabefelder - aus COM heraus meine ich.
Titel: Re: Klasse für Word-Automation
Beitrag von: oxyd21 am 17.03.11 - 14:22:49
Hallo,

hat jemand noch diese Klassen oder etwas ähnliche, die er teilen würden?
Würde das  Rad ungern neu erfinden/schreiben.

Danke.

VG, Michael
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 17.03.11 - 15:12:27
Der FreeDominoServer-Server wurde abgeschaltet. Darum funktioniert der Link nicht mehr.

Ich habe hier das Ganze als Tipp eingestellt -> http://atnotes.de/index.php/topic,51236.msg329259.html#msg329259

Da hängt auch die Beispiel-Datenbank dran aus der man die Sript-Bibliothek mit der Klasse kopieren kann.


Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: oxyd21 am 17.03.11 - 15:14:53
Vielen Dank.
Titel: Re: Klasse für Word-Automation
Beitrag von: alkuhn am 16.05.11 - 14:55:52
Hallo Axel,

ich hatte die Klassen lange im Einsatz und möchte mich nochmals dafür bedanken!
Ich habe hauptsächlich die Serienbrieffunktion verwendet. Nun habe ich auf Word 2010 gewechselt und habe Probleme bekommen. Das Erstellen der Serienbriefdaten funktioniert noch. Beim Aufruf von Call cSeriendruck.Merge(strSteuerdatei) kommt es dann zur Fehlermeldung Fehler 207 -> Automation object error. Kennst Du zufällig das Problem bereits? Ich komme hier nicht weiter. Zum Zeitpunkt des Fehlers liegt die Steuerdatei schon vor und Word ist mit der eigentlichen Druckdatei geöffnet.

Viele Grüße
Alex
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 16.05.11 - 18:49:26
Kennst Du zufällig das Problem bereits?

Das Problem kenne ich noch nicht, da wir die Klasse hauptsächlich noch mit Office 2003 einsetzen.

Ich werde mir das daheim aber mal anschauen. Gib' mir bitte etwas Zeit, dann findet sich mit Sicherheit eine Lösung.

Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: alkuhn am 16.05.11 - 20:03:03
Hallo Axel,

das ist super von Dir! Ich habe heute schon den ganzen Tag herumprobiert, bekomme es aber nicht hin.

Viele Grüße
Alex
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 17.05.11 - 08:57:24
Ich habe das gestern Abend auf die Schnelle nochmal mit der, im verlinkten Thread (http://atnotes.de/index.php/topic,51236.msg329259.html#msg329259) angehängten Demo-DB versucht. Es hat problemlos ohne Änderungen funktioniert. Ich habe es mit dem Notes-Client 8.5.1 und Office 2010 versucht.

Irgendwie muss das Problem woanders liegen. Kannst du mal deinen Code posten?

Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: alkuhn am 17.05.11 - 09:05:23
Hallo Axel,

das verstehe ich wirklich nicht. Mein Code ist eigentlich nur für die entsprechenden Daten angepasst aber nicht an den wichtigen Stellen. Ich habe es gestern aber auch mit der original Datenbank von Dir getestet, da ist es zum gleichen Fehler gekommen mit einem Notes Client 6.5 und Word 2010. Ich teste jetzt mal Deine NotesToWord Datenbank bei einem 8.5er Client mit Word 2010 und gebe gleich Bescheid.

Viele Grüße
Alex
Titel: Re: Klasse für Word-Automation
Beitrag von: alkuhn am 17.05.11 - 09:43:13
Hallo Axel,

auch mit der heruntergeladenen Datenbank funktioniert es bei mir nicht. Wenn ich die Serienbrieffunktion aufrufe, kommt es zur angehängten Fehlermeldung. Im Word selber wird das Serienbriefdokument geöffnet, aber nicht mit den Daten "gemischt".

Habe es an zwei Rechnern getestet (einmal Notes Client 6.5 und einmal 8.5.2)

Viele Grüße
Alex
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 17.05.11 - 11:37:49
Welche Aktion führst du denn aus, "Seriendruck Word XP" oder "Seriendruck Word 2000"?

Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: alkuhn am 17.05.11 - 11:46:43
Hallo Axel,

ich habe beide Funktionen getestet. Es kommt immer zur gleichen Fehlermeldung.

Viele Grüße
Alex
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 17.05.11 - 19:37:52
Also ich kann das hier in keinster Weise nachvollziehen. Bei mir funktionieren beide Aktionen einwandfrei. Ich habe mir auch noch mal die Objektmethoden und -eigenschaften angeschaut. Das passt alles.

Tausche mal in der Script-Library libWord bei der Klasse cSeriendruck2K in der Methode Merge(...) mal den vorhandenen Code gegen untenstehenden aus. Allerdings sieht der soviel anders auch nicht aus. Allerdings stammt dieser aus einem aufgezeichneten Marko aus Word 2010.

Code
...
    Const wdFormLetters = 0
    Const wdSendToNewDocument = 0
    Const wdDefaultFirstRecord = 1
    Const wdDefaultLastRecord = -16
         
    With objWord.ActiveDocument.MailMerge
	.MainDocumentType = wdFormLetters
	.OpenDataSource CStr(strDatei)
	.Destination = wdSendToNewDocument
                .SuppressBlankLines = True
                With .DataSource
                              .FirstRecord = wdDefaultFirstRecord
                              .LastRecord = wdDefaultLastRecord
                 End With
                .Execute False
     End With  'With objWord.ActiveDocument.MailMerge			
...

Versuch's dann nochmal mit der Aktion "Seriendruck Word 2000".

Wenn das auch nicht funktioniert, dann muss das an was anderem liegen. Kann es evt. sein, dass Office nicht vollständig installiert wurde und irgendwelche Bibliotheken fehlen?

Axel
Titel: Re: Klasse für Word-Automation
Beitrag von: alkuhn am 18.05.11 - 10:38:23
Hallo Axel,

ich verstehe echt nicht, warum es bei Dir geht und bei mir nicht  ???

Ich werde den Code auf jeden Fall testen.Auch die Office Installation werde ich nochmals überprüfen - aber da kann man ja eigentlich nicht viel falsch machen - Word ist komplett angehackt. Sobald ich alles geprüft habe, gebe ich Dir Bescheid. Und nochmals danke für Deine Bemühungen.

Viele Grüße
Alex
Titel: Re: Klasse für Word-Automation
Beitrag von: alkuhn am 19.05.11 - 15:14:33
Hallo Axel,

die Codeänderung und eine Office-Neuinstallation hat beides nichts gebracht - immer die gleiche Fehlermeldung. Keine Ahnung was da los ist. Schade, dass es nicht noch jemand anderes mit Office 2010 testet. Ich nehme jetzt noch ein völlig anderes Notebook und versuche es dort.

Viele Grüße
Alex
Titel: Re: Klasse für Word-Automation
Beitrag von: alkuhn am 23.05.11 - 15:47:19
Hallo Axel,

ich habe es am Wochenende mal auf einem Notebook versucht. Installiert war Notes 6.5 und Word 2003. Alles ging. Anschließend habe ich ein Update auf Office 2010 gemacht - anschließend ging es auch! Da meine Probleme bisher bei zwei PC´s war, auf die direkt Office 2010 installiert wurde, dachte ich, es liegt an dem Update. Habe dann Office 2010 auf einem der Rechner deinstalliert, Office 2003 installiert (dann ging es) und dann ein Update auf Office 2010 gemacht - dann geht es nicht mehr  >:(

Ich glaube, ich gebe auf ...

Viele Grüße
Alex
Titel: Re: Klasse für Word-Automation
Beitrag von: Axel am 23.05.11 - 19:43:02
Da meine Probleme bisher bei zwei PC´s war, auf die direkt Office 2010 installiert wurde, dachte ich, es liegt an dem Update.

Das kann's eigentlich auch nicht sein. Der Rechner auf dem ich's probiert habe, hatte nie ein Office 2003 gesehen.
Was passiert, wenn du kein Update auf 2010 machst, sondern erst 2003 deinstallierst und dann 2010 installierst?
Wobei ich befürchte, dass das Ergebnis das gleiche ist. Evt. bringt eine Neuinstallation des Betriebssystems was.

Mit was für einem User abeitest du den auf den Rechnern auf denen es nicht funktioniert? Versuch mal ein neues Userprofil anzulegen.

Axel