![]() |
WORD mergefield via OLE ersetzen. Aber wie ?
Ich hab es so probiert
![]() also mein Code sieht dann so aus :
Delphi-Quellcode:
wichtig sind die Zeilen
Procedure WordOeffnen(datei: string);
var oV_Word : OleVariant; wnd_Word : hwnd; s_WndName: string; i : integer; b_suchen : boolean; begin { Word schon geöffnet ? } //oV_Word := CreateOleObject('Word.Basic'); oV_Word := CreateOleObject('Word.Application'); s_WndName:='Microsoft Word - '; b_suchen:=true; i:=Length(datei); while (i>1) and b_suchen do if datei[i]='\' then b_suchen:=false else Dec(i); if not b_suchen then s_WndName:=s_WndName+Copy(datei, i+1, Length(datei)-i); wnd_Word:=FindWindowEx(0, 0, 'OpusApp', PChar(s_WndName)); if wnd_Word = 0 then begin { oV_Word.AppMaximize; ov_Word.AppShow; oV_Word.FileOpen(datei); } ov_Word.visible := true; ov_word.activate; ov_word.documents.open(datei); //ov_Word.run('AutoNew.MAIN'); ov_word.ActiveDocument.FormFields.Item('MANDANT').Result:='Test'; end else begin SetForeGroundWindow(wnd_Word); if IsIconic(wnd_Word) then OpenIcon(wnd_Word); end; end;
Delphi-Quellcode:
Leider meint er dass die letzte Zeile nicht geht, der Fehler ist
ov_Word.visible := true;
ov_word.activate; ov_word.documents.open(datei); //ov_Word.run('AutoNew.MAIN'); ov_word.ActiveDocument.FormFields.Item('MANDANT').Result:='Test'; Zitat:
Die Vorlage ist ein .DOT File welches über ein VB Makro betrieben wird. Ich möchte das ganze Makro aber rauswerfen und Delphi die Arbeit erledigen lassen ! Das Feld MANDANT ist vorhanden, es ist von Typ Mergefield. |
hmm,
ich hab es geschafft :)
Delphi-Quellcode:
so geht es mit Delphi4/Word2000.
i := 0;
while (i < length(feldliste)) do begin if (ov_word.existingBookmark(feldliste[i].feldname) = -1) then begin ov_word.WW7_EditGoTo(feldliste[i].feldname); ov_word.Insert(feldliste[i].feldvalue); end; inc(i); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz