AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Office 2010 und Delphi-7

Ein Thema von hesch21 · begonnen am 8. Okt 2013 · letzter Beitrag vom 9. Okt 2013
Antwort Antwort
Seite 1 von 2  1 2      
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#1

AW: Office 2010 und Delphi-7

  Alt 8. Okt 2013, 14:39
Die Idee ist eigentlich schon gut nur ist leider mein Dokument leider kein OLEVariant. Mit dem ist zuvor schon ganz viel passiert, u.a. wurde es mit einer automatisch erstellten CSV-Datei zu einem Seriendruck-Dokument aufbereitet.
Der langen Rede kurzer Sinn:

Beim
myOleVar = myWordDocument;

stehe ich an (auch wenn ich den fehlenden Doppelpunkt einfüge)
Heinz Schneider
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.231 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Office 2010 und Delphi-7

  Alt 8. Okt 2013, 15:00
Der langen Rede kurzer Sinn:

Beim
myOleVar = myWordDocument;

stehe ich an (auch wenn ich den fehlenden Doppelpunkt einfüge)
Am Bahnhof oder was? Was für ein Problem hast du genau mit meinen Quellcode?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: Office 2010 und Delphi-7

  Alt 8. Okt 2013, 15:15
Also dämlich bin ich eigentlich nicht!

So wie Du es geschrieben hast:

-> Fehler ':=' erwartet aber '=' gefunden

wenn ich den Doppelpunkt einsetze (also myOleVar := myWordDocument

-> Fehler Inkompatible Typen 'OleVariant' und 'TWordDocument'

In etwa das, was ich versucht habe, zu erklären. Nichts da vom Bahnhof.
Heinz Schneider
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#4

AW: Office 2010 und Delphi-7

  Alt 8. Okt 2013, 15:20
Ich glaube aber, dass der Bahnhof nicht sehr weit weg ist...
Delphi-Quellcode:
...

uses
  ComObj;

...



var
  WordApp, WordDoc: OleVariant;
begin
  WordApp := CreateOleObject('Word.Application');
  WordDoc := WordApp.Documents.Add;
  WordDoc.SaveAs2(...);
  WordApp.Quit();
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#5

AW: Office 2010 und Delphi-7

  Alt 9. Okt 2013, 08:49
Habe ja ein dickes Fell !

Lieber Morphie, das funktioniert prächtig! Ich bekomme ein wunderschönes LEERES PDF. Logisch, mit WordDoc := WordApp.Documents.Add; wird ein neues Dokument erstellt und dann gespeichert.
Nun, ich bin auch schon selbst auf die Idee gekommen, das mit einen WordDoc := WordApp.Documents.Open(FileName := FileName); zu ersetzen was sogar funktionieren würde wenn da nicht noch zwei kleine Details wären:
1. Die Datei FileName ist bereits anderweitig über die Wrapper-Funktionen mit Word geöffnet
2. Sie ist zudem mit einer CSV-Datei als Seriendruck-Datei verknüpft und ich will immer nur vom gerade aktuellen Seriendruck-Datensatz eine PDF-Datei erstellen

Ihr dürft mich ja ruhig an den Bahnhof stellen denn ich habe wirklich keine Ahnung von Word-Anbindung über OLE. Habe bisher immer die Delphi-Wrapper-Funktionen benutzt. Deshalb versuche ich seit gestern auch vergebens, die MailMerge-Funktion, also die CSV-Datei einzubinden.
Heinz Schneider
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#6

AW: Office 2010 und Delphi-7

  Alt 9. Okt 2013, 08:52
Zeig doch mal, wie du es bisher gemacht hast... (Code)
Das sollte dann über Ole auch so funktionieren...
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#7

AW: Office 2010 und Delphi-7

  Alt 9. Okt 2013, 09:15
Delphi-Quellcode:

var lSaveDoc : OleVariant;
var lSaveApp : OleVariant;
var lSaveMail : OleVariant;

begin
  lSaveApp := CreateOleObject('Word.Application');
  lSaveDoc := lSaveApp.Documents.Open(FileName := FileName);
  lSaveMail := lSaveDoc.MailMerge.OpenDataSource(NamCSV);
  lSaveDoc.SaveAs2(FileName := DokVerz + '\' + NewFile, FileFormat := 17);
  lSaveApp.Quit;
end;
Das funktioniert, es kommt aber immer eine Meldung, die CSV-Datei sei bereits offen, ob man mit einer Kopie arbeiten wolle. Ausserdem fehlt noch irgendwie die wirkliche Verbindung den abgespeichert wird in der PDF die Vorlage und nicht die Datei mit den Werten aus der CSV-Datei.
Heinz Schneider
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.231 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Office 2010 und Delphi-7

  Alt 9. Okt 2013, 09:18
Also dämlich bin ich eigentlich nicht!
Das hat keiner Behauptet. Jedoch war dein Post was den deutschen Satzbau betrifft nicht gerade mustergültig und verwirrend (Ok, mach ich auch ab und zu wenn ich schreibe).

So wie Du es geschrieben hast:

-> Fehler ':=' erwartet aber '=' gefunden

wenn ich den Doppelpunkt einsetze (also myOleVar := myWordDocument

-> Fehler Inkompatible Typen 'OleVariant' und 'TWordDocument'
Und solche Informationen wie die genaue Fehlermeldung ist immer sehr hilfreich. Die Glaskugel wollte ich gestern nicht auspacken.

Jetzt mit der Fehlermeldung ist es klar. Ich bin direkt von von COM-Interfaces ausgegangen und nicht von den Delphi-Wrappern.

myOleVar := myWordDocument.DefaultInterface; (und wieder nicht gegenüber den Compiler geprüft).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#9

AW: Office 2010 und Delphi-7

  Alt 9. Okt 2013, 10:27
ja, WINWORD war natürlich noch offen. Hatte ich ja erwähnt. Von der Wrapper-Instanz her. Jetzt habe ich aber die Applikation mit einigen Klimmzügen so umgestellt, dass diese Word-Instanz abgeschlossen ist, wenn diese Funktion gestartet wird. Und jetzt bin ich wieder eine Schneemeile weiter.
Jetzt habe ich nur noch zwei Probleme:
1. Das Kleinere ist eine Meldung, ob man die Änderungen am Dokument speichern wolle oder nicht. Da die Änderungen nie gespeichert werden müssen, braucht es noch irgendwo ein wdDoNotSaveChanges.

2. Das grössere Problem ist die Verbindung zwischen 'Grunddatei' und 'MailMerge-Datei' und die Positionierung auf den richtigen Datensatz in der Mailmerge-Datei. Vorderhand wird mir die PDF-Datei immer noch mit den Merge-Feldern anstelle der Datenfeldern erstellt.
Heinz Schneider
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#10

AW: Office 2010 und Delphi-7

  Alt 9. Okt 2013, 10:34
Da du jetzt weißt, wie man aus Delphi heraus Word ansprechen kann, sollte dir ab jetzt das MSDN weiterhelfen
http://msdn.microsoft.com/en-us/libr...ffice.14).aspx

Dort findest du alles, was du brauchst.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 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