Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView1.SelectedIndexChanged
Dim rptv As New rptVenta()
Session("vseleccionada") = GridView1.SelectedRow().Cells(1).Text.ToString()
Dim daove As New DAOVenta()
Dim tabla As New DataTable()
tabla = daove.ImprimirFactura(Session("vseleccionada").ToString(), Session("nombreusuario").ToString())
'Label2.Text = tabla.Rows(0)(3).ToString()
' rptv.SetDatabaseLogon("ventas.triton", "triton")
' rptv.SetDatabaseLogon("ventas.triton", "triton", "alumno-auc", "admodos")
rptv.SetDataSource(tabla)
rptv.SetDatabaseLogon("ventas.triton", "triton", ".", "admodos")
CrystalReportViewer1.ReportSource = rptv
rptv.Load("..\GUI\rptVenta.rpt")
CrystalReportViewer1.LogOnInfo().Item(0).ConnectionInfo().DatabaseName = "admodos"
CrystalReportViewer1.LogOnInfo().Item(0).ConnectionInfo().IntegratedSecurity = True
CrystalReportViewer1.LogOnInfo().Item(0).ConnectionInfo().Password = "triton"
CrystalReportViewer1.LogOnInfo().Item(0).ConnectionInfo().ServerName = "."
CrystalReportViewer1.LogOnInfo().Item(0).ConnectionInfo().UserID = "ventas.triton"
' CrystalReportSource1.ReportDocument.SetDatabaseLogon("USER", "PASSWORD", "SERVIDOR", "Base de datos")
CrystalReportViewer1.BackColor = Drawing.Color.White
'CrystalReportViewer1.DataBind()
Label2.Text = Session("vseleccionada").ToString() + Session("nombreusuario").ToString()
End Sub
我有一个错误
The report requested additional information needed.
那么,让它发挥作用的正确步骤是什么?我在 Visual Basic、visual studio 2008、sql server 2008 r2 中编程。
最佳答案
我以前收到过这个错误。我不记得我是如何修复它的(它发生在 2-3 年前),但这是项目中的代码。我不得不将它转换成 VB,但我编译并运行它,它运行良好。顺便说一下,这是在 ASP.Net 网页表单页面中,所以这是来自背后的代码。页面中的代码只有 CrystalReportViewer。
引用文献:
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
ConfigureCrystalReports()
End Sub
Private Sub ConfigureCrystalReports()
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
myConnectionInfo.DatabaseName = "ReportDatabase"
myConnectionInfo.UserID = "ReportUser"
myConnectionInfo.Password = "ReportPassword"
myConnectionInfo.ServerName = "ReportServer"
Dim ParamArrayList As ArrayList = New ArrayList()
aReport = New ReportDocument()
Dim reportPath As String = Server.MapPath("Report\ReportName.rpt")
aReport.Load(reportPath)
Dim Param as ArrayList
Param.Add("Value")
SetCurrentValuesForParameterField(aReport, Param, "@Param1")
myCrystalReportViewer.ReportSource = aReport
SetDBLogonForReport(myConnectionInfo, aReport)
End Sub
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument)
Dim myTables As Tables = myReportDocument.Database.Tables
For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables
Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo
myTableLogonInfo.ConnectionInfo = myConnectionInfo
myTable.ApplyLogOnInfo(myTableLogonInfo)
Next
End Sub
Private Sub SetCurrentValuesForParameterField(ByVal myReportDocument As ReportDocument, ByVal myArrayList As ArrayList, ByVal ParameterFieldName As String)
Dim currentParameterValues As ParameterValues = New ParameterValues()
For Each submittedValue As Object In myArrayList
Dim myParameterDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue()
myParameterDiscreteValue.Value = submittedValue.ToString()
currentParameterValues.Add(myParameterDiscreteValue)
Next
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(ParameterFieldName)
myParameterFieldDefinition.ApplyCurrentValues(currentParameterValues)
End Sub
Private Sub SetCurrentValuesForParameterField(ByVal myReportDocument As ReportDocument, ByVal myArrayList As ArrayList, ByVal ParameterFieldName As String, ByVal SubReportName As String)
Dim currentParameterValues As ParameterValues = New ParameterValues()
For Each submittedValue As Object In myArrayList
Dim myParameterDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue()
myParameterDiscreteValue.Value = submittedValue.ToString()
currentParameterValues.Add(myParameterDiscreteValue)
Next
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(ParameterFieldName, SubReportName)
myParameterFieldDefinition.ApplyCurrentValues(currentParameterValues)
End Sub
关于asp.net - asp.net 中程序 Crystal 报告的正确形式是什么?和视觉基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6951496/