Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Formularkopf in Word exportieren (https://www.delphipraxis.net/125635-formularkopf-word-exportieren.html)

Future01 9. Dez 2008 11:37


Formularkopf in Word exportieren
 
Hallo, ich habe versucht einen Adressverwalter zu schreiben, der mir die Daten in der Datenbank speichert und wiedergibt.
hat alles auch wunderbar geklappt.

Nun habe ich versucht einen Export zu erstellen, der mir ermöglicht den Kopf ( Adresse,Name usw.) als ganzes in einem Worddokument wiederzugeben
und es leider nicht auf die Reihe gebracht :( :? :?

ich habe auf diversen Seiten über GOOGLE recherchiert, aber war nicht in der Lage etwas brauchbares zu finden. Hat einer von euch vielleicht einen Tipp, oder eine Idee parat?

Schon mal im vorraus danke für eure Bemühungen. :dp: :dp:


ps : nutzt denk ich mal nix den code mitanzugeben, wiel ich nämlich keinen vernünftigen ansatz habe.

Future01 9. Dez 2008 12:51

Re: Formularkopf in Word exportieren
 
oh entschuldigung. hab es glaub ich im falschen bereich geöffnet.

bin neu hier weiß nicht wie ich de n verschiebe

DeddyH 9. Dez 2008 13:07

Re: Formularkopf in Word exportieren
 
Du selbst kannst ihn nicht verschieben, aber einen Moderator darum bitten.

Bbommel 9. Dez 2008 13:16

Re: Formularkopf in Word exportieren
 
Was genau möchtest du machen? Willst du ein Word-Dokument erstellen und dort etwas aus deinen Adress-Daten hereinschreiben? Dazu könntest du Word fernsteuern und dazu würde dir hier eine Suche nach Hier im Forum suchenTWordApplication weiterhelfen.

Wenn du eine "richtige" Datenbank benutzt (das geht aus deiner Frage nicht so ganz hervor) und wissen willst, wie Word sich selbst die Daten aus der Datenbank rausziehen kann, um etwa einen Serienbrief zu erstellen, dann könnte dir eine Google-Suche zum Thema ODBC weiterhelfen.

Bis denn
Bommel

...der leider auch nix verschieben darf... :)

DP-Maintenance 9. Dez 2008 13:17

DP-Maintenance
 
Dieses Thema wurde von "fkerber" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Dieser impliziten Bitte komme ich dann doch gleich mal nach ;)

Future01 9. Dez 2008 14:13

Re: Formularkopf in Word exportieren
 
ja genau ich möchte ein word doc öffnen wenn ich auf einen knopf drücke und daraus soll dann sich zb der briefkopf ergeben, also sprich
der name und das datum usw. je nachdem was ich angegeben habe.

ich habe schon einen versuch gemacht, ich habe einen button erstellt, der , wenn ich drauf klicke , ein word öffnet, aber leider noch nichts hineinschreibt gewscheige denn direkt an den kopf meine gewünschten daten angibt.

HIER MEIN VERSUCH :



procedure TForm1.Button_BriefClick(Sender: TObject);
var
WordApplication, WordDocument: Variant;
begin
try
WordApplication := CreateOleObject('Word.Application') ;
WordApplication.Visible := true;
except
ShowMessage('Microsoft Word kann nicht starten.');
Screen.Cursor := crDefault;
exit;
end;
WordDocument := WordApplication.Documents.Add;
WordApplication.Selection.
WordApplication.Selection.TypeText('Memo_Daten.Lin es') ;
WordDocument.SaveAs(FileName := 'C:\Dokumente und Einstellungen\topak\Eigene Dateien\Doc.Doc',
AddToRecentFiles := False) ;
//WordApplication.Quit(False)

Bbommel 9. Dez 2008 15:31

Re: Formularkopf in Word exportieren
 
Was passiert denn bisher überhaupt? Wird dein bisheriger Versuch überhaupt kompiliert? Mich wundert zum Beispiel, dass bei der Zeile
Delphi-Quellcode:
WordDocument.SaveAs(FileName := 'C:\Dokumente und Einstellungen\topak\Eigene Dateien\Doc.Doc', AddToRecentFiles := False) ;
nicht vom Compiler gemeckert wird. Richtiger wäre (ohne, dass ich jetzt nachgeschaut habe, ob die Parameter generell die richtigen sind) etwa das hier:
Delphi-Quellcode:
WordDocument.SaveAs('C:\Dokumente und Einstellungen\topak\Eigene Dateien\Doc.Doc', False);
Und an der Stelle hier:
Delphi-Quellcode:
WordApplication.Selection.TypeText('Memo_Daten.Lines');
Gibst du nicht die Zeilen deines Memos aus, sondern genau den Text "Memo_Daten.Lines". Richtiger wäre sowas wie:
Delphi-Quellcode:
WordApplication.Selection.TypeText(Memo_Daten.Lines.Text);
Ggf. könntest du auch eine Schleife über die einzelnen Zeilen verwenden, aber als erster Test sollte das reichen.

