У меня проблема с моими отчетами 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