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

Office 2010 und Delphi-7

  Alt 8. Okt 2013, 13:32
Hallo zusammen

ich sollte für einen Kunden eine Delphi-7-Applikatiom mit Office-Automation von Office-2003 auf Office-2010 umstellen. Leider kann ich das Programm nicht auf XE migrieren. Da sind derart viele speziell für den Kunden beschaffte Komponenten drin und der will kein Geld für diese Migration aufwerfen.
Eigentlich funktionieren alle Office-Schnittstellen-Funktionen auch unter Office-2010, nur will der Kunde, dass Dokumente direkt als PDF gespeichert werden können. Geht ja mit der neuen Funktion SaveAs2. Nur kennt Delphi7 die von Haus aus nicht. Ich hab deshalb versucht, das Microsoft Office XP Beispiel Wrapper-Komponenten für Automationsserver - Package zu deinstallieren und die Word-Typenbibliothek zu importieren, aber da bekomme ich einen Umwandlungsfehler.
Hat jemand eine Idee, wie ich die Office-2010-Funktionen ins Delphi-7 bekomme?
Heinz Schneider
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: Office 2010 und Delphi-7

  Alt 8. Okt 2013, 13:40
Für dies eine Funktion würde ich mit OleVariant und später Bindung arbeiten.

Delphi-Quellcode:
var
  myOleVar: OleVariant;

begin
  ...
  myOleVar = myWordDocument;
  myOleVar.SaveAs2(...);
  ...
end;
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, 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.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

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
 
#5

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
 
#6

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
 
#7

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
 
#8

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
 
#9

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
Morphie

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

AW: Office 2010 und Delphi-7

  Alt 9. Okt 2013, 09:18
Hast du vielleicht irgendwo im Hintergrund (Taskmanager > Reiter "Prozesse") noch WinWord.exe oder sowas geöffnet?
  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 15:46 Uhr.
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