Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Hilfe!!! - MS-Word-Dokument mit VCL (TEdit) ausfüllen (https://www.delphipraxis.net/105320-hilfe-ms-word-dokument-mit-vcl-tedit-ausfuellen.html)

Dennis_Wolfram 19. Dez 2007 19:29


Hilfe!!! - MS-Word-Dokument mit VCL (TEdit) ausfüllen
 
Ich brauche unbedingt Hilfe!

Ich habe mir eine VCL-Formularanwendung erstellt, die TEdit und TMemo beinhalten und möchte
die Eingaben in ein Wordformular übertragen.
-----------------------------------------------------------------------------------------------------------------------------------
Zur Verdeutlichung:

Turbo Delphi:
Form1 mit folgenden Komponenten:
Edit1...Edit20
Memo1...Memo20
Button1

MS Word 2007:

Im Dokument mit dem Mustertext:

Gehaltsnachweis
Hiermit wird >>TEdit1(aus Delphi)<< >>TEdit2(aus Delphi)<< bescheinigt für die Monate >>TMemo1(aus Delphi)<< ein Gehalt von >>TEdit3(aus Delphi)<< erhalten hat.

Dieses Gehalt wurde auf das folgende Konto überwiesen:
>>TMemo2(aus Delphi)<<

-----------------------------------------------------------------------------------------------------------------------------------
Wenn also der Benutzer nun Eingaben in die Edits und Memos gemacht hat und auf den Button klickt, soll sich Word und das vorgestalltete Dokument öffenen. Anschließend Sollen die Eingaben in dem Word-Dokument in den bestimmten Positionen meines Texte erscheinen.

Ich bin für jede Hilfe dankbar
Gruß Dennis

Cronen 19. Dez 2007 20:24

Re: Hilfe!!! - MS-Word-Dokument mit VCL (TEdit) ausfüllen
 
Hier dazu eine Lösung:

Vorgabe: Word-Dolument existiert mit entsprechenden Formularfelden (am besten als Dokumentvorlage)liegt im Ordner der Exe
Delphi-Quellcode:

type
  TForm1 = class(TForm)

...

var
  MSWord: variant;

implementation

uses ComObj, Variants;


...

procedure TForm1.Fill_WordDoc;    
var
  s: string;
  vParam, vParam2: olevariant;
begin
  MSWord := CreateOleObject('Word.Application');
  MSWord.Visible := True;
  MSWord.WindowState := wsMinimized;
  s := ExtractFilePath(Application.EXEName)+'Vorlage1.dot';
  vParam := s;
  vParam2 := False;
  MSWord.Documents.Add(vParam, vParam2, EmptyParam, EmptyParam);
  MSWord.ActiveDocument.FormFields.Item('Text1').Result := Edit1.Text;
  MSWord.ActiveDocument.FormFields.Item('Text2').Result := DatetoStr(Date);
//jetzt eine Check-Box im Dokument ausfüllen:
  if Bedingung = True then
    MSWord.ActiveDocument.FormFields.Item('Kontrollkästchen1').CheckBox.Value := true    
  else
    MSWord.ActiveDocument.FormFields.Item('Kontrollkästchen1').CheckBox.Value := false;
end;
(habe ich auf die Schnelle nicht ausprobiert, müsste aber laufen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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