11. Februar 2008 15:04
Hallo,
ich hab ein Problem bei der Word-Ansteuerung von Navision aus.
Ich möchte vor dem Füllen eines Worddokumentes die Seitenränder ändern. Dies gelingt mir leider nicht.
Der VB-Code für dies ist:
- Code:
WordBasic.PageSetupMargins Tab:=0, PaperSize:=0, TopMargin:="1.5", _
BottomMargin:="1.5", LeftMargin:="1", RightMargin:="1", Gutter:="0", _
PageWidth:="21", PageHeight:="29.7", Orientation:=0, FirstPage:=0, _
OtherPages:=0, VertAlign:=0, ApplyPropsTo:=4, FacingPages:=0, _
HeaderDistance:="1.25", FooterDistance:="1.25", SectionStart:=2, _
OddAndEvenPages:=0, DifferentFirstPage:=0, Endnotes:=0, LineNum:=0, _
CountBy:=0, TwoOnOne:=0, GutterPosition:=0, LayoutMode:=0, DocFontName:= _
"", FirstPageOnLeft:=0, SectionType:=1, FolioPrint:=0, ReverseFolio:=0, _
FolioPages:=1
Auschnitt meines C/AL Codes:
- Code:
FNK_PageMargin(PAR_Left : Decimal;PAR_Right : Decimal;PAR_Top : Decimal;PAR_Bottom : Decimal)
WdSelec := WdApp.Selection;
WdPageSetup := WdSelec.PageSetup;
WdPageSetup.TopMargin := PAR_Top;
WdPageSetup.BottomMargin := PAR_Bottom;
WdPageSetup.LeftMargin := PAR_Left;
WdPageSetup.RightMargin := PAR_Right;
Diese Funktion rufe ich mit folgender Zeile auf:
- Code:
FNK_PageMargin(1.0,1.0,1.5,1.5);
Bei der Word-Ansteuerung wird der Befehl zwar angenommen aber es werden nicht die Dezimal-Werte angenommen die ich mitgebe. Das Word Dokument hat dann die Seitenränder:
Oben: 0,05cm statt der 1,0 cm
Unten: 0,05 cm statt der 1,0cm
Rechts: 0,04 cm statt der 1,5 cm
Links: 0,04 cm statt der 1,5 cm
Da der VB-Code eigentlich "WordBasic.PageSetupMargins ..." lautet und ich aber den Befehl "PageSetup. ..." könnte es auch an dem liegen. Jedoch wird der Befehl Wdapp.Wordbasic.PageSetupMargins" zwar angenommen es kommt jedoch die Meldung: "Bei dieser Funktion mit Rückgabewert arbeiten"
Kann mir da jemand weiterhelfen?
EDIT: Thema kann geschlossen werden. Habe mittlerweile die Lösung gefunden - irgendwo in den Tiefen der MSDN Library...
Die Lösung ist:
Man muss die Zentimeter in Points umrechnen. 1cm entspricht 28,35 Points. Dann "Point"-Wert übergeben und schon funktionierts