Crystal Report в VS2008 не отображает данные в Интернете - PullRequest
1 голос
/ 17 марта 2012

У меня проблема с моими отчетами Crystal в Visual Studio 2008, и после поиска и поиска я ничего не получил.

Мой файл CrystalReportxxx.rpt содержит файл xsd в виде даташемы.Дата создается и передается в отчет как источник данных.Для заполнения таблицы данных мое приложение подключается к базе данных Oracle.

Для отображения строк или данных с помощью CrystalReportViewer в отчете требуются учетные данные, такие как логин и пароль базы данных.Однако если я экспортирую этот отчет в файл PDF, учетные данные не требуются, и файл PDF отображает все строки.

Это мой код:

      Dim dt As DataTable 
        FunctionsOP.CreaDataTable("pkg_list.sp_list", True, ospEntry, 
dt) 
        Dim oRpt As New Reportes.CrystalReportxxx 
        oRpt.SetDatabaseLogon("userxxx", "passwordxxx") 
        oRpt.SetDataSource(dt) 
        CrystalReportViewer1.EnableDatabaseLogonPrompt = False
        CrystalReportViewer1.ReportSource = oRpt 
        CrystalReportViewer1.DataBind() 
        CrystalReportViewer1.Dispose() 

Я предполагаю, что при установке:oRpt.SetDatabaseLogon ("userxxx", "passwordxxx") и отчет не показывает данных, потому что учетные данные неверны.

Мой вопрос: как обойти этот ввод учетных данных?

Обязательно ли вводить идентификатор пользователя, пароль и т. Д. Для использования файла xsd в моем отчете Crystal Report?

Что мне странно, когда я экспортирую этот отчетв PDF нет проблем.Данные отображаются в порядке, и учетные данные не требуются:

    Dim exportOpts As ExportOptions = oRpt.ExportOptions 
        oRpt.ExportOptions.ExportFormatType = 
ExportFormatType.PortableDocFormat 
        oRpt.ExportOptions.ExportDestinationType = 
ExportDestinationType.DiskFile 
        oRpt.ExportOptions.DestinationOptions = New 
DiskFileDestinationOptions 
        CType(oRpt.ExportOptions.DestinationOptions, 
DiskFileDestinationOptions).DiskFileName = Server.MapPath("../Temp/" + 
PDFName) 
        oRpt.Export() 
        oRpt.Close() 
        oRpt.Dispose() 

Я также попробовал этот код:

  Dim dt1 As New DataTable : Dim dt2 As New DataTable
    Dim oRpt As New Reportes.CR_IndicadorA11
    Dim ParRep As ReportClass = oRpt
    SetConnectionsReports(ParRep)
    FunctionsOP.CreaDataTable("pkg_Listar_Tipos.sp_indicador_a11_sum", True, Nothing, dt1)
    FunctionsOP.CreaDataTable("pkg_Listar_Tipos.sp_indicador_a11_det", True, Nothing, dt2)
    oRpt.SetDataSource(dt1)
    oRpt.OpenSubreport("CR_sub_indicadorA11_det.rpt").SetDataSource(dt2)

    CrystalReportViewer1.Visible = True
    CrystalReportViewer1.EnableDatabaseLogonPrompt = False
    CrystalReportViewer1.ReportSource = oRpt
    CrystalReportViewer1.DataBind()
    CrystalReportViewer1.Dispose()

    Public Sub SetConnectionsReports(ByRef Rpt As ReportClass)
            Dim server, base, user, pass As String

            server = "SRVBDDESA2.DOMINTERN0XXX.LOCAL" ' also with IP number is the same

            base = "DESAOPINT"
            user = "ORGPOL"
            pass = "desarrollo"

            For Each connection As IConnectionInfo In Rpt.DataSourceConnections
                connection.SetConnection(server, base, user, pass)
            Next
    End Sub
...