Vielleicht hast du damit schon mal ein paar Ansätze, wo du suchen kannst, ansonsten bräuchten wir ein paar Tipps, was genau nicht klappt. :)

Bis denn
Bommel

Future01 9. Dez 2008 15:51

Re: Formularkopf in Word exportieren
 
also ich habe ja vorher versucht zu erklären, das das verwaltungsprogramm einen button hat, ''der brief öffnen'' heißt.

wenn ich diesen , mit dem quellcode, den ich gepostet habe, drücke, dann öffnet der mir die word.exe aber nicht das, was in meinem memofeld angezeigt wird.

ich habe deine methode grade eben ausprobiert, jetzt gibt er mir den angezeigten text aus. das ist super dankeschön.

jedoch wollte ich, zb wenn ich einen eigenen briefkopf anfertige, mit datum und anschreiben,

das er mir die aus dem memofeld ausgegebenen daten genau in die angegebene zeile ausdruckt.




ZUM BEISPIEL


FutureSOFT Deutschland, den 17.12.2098


-
-
-
-
<EMPFÄNGERKOPF>

sehr geehrter blabla, wir danken ihne für ihren...



dh das im empfängerkopf mein memofeld ausgegeben wird.


entschuldigung wenn ich mich vorher zu undeutlich ausgedrückt habe

danke für eure zeit


PS: ich habe grade eben gelesen das man sowas wie einen anker setzen soll, jedoch wüsste ich nicht, was das sein soll.

eventuell ein merkal` in delphi , damit er weiß wo genau er das memofeld im wordkopf anzeigen muss.???

Bbommel 9. Dez 2008 16:41

Re: Formularkopf in Word exportieren
 
Uff, also wie du nun genau zu einem Anker springst (den du vorher in Word setzen kannst), kann ich dir nun auch nicht sagen. Aber vielleicht hilft dir noch folgender Trick, um an die richtigen Befehle zu kommen:

Es hilft oftmals, in Word ein Marko aufzuzeichnen, beim Aufzeichnen ungefähr das zu tun, was nachher automatisiert werden soll und sich dann im Visual Basic-Editor von Word (nach dem Aufzeichnen dann unter Extras->Makro->Makros->Bearbeiten) anzuschauen, was daraus für ein VBA-Code erstellt wurde. Dieser ist in der Regel schon sehr ähnlich zu dem, was man dann auch in Delphi machen muss.

In deinem Fall könntest du zum Beispiel in deinem Dokument einen Platzhalter setzen, der durch dein Programm durch die richtige Adresse ersetzt wird. Du suchst also in Word nach diesem Platzhalter (schreibst also irgendwo ein "***EMPFAENGERADRESSE***" oder so) und gibst dann dort eine Adresse ein. Diese Aktion zeichnest du als Marko auf und guckst sie dir im Editor an. Der Rest ist dann sicherlich noch ein bisschen Frickelei, aber so kommt man auf die richtige Spur.

So, jetzt musst du das nur noch programmieren. ;)

Bis denn
Bommel

Bbommel 9. Dez 2008 16:49

Re: Formularkopf in Word exportieren
 
Ach so, noch eine Ergänzung: Anstatt nach dem Platzhalter zu suchen, kannst du natürlich auch diesen Anker setzen. In Word im Menü Einfügen->Textmarke, dann einen Namen geben und die Textmarke ist gesetzt.

Im Menü "Bearbeiten" findest du dann den Befehl "Gehe zu", mit dem du zur Textmarke springen kannst. Wenn du das aufzeichnest, kommt dabei folgender VBA-Befehl raus:
Code:
Selection.GoTo What:=wdGoToBookmark, Name:="huhu"
(Ich hab meine Textmarke einfach mal "huhu" genannt)

Wahrscheinlich wäre das in Delphi dann sowas wie
Delphi-Quellcode:
WordApplication.Selection.Goto(wdGoToBookmark,'huhu')
...ist aber ungetestet.

Ach ja: Bei mir bezieht sich alles auf Word 2003, sollte ich vielleicht auch mal erwähnen...

Bis denn
Bommel


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 Uhr.
Seite 1 von 2  1 2      

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