dejavu
Goto Top

Berichtexport als PDF aus .NET heraus

Hallo!

Habe hier einen recht komplizierten Crystal-Report, den ich nur aufrufen will und anschließend als PDF speichern will. Mit den CrystalDecisions.CrystalReports*-Klassen funktioniert das auch in wenigen Zeilen Problemlos.

Das Programm muss jedoch auf einem Server laufen, auf dem nur Crystal Reports 8.5 installiert ist und deshalb muss ich nun den Export auf CRAXDRT-Klassen umschreiben.

Derzeit hab ich folgenden Code:

Dim App As New CRAXDRT.Application
Dim Report As CRAXDRT.Report

Report = App.OpenReport(Reportpfad)
Report.SetReportVariableValue("PARAMETER01", GLN(GLNNr).ToString)
Report.SetReportVariableValue("PARAMETER02", Format(Now(), "yyyyMMdd"))
Report.SetReportVariableValue("PARAMETER03", Format(Now(), "yyyyMMdd"))

Report.ExportOptions.FormatType = CRAXDRT.CRExportFormatType.crEFTPortableDocFormat
Report.ExportOptions.DestinationType = CRAXDRT.CRExportDestinationType.crEDTDiskFile
Report.ExportOptions.PDFExportAllPages = True
Report.ExportOptions.DiskFileName = "C:\Test.pdf"


So funktioniert das natürlich noch gar nicht. Wie bekomme ich die Verbindung auf die Datenbank zustande? Gibt es einen Weg, nur die DB-Connection Informationen zu hinterlegen oder muss man mit RecordSets arbeiten?

Danke für Antworten und Grüße
Gerhard

Content-Key: 35519

Url: https://administrator.de/contentid/35519

Printed on: April 19, 2024 at 18:04 o'clock

Member: DejaVu
DejaVu Jul 17, 2006 at 12:56:40 (UTC)
Goto Top
Hallo!

Mit den CRAX*-Klassen habe ich es nicht zum Laufen gebracht. Deshalb verwende ich nun die CrystalDecisions-Klassen von VisualStudio2003.NET. Dann sieht das ganze so aus:

Dim myReport As CrystalDecisions.CrystalReports.Engine.ReportDocument
Try
myReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument
myReport.Load(Reportpfad, CrystalDecisions.[Shared].OpenReportMethod.OpenReportByDefault)
If myReport.IsLoaded = True Then
myReport.SetParameterValue("PARAMETER01", GLN(GLNNr).ToString)
myReport.SetParameterValue("PARAMETER02", Format(Now(), "yyyyMMdd"))
myReport.SetParameterValue("PARAMETER03", Format(Now(), "yyyyMMdd"))
myReport.SetDatabaseLogon(DBUser, DBPWD)
myReport.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, Filename & ".pdf")
myReport.Close()
End If
catch oex as exception
...
end try


Funktioniert tadellos - allerdings müssen hierfür die Crystal-Dateien aus VB.NET2003 auf dem Rechner installiert sein. Ausserdem muss eine ODBC-Datenquelle angelegt werden, die genau so heißt, wie der Server im Report selbst (Datenbank - Pfad festlegen - Server).

lg
Gerhard