Crystal Report библиотека для классического аспина - PullRequest
1 голос
/ 13 августа 2010

есть ли библиотека для классического asp. Я хочу создать PDF-файл из файла RPT в классическом ASP. Я не хочу устанавливать Crystal Reports. есть ли способ?

-Vivek

1 Ответ

2 голосов
/ 13 августа 2010

Вы можете использовать только распространяемые DLL-библиотеки Crystal Reports, чтобы открыть файл отчета и создать PDF-файл с ним.

Я никогда не пытался открыть библиотеку Crystal Reports напрямую из ASP, но это не должно быть проблемой (или вы можете создать COM Dll в VB6, если можете)

Некоторый код, который у меня есть в VB6 DLL с использованием Crystal Reports 9:

Private Sub Export(ReportFile as string)
    Dim crxReport As Report
    Set crxReport = Prepare(ReportFile )

    crxReport.ExportOptions.FormatType = crEFTPortableDocFormat
    crxReport.ExportOptions.DestinationType = crEDTDiskFile
    crxReport.ExportOptions.DiskFileName = "C:\export\export.pdf"
    crxReport.Export (False)
end sub


Private Function Prepare(ReportFile as string) As Report

    Dim CRapp As CRAXDRT.Application
    Set CRapp = New CRAXDRT.Application
    Dim crxReport As Report
    Dim aDatabaseObject As Database

    Dim aDatabaseTableObject As CRAXDRT.DatabaseTable
    Dim objConn As ConnectionProperty


    Set CRapp = New CRAXDRT.Application
    CRapp.SetLicenseKeycode ("XXXXXXXXXXXXXXXXXXXXXXXX")
    Set crxReport = CRapp.OpenReport(ReportFile)

    Set aDatabaseObject = crxReport.Database
    Set cnn = New ADODB.Connection
    cnn.ConnectionString = MyConnectionString()

    Set aDatabaseObject = crxReport.Database

    For Each aDatabaseTableObject In aDatabaseObject.Tables
        Dim objCPProperties As CRAXDRT.ConnectionProperties
        aDatabaseTableObject.DllName = "crdb_ado.dll"
        Set objCPProperties = aDatabaseTableObject.ConnectionProperties
        objCPProperties.DeleteAll
        objCPProperties.Add "Provider", "SQLOLEDB"
        objCPProperties.Add "Data Source", cnn.Properties.Item("Data Source").Value
        objCPProperties.Add "Initial Catalog", cnn.Properties.Item("Initial Catalog").Value
        objCPProperties.Add "User ID", cnn.Properties.Item("User ID").Value
        objCPProperties.Add "Password", cnn.Properties.Item("Password").Value
        aDatabaseTableObject.Location = aDatabaseTableObject.Name
    Next

    Set Prepare = crxReport

End Function
...