Autor Beitrag
noppi
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 12.08.02 21:09 
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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: 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 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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