Einzelnen Beitrag anzeigen

Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Word 2010 Vorlage.dot ausfüllen

  Alt 8. Feb 2012, 09:30
Danke @einbeliebigername für die ausführliche Antwort / Hilfe.
Ich habe das ganze jetzt umgeschrieben.

Jetzt habe ich nur noch eine Frage: Wie kann ich mehrere Word Dateien öffnen, der neue Code öffnet Word genau 1x, ein erneuter Aufruf öffnet kein neues Word Dokument?


Delphi-Quellcode:
uses
  ..., Word_TLB, Office_TLB;


procedure TFormMain.PrintVorlage(Ausdrucken : Boolean);
var
  WordApp : TWordApplication;
  Dokument : TWordDocument;
  FileName : OleVariant;
  AnzahlAusdrucke : Integer;
begin
  try
    AnzahlAusdrucke := StrToInt(EditPrinterCopy.Text);
  except
    AnzahlAusdrucke := 1;
  end;

  FileName := Anwendungsverzeichnis + 'Vorlage\XYZ.dot';

  try
    WordApp := TWordApplication.Create(Self);
    Dokument := TWordDocument.Create(Self);

    WordApp.Connect;

    WordApp.Documents.Open2000(FileName, EmptyParam, EmptyParam, EmptyParam,
      EmptyParam, EmptyParam, EmptyParam, EmptyParam,
      EmptyParam, EmptyParam, EmptyParam, EmptyParam);

    Dokument.ConnectTo(WordApp.ActiveDocument);

    WordApp.Visible := not Ausdrucken;

    with Datenmodul.UniQueryDataGrid do
    begin
      Dokument.FormFields.Item('Nummer').Result := FieldByName('Nummer').AsString;
      Dokument.FormFields.Item('Jahreszahl').Result := FieldByName('Jahreszahl').AsString;
      // ...
    end;

    if Ausdrucken then
    begin
      if not CheckBoxStandarddrucker.Checked
        then WordApp.ActivePrinter := ComboBoxPrinter.Text;

      Dokument.PrintOut;
      Dokument.Close;
      WordApp.Quit;
    end;

  finally
    Dokument.Free;
    WordApp.Free;
  end;
end;

Geändert von user0815 ( 8. Feb 2012 um 13:10 Uhr)
  Mit Zitat antworten Zitat