Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Druck in Word


noppi - Mo 12.08.02 21:09
Titel: Druck in Word
hallo delphi freunde,
ich möchte gerne text in word in formularfelder ausdrucken. durch unsere kunden habe ich diverse word-formulare als vorgabe, die ich je nach bedarf mit "leben" füllen muss.
das problem, ein einzelnes formularfeld im word mit text zu füllen habe ich bereits gelöst.
mein problem liegt darin, daten aus einer datenbank (paradox) in eine tabelle im word (mit formularfelder) auszulesen.

mein quellcode bis jetzt sieht so aus:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
try 
table1.first; 
word.run('druckword1'); 
while not table1.eof do begin 
  word.activedocument.formfields.item('namevorname').result := table1.fieldbyname('namevorname').asstring; 
  word.run('Druckword'); 
  table1.next; 
end;

im macro druckword wird ein neues textfeld mit dem namen namevorname erstellt.

wenn das programm läuft, generiert das macro im word genau so viele neue zeilen mit formularfeldern wie meine tabelle datensätze hat aber leider wird immer nur das erste formularfeld beschrieben (es überschreibt sich selbst)

hat jemand für mich eine plausibele lösung des problems?

danke im voraus

noppi


Cashels - Mo 12.08.02 22:15

Hi,

zu deinem Problem hab ich zwar direkt keine Lösung, kann dir aber ne alternative anbieten. Ich hab mal bei Torry [http://www.torry.net] die Komponente ekRTF runtergeladen. War ne Komponent um Berichte als RTF Dateien zu erzeugen. Ich arbeit viel damit und bin echt damit zufrieden.

Gruss,
Tom


Tino - Mo 12.08.02 22:36

Hallo Noppi,

liegt es vielleicht daran das Du einmal druckword1 und das andere mal Druckword aufrufst?

Gruß
TINO


bis11 - Di 13.08.02 07:48

Hi Noppi,

probiere doch einfach mal dort einen Zähler reinzusetzen. So wie Du es jetzt geschrieben hast, heißt jedes Feld "namevorname", damit nimmt er immer das erste was er findet auf der Seite.


noppi - Di 13.08.02 11:23

das ist ja mein problem, welches ich nicht verstehe.
durch das makro wird ein neues formularfeld mit dem namen "namevorname" erstellt. hierdurch hat das alte formularfeld "namevorname" keine bezeichnung mehr, d.h. es existiert in meinem word dokument nur ein formularfeld mit dem namen "namevorname". er schreibt aber immer nur in mein formularfeld in der ersten zeile meiner tabelle.


Tino - Di 13.08.02 11:27

@noppi: und was ist mit diesem Hinweis?
Tino hat folgendes geschrieben:
liegt es vielleicht daran das Du einmal druckword1 und das andere mal Druckword aufrufst?


bis11 - Di 13.08.02 11:59

Poste mal den Sourcecode der beiden Makros, vielleicht liegt ja darin Dein Fehler oder schicke mir die Makros per Mail.


noppi - Di 13.08.02 21:02

hallo und recht herzlichen dank für euere bemühungen,
ich habe es geschafft, der ausdruck in word funktionert.

nach optimierung der makros im word klappt es endlich, es ist zwar sehr aufwendig aber es funktioniert erst einmal.

vielleicht weiß ja jemand, wie ich die word makros in mein delphi programm integrieren kann, damit die lästige makro schreiberei an jedem rechner aufhört.

wenn jemand einen tip hat, kann er mir diesen ja schicken.

die optimierung der word makros besteht darin, das ich den formularfeldern, die bereits beschrieben wurden einen anderen namen gebe.

danke nochmals