AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi WORD mergefield via OLE ersetzen. Aber wie ?
Thema durchsuchen
Ansicht
Themen-Optionen

WORD mergefield via OLE ersetzen. Aber wie ?

Ein Thema von JoelH · begonnen am 22. Jul 2003 · letzter Beitrag vom 22. Jul 2003
Antwort Antwort
JoelH
(Gast)

n/a Beiträge
 
#1

WORD mergefield via OLE ersetzen. Aber wie ?

  Alt 22. Jul 2003, 09:32
Ich hab es so probiert
http://www.delphipraxis.net/internal...rd+application

also mein Code sieht dann so aus :
Delphi-Quellcode:
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;
wichtig sind die Zeilen
Delphi-Quellcode:
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';
Leider meint er dass die letzte Zeile nicht geht, der Fehler ist
Zitat:
Das Angeforderte Element ist nicht in der Sammlung vorhanden
Was für ein Element ist nicht in welcher Sammlung vorhanden frag ich mich da ?

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.
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#2

hmm,

  Alt 22. Jul 2003, 10:39
ich hab es geschafft

Delphi-Quellcode:
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;
so geht es mit Delphi4/Word2000.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz