C++ Crystal Reports exportieren ohne DB und Kenntniss des verwendeten Datasets

Blubberbernd

Cadet 4th Year
Registriert
Juli 2009
Beiträge
94
Hallo Zusammen,

ich habe die Aufgabe Dateien nach bestimmten Stichwörtern zu scannen, darunter sind auch rpt-Files.

Jedoch sollen diese erstellten rpt-Files nur auf die Property "Text" der Labels untersucht werden.


Zu diesem Zweck möchte ich den Report als Stream exportieren, jedoch ohne die durch ein Dataset angebunden "Fieldobjects" oder Textfelder usw.
Diese Felder sollen schlicht weg garnicht gefüllt werden, so dass bei einem Export an der Stelle ein leerer String stehen würde.

Zu diesem Zweck kann man eine Instanz des verwendeten Datasets erzeugen, mit leeren Strings füllen und als neue Datasource dem Report zuweisen, jedoch ist mir das Dataset bzw der Datatable unbekant, da es durch einen Drittanbieter dem Report zugewiesen ist.

Durch manuelles öffnen des Reports in VS2005 kann ich den Namen des Tables und die Columns sehen, jedoch möchte ich alles automatisch durch ein programm ausführen lassen, da es eine große Anzahl an Reports sind und diese auch wechseln, was eine harte Codierung der Datasets ausschließt.


Da Reports wie ich gehört habe von Natur aus faul sind, sind die Informationen bezüglich der Datasource schon im Report selbst hinterlegt.

Beim debuggen ist es mir auch schon gelungen im Report die Property für den Namen des DataTables zu finden, sowie die Anzahl der Columns im Datatable.
Es scheint wohl auch eine Property FieldValueCollection oder so ähnlich zu geben, jedoch ist es mir nicht gelungen die Namen der Fields und der dazugehörigen Datentypen zu finden.

Anhand dieser im Report hinterlegten Properties soll dann eine neue gleichwertige Dataset-Instanz erzeugt werden, die jedoch mit leeren String hinterlegt ist um bei einem Export nur die Labels zu erhalten und abzuspeichern.

Eventuell ist es ja auch möglich über die Properties und Methoden den Text der beinhaltenden Labels in Erfahrung zu bringen, oder es gibt noch andere Methoden die zum besagten Ziel führen (Defaultbelegung der Objectboxen wenn keine Datenbank vorhanden)?

Für jegliche Hinweise zur Lösung des Problems und zum auffinden der benötigten Werte bin ich sehr dankbar.

Bei der Rechtschreibung bitte ich um Nachsicht!
 
HMMM....,

hat wirklich keiner eine Idee wie ich Reports exportiere und dabei die Datenbankfelder leer lasse?
 
Im Programm Code kannst du vor dem Aufruf Felder setzen. report.selectformula = "{Feldxy} = Wert"
oder so ähnlich heißt der aufruf.

Wenn auf eine lokale DB durch 3te zugegriffen werden soll würde ich einfach eine ODBC Quelle erstellen und diese in Crystal reports als ODBC Quelle mit gleichen Namen erstellen, wo dann zuletzt die Daten herkommen kommt vom lokalen Rechner per ODBC Quelle.

Dann wird durch den lokalen Rechner die ODBC Quelle mit dem gleichen Namen zugegriffen werden.
Oder habe ich dich jetzt falsch verstanden.

Du kannst auch Befehle in Crystal Reports nutzen. z. B. Select * from tabelle1 union select * from tabelle2
Kann man nicht auch gar keine Quelle angeben. Habe es bisher immer nur mit einer Tabelle genutzt.

Wie das in deinem Fall funktioniert kann ich nicht sagen, was passiert denn wenn du gar keine Tabellen einfügst?
 
Zuletzt bearbeitet:
Zurück
Oben