AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi D7 + CrystalReports + Aktualisierung OLE-Links
Thema durchsuchen
Ansicht
Themen-Optionen

D7 + CrystalReports + Aktualisierung OLE-Links

Ein Thema von Bodenseematze · begonnen am 30. Okt 2023 · letzter Beitrag vom 13. Nov 2023
Antwort Antwort
Bodenseematze

Registriert seit: 10. Jul 2023
50 Beiträge
 
#1

D7 + CrystalReports + Aktualisierung OLE-Links

  Alt 30. Okt 2023, 08:23
Hallo zusammen,

ich habe hier ein riesiges spezielles Problem, bei dem ich so langsam verzweifle - ich hoffe, hier im Forum gibt es jemand, der Erfahrung damit hat (die Hoffnung stirbt ja bekanntlich zuletzt )...

Ich verwende hier noch Delphi 7 in Zusammenhang mit Crystal Reports.
Für den Zugriff auf Crystal Reports wird die letzte verfügbare Delphi Wrapper-Klasse Ucrpe32 (war glaube ich für Crystal 11) verwendet (die ich aber inzwischen verändert habe, um Fehler zu beheben bzw. generell ein verbesserte Fehlerhandling zu haben) - ich kann aber schon vorausschauend sagen, dass es am Wrapper nicht liegt
(aber vielleicht an dessen Verwendung?).

Falls es an den Reports selber liegen sollte:
Die eigentlichen Reports (und damit deren Dateiformat) sind noch mit Crystal Reports v7 erstellt worden - das darf ich aktuell auch nicht ändern, weil es noch andere (noch ältere) Delphi-Programme gibt, die diese über den v7-Wrapper verwenden.
Wenn ich diese in einem neueren Crystal Reports-Version Dateiformat speichere, können diese Programme die Reports nicht mehr verwenden.

Die auf den Arbeitsrechnern installierte und damit verwendete Crystal-Reports-Version ist v9, es ginge auch noch v11 - sofern ich noch irgendwo mind. 10 Lizenzen dafür auftreiben kann (aktuell existieren fünfzehn v9 Lizenzen und eine v11-Lizenz).

So jetzt zum eigentlichen Problem: in den Reports integriert sind Bilddateien vom Typ .wmf; diese sind in den Reports als OLE-Link integriert mit "automatischer Aktualisierung".
Wenn der Report geäffnet wird, sollen sich die Inhalte aktualisieren; die dahinterliegenden .wmf-Dateien werden dynamisch über das Programm angepasst (es werden Maßangaben darin ersetzt).

Werden diese Reports in Crystal Reports geöffnet, kann ich kurz den Dialog "ActiveX-Objekte werden aktualisiert" sehen und die Bilder enthalten den Inhalt der aktuellen Dateien.
Also alles so, wie es sein soll.
Das passt auch, wenn ich vom Programm aus Crystal starte (über TCrpe.Output := toExport; TCRpe.ExportOptions.Destination := toApplication; TCRpe.ExportOptions.FileType = CrystalReportRPT).
Aber sobald ich das ganze direkt (über Crystal) an den Drucker schicke (TCrpe.Output := toPrinter) oder auch wenn ich das Crystal Vorschaufenster öffne (TCrpe.Output := toWindow), aktualisieren sich die Links nicht und enthalten den Inhalt, den sie während des Report-Designs hatten und nicht den aktuellen, der in der verlinkten Datei enthalten ist.
Die verlinkten .wmf-Dateien liegen im gleichen Verzeichnis wie die .rpt-Datei - das zeigt mir auch die Ausgabe von TCrpe.OleObjects.Items[x].LinkSource, die den vollständigen (korrekten) Pfad der Datei angibt.
Leider lässt sich dieser Pfad nicht anpassen oder sonst irgendwie die Aktualisierung der OLE-Links über Programmcode erzwingen - zumindest habe ich keine Lösung dafür gefunden.

Nachdem es beim Öffnen von Crystal Reports funktioniert hatte, habe ich versucht das ganze zweistufig zu machen - also zuerst einen Export (TCrpe.Output := toExport; TCRpe.ExportOptions.Destination := toFile; TCrpe.ExportOptions.FileType := CrystalReportRPT) und danach die exportierte Datei an den Drucker oder das Vorschaufenster.
Ich hatte die Hoffnung, dass beim Export-Schritt der Link aktualisiert werden würde - aber leider hat das ebenfalls nicht funktioniert

Ich habe jetzt absolut keine Idee mehr, was ich noch tun könnte und bin völlig ratlos...

Eine (verzweifelte) Idee wäre noch, Crystal Reports minimiert zu starten (das aktualisiert die Links ja dann) und es dann vom Programm aus anzuweisen, das ganze zu drucken - aber wie stelle ich das ohne Benutzerinteraktion an?


Übrigens: in den o.a. Uralt-Programmversionen (die wurden noch mit Delphi v5 geschrieben und verwenden den Crystal v7 Delphi-Wrapper) funktionierte die Aktualisierung der Links noch...

Geändert von Bodenseematze (30. Okt 2023 um 12:28 Uhr) Grund: Idee hinzugefügt
  Mit Zitat antworten Zitat
Bodenseematze

Registriert seit: 10. Jul 2023
50 Beiträge
 
#2

AW: D7 + CrystalReports + Aktualisierung OLE-Links

  Alt 13. Nov 2023, 14:31
inzwischen funktioniert es - der oben beschriebene zweistufige Ansatz war doch der richtige...
...wenn man die temporäre WMF-Datei (auf die der OLE-Link zeigt) vor dem Export über CrystalReports ins Quellverzeichnis kopiert
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 05:48 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