[Erledigt] In Word Dokumente Formatierten Text einfügen

18. September 2008 09:02

Hallo liebe Forengemeinde,

ich muss aus Navision 400 SP3 einen Report nach Word exportieren. Leider muss dieses Word-Dokument genauso aussehen wie der Report selbst.

Zur Realisierung dieser Anpassung verwende ich Word-Automations. Außerdem verwende ich eine Formatvorlage, die mir die nötigen Felder bereitstellt.

Und nun meine Frage: Wie kann ich in Word per Automations formatierten Text und/oder Tabellen einfügen (kein XML)?

Ich benutze folgende Automations:
Code:
Name   DataType   Subtype   Length
MSWord   Automation   'Microsoft Word 11.0 Object Library'.Application   
Worddokument   Automation   'Microsoft Word 11.0 Object Library'.Document   
WRange   Automation   'Microsoft Word 11.0 Object Library'.Range   


Danke schonmal für eure Antworten
Zuletzt geändert von Steev am 18. September 2008 16:40, insgesamt 1-mal geändert.

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 09:04

[Beitrag aus dem Forum AX 4.xx nach Microsoft Office verschoben.]

Gruß, Natalie
MSDynamics.de-Team

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 09:05

@Natalie:
Was war das denn? Ich hatte doch schon in den richtigen Bereich gepostet

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 09:06

Steev hat geschrieben:@Natalie:
Was war das denn? Ich hatte doch schon in den richtigen Bereich gepostet
An welcher Stelle hast du was mit Axapta (AX 4.xx) zu tun?

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 09:15

Ups, dann war das doch der falsche Bereich. Sorry.
Aber vieleicht kannst du mir ja trotzdem zu meinem Problem helfen?

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 09:17

Steev hat geschrieben:Ups, dann war das doch der falsche Bereich. Sorry.
Aber vieleicht kannst du mir ja trotzdem zu meinem Problem helfen?

Wenn ich es könnte, würd ichs tun :-)

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 13:49

Kann mir keiner helfen? Hat noch niemand so etwas gemacht?

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 14:03

Ich formatiere nichts, aber ich erstelle Saldenbestätigungen mit Hilfe von Word. Das Dokumnet enthält Textmarken. Dies sieht dann so aus:

Code:
Name   DataType   Subtype   Length
WDApp   Automation   Unknown Automation Server.Application   
WDDoc   Automation   Unknown Automation Server.Document   
WDRange   Automation   Unknown Automation Server.Range   
WDTable   Automation   Unknown Automation Server.Table   
WDBookmark   Automation   Unknown Automation Server.Bookmark   
CR   Char      
LF   Char      
CRLF   Text      2

CREATE(WDApp,TRUE);
REPEAT UNTIL VARIABLEACTIVE(WDApp);
WDApp.Visible(TRUE);
CR := 13;
LF := 10;
CRLF := STRSUBSTNO('%1%2',CR,LF);    //***Absatz***
 
WDDoc := WDApp.Documents.AddOld(filename);
WDDoc.Bookmarks.Item(Textmarke).Range.Text(DebAdr[1]+CRLF+DebAdr[2]+CRLF+DebAdr[3]+CRLF+DebAdr[4]
                                           +CRLF+DebAdr[5]+CRLF+DebAdr[6]+CRLF+DebAdr[7]+CRLF+DebAdr[8]);

Textmarke := 'Stichtag';
WDDoc.Bookmarks.Item(Textmarke).Range.Text(Stichtag);
Textmarke := 'Ansprechpartner';
WDDoc.Bookmarks.Item(Textmarke).Range.Text(Anrede);
Textmarke := 'StichKurz';
WDDoc.Bookmarks.Item(Textmarke).Range.Text(StichtagKurz);

filename := AusgabePfad+'Debitor '+Debitor."Nr."+' '+BalConCurr+'.doc';
WDDoc.SaveAs2000(filename);
WDDoc.PrintOut2000;
WDDoc.Close;


Vielleicht hilft es ja. :-)

Gruß Tom

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 14:10

Danke TomTom, leider hilft mir das nicht so ganz weiter. Aber ich glaube, ich habe gerade etwas bei Microsoft gefunden. Vieleicht ist das ja das, was ich suche...

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 14:37

Hmmm, das Format kann ich so ändern. Richtig schön ist das aber nicht mit dem selektieren...

Code:
v1 := 'Dieses Dokument wurde automatisch aus Microsoft Dynamics NAV erstellt.';
WordRange.InsertAfter(v1);

WordRange.SetRange(5, 10);
WordRange.Bold := 1;
WordRange.Italic := 1;
WordRange.Underline := 1;
WordRange.Font.Name := 'Arial';
WordRange.Font.Size := 8;

Re: In Word Dokumente Formatierten Text einfügen

18. September 2008 15:25

Ja, genau das war das was ich gesucht habe.

Damit andere mit ähnlichen Problemen auch etwas davon haben, hier mal der Code für das Einfügen von Tabellen und das Ändern des Schriftgrades in Word (2003).

die Variablen:
Code:
Name   DataType   Subtype   Length
WordApp   Automation   'Microsoft Word 11.0 Object Library'.Application   
WordDoc   Automation   'Microsoft Word 11.0 Object Library'.Document   
WordRange   Automation   'Microsoft Word 11.0 Object Library'.Range   
tbl   Automation   'Microsoft Word 11.0 Object Library'.Table   
TemplateName   Text      30


der Code:
Code:
TemplateName := 'Normal.dot';

IF ISCLEAR(WordApp) THEN
  IF NOT CREATE(WordApp, FALSE) THEN
    ERROR('Es konnte keine Word-Instanz erstellt werden!');

IF NOT EXISTS(TemplateName) THEN
  ERROR('Die Wordvorlage %1 existiert nicht!', TemplateName);

WordDoc := WordApp.Documents.Add(TemplateName);

// ---[ Schreiben in Word-Test
WordRange := WordApp.ActiveDocument.Range;

WordDoc.Tables.Add(WordRange, 3, 1);
tbl := WordDoc.Tables.Item(1);

WordRange := tbl.Cell(1, 1).Range;
WordRange.Font.Name := 'Arial';
WordRange.Font.Size := 8;
WordRange.InsertAfter('Cell 1');

WordRange := tbl.Cell(2, 1).Range;
WordRange.Font.Name := 'Arial';
WordRange.Font.Size := 8;
WordRange.InsertAfter('Cell 2');

WordRange := tbl.Cell(3, 1).Range;
WordRange.Font.Name := 'Arial';
WordRange.Font.Size := 8;
WordRange.InsertAfter('Cell 3');
// ]---

WordApp.ScreenUpdating(TRUE);
WordApp.Visible := TRUE;
WordApp.Activate;


Die Vorlage "Normal.dot" muss aus dem Vorlagenverzeichnis
Code:
C:\Dokumente und Einstellungen\steev\Anwendungsdaten\Microsoft\Vorlagen
in den Installationsordner von Navision (warum auch immer) kopiert werden. Danach kann der Code (wenn Word 2003 installiert wurde) ohne Probleme ausgeführt werden.