SUBREPORT COM PARAMETERFIELD - STORE PROCEDURE
Pessoal
Com base na estrutura abaixo, como faria para implementar um subreport, onde estou utilizando store procedure, e estou pensando em utilizar o parametro ParameterFieldName, onde o parametro do report é id_Pedido_Item, alguém teria alguma dica para me passar ?
Dim rptPrint As ReportDocument = New ReportDocument
rptPrint.Load(Me.nm_Path_RPT)
rptPrint.DataSourceConnections.Clear()
For nr_Servidor As Integer = 0 To rptPrint.DataSourceConnections.Count - 1
rptPrint.DataSourceConnections(nr_Servidor).SetConnection(Me.nm_Servidor, Me.nmBancoDados, Me.nm_Usuario, Me.ds_Senha)
rptPrint.SetDatabaseLogon(Me.nm_Usuario, Me.ds_Senha, Me.nm_Servidor, Me.nmBancoDados)
Next
Dim paramFields As New ParameterFields
Dim paramField As New ParameterField
Dim discreteVal As New ParameterDiscreteValue
paramField.ParameterFieldName = [Ô]id_Pedido_Principal[Ô]
discreteVal.Value = [Ô]00001234[Ô]
paramField.CurrentValues.Add(discreteVal)
paramFields.Add(paramField)
CrystalReportViewer1.ParameterFieldInfo = paramFields
CrystalReportViewer1.ReportSource = rptPrint
Com base na estrutura abaixo, como faria para implementar um subreport, onde estou utilizando store procedure, e estou pensando em utilizar o parametro ParameterFieldName, onde o parametro do report é id_Pedido_Item, alguém teria alguma dica para me passar ?
Dim rptPrint As ReportDocument = New ReportDocument
rptPrint.Load(Me.nm_Path_RPT)
rptPrint.DataSourceConnections.Clear()
For nr_Servidor As Integer = 0 To rptPrint.DataSourceConnections.Count - 1
rptPrint.DataSourceConnections(nr_Servidor).SetConnection(Me.nm_Servidor, Me.nmBancoDados, Me.nm_Usuario, Me.ds_Senha)
rptPrint.SetDatabaseLogon(Me.nm_Usuario, Me.ds_Senha, Me.nm_Servidor, Me.nmBancoDados)
Next
Dim paramFields As New ParameterFields
Dim paramField As New ParameterField
Dim discreteVal As New ParameterDiscreteValue
paramField.ParameterFieldName = [Ô]id_Pedido_Principal[Ô]
discreteVal.Value = [Ô]00001234[Ô]
paramField.CurrentValues.Add(discreteVal)
paramFields.Add(paramField)
CrystalReportViewer1.ParameterFieldInfo = paramFields
CrystalReportViewer1.ReportSource = rptPrint
Pessoal
Acabei conseguindo imprimir no momento de forma básica, o subreport, e segue abaixo a estrutura desenvolvida, e gostaria da opinião de vocês, de algo que possa ser melhorado.
Dim obj_rptPrint As ReportDocument = New ReportDocument
Dim objParameterFields As ParameterFields = Nothing
Dim objParameterField As ParameterField = Nothing
Dim objParameterValues As ParameterValues = Nothing
Dim objParameterDiscreteValue As ParameterDiscreteValue = Nothing
Dim objParameterRangeValue As ParameterRangeValue = Nothing
obj_rptPrint.Load(Me.nm_Path_RPT)
obj_rptPrint.DataSourceConnections.Clear()
For nr_Servidor As Integer = 0 To (obj_rptPrint.DataSourceConnections.Count - 1)
obj_rptPrint.DataSourceConnections(nr_Servidor).SetConnection(Me.nm_Servidor, Me.nmBancoDados, Me.nm_Usuario, Me.ds_Senha)
obj_rptPrint.SetDatabaseLogon(Me.nm_Usuario, Me.ds_Senha, Me.nm_Servidor, Me.nmBancoDados)
Next
For Each obj_subReport As ReportObject In obj_rptPrint.ReportDefinition.ReportObjects
If (obj_subReport.Kind.Equals(ReportObjectKind.SubreportObject)) Then
Dim obj_subreportObject As SubreportObject = DirectCast(obj_subReport, SubreportObject)
Dim obj_subReportDocument As ReportDocument = obj_subreportObject.OpenSubreport(obj_subreportObject.SubreportName)
For nr_Servidor As Integer = 0 To (obj_subReportDocument.DataSourceConnections.Count - 1)
obj_subReportDocument.DataSourceConnections(nr_Servidor).SetConnection(Me.nm_Servidor, Me.nmBancoDados, Me.nm_Usuario, Me.ds_Senha)
obj_subReportDocument.SetDatabaseLogon(Me.nm_Usuario, Me.ds_Senha, Me.nm_Servidor, Me.nmBancoDados)
Next
End If
Next
objParameterFields = obj_rptPrint.ParameterFields
objParameterField = objParameterFields([Ô]@id_Controle1[Ô])
objParameterValues = objParameterField.CurrentValues
objParameterDiscreteValue = New ParameterDiscreteValue()
objParameterDiscreteValue.Value = [Ô]000000468[Ô]
objParameterValues.Add(objParameterDiscreteValue)
objParameterField = objParameterFields([Ô]@id_Controle2[Ô], [Ô]Fatura[Ô])
objParameterValues = objParameterField.CurrentValues
objParameterValues.Clear()
objParameterDiscreteValue = New ParameterDiscreteValue()
objParameterDiscreteValue.Value = [Ô]468[Ô]
objParameterValues.Add(objParameterDiscreteValue)
crpt.ParameterFieldInfo = objParameterFields
crpt.ReuseParameterValuesOnRefresh = True
crpt.ReportSource = obj_rptPrint
Acabei conseguindo imprimir no momento de forma básica, o subreport, e segue abaixo a estrutura desenvolvida, e gostaria da opinião de vocês, de algo que possa ser melhorado.
Dim obj_rptPrint As ReportDocument = New ReportDocument
Dim objParameterFields As ParameterFields = Nothing
Dim objParameterField As ParameterField = Nothing
Dim objParameterValues As ParameterValues = Nothing
Dim objParameterDiscreteValue As ParameterDiscreteValue = Nothing
Dim objParameterRangeValue As ParameterRangeValue = Nothing
obj_rptPrint.Load(Me.nm_Path_RPT)
obj_rptPrint.DataSourceConnections.Clear()
For nr_Servidor As Integer = 0 To (obj_rptPrint.DataSourceConnections.Count - 1)
obj_rptPrint.DataSourceConnections(nr_Servidor).SetConnection(Me.nm_Servidor, Me.nmBancoDados, Me.nm_Usuario, Me.ds_Senha)
obj_rptPrint.SetDatabaseLogon(Me.nm_Usuario, Me.ds_Senha, Me.nm_Servidor, Me.nmBancoDados)
Next
For Each obj_subReport As ReportObject In obj_rptPrint.ReportDefinition.ReportObjects
If (obj_subReport.Kind.Equals(ReportObjectKind.SubreportObject)) Then
Dim obj_subreportObject As SubreportObject = DirectCast(obj_subReport, SubreportObject)
Dim obj_subReportDocument As ReportDocument = obj_subreportObject.OpenSubreport(obj_subreportObject.SubreportName)
For nr_Servidor As Integer = 0 To (obj_subReportDocument.DataSourceConnections.Count - 1)
obj_subReportDocument.DataSourceConnections(nr_Servidor).SetConnection(Me.nm_Servidor, Me.nmBancoDados, Me.nm_Usuario, Me.ds_Senha)
obj_subReportDocument.SetDatabaseLogon(Me.nm_Usuario, Me.ds_Senha, Me.nm_Servidor, Me.nmBancoDados)
Next
End If
Next
objParameterFields = obj_rptPrint.ParameterFields
objParameterField = objParameterFields([Ô]@id_Controle1[Ô])
objParameterValues = objParameterField.CurrentValues
objParameterDiscreteValue = New ParameterDiscreteValue()
objParameterDiscreteValue.Value = [Ô]000000468[Ô]
objParameterValues.Add(objParameterDiscreteValue)
objParameterField = objParameterFields([Ô]@id_Controle2[Ô], [Ô]Fatura[Ô])
objParameterValues = objParameterField.CurrentValues
objParameterValues.Clear()
objParameterDiscreteValue = New ParameterDiscreteValue()
objParameterDiscreteValue.Value = [Ô]468[Ô]
objParameterValues.Add(objParameterDiscreteValue)
crpt.ParameterFieldInfo = objParameterFields
crpt.ReuseParameterValuesOnRefresh = True
crpt.ReportSource = obj_rptPrint
Tópico encerrado , respostas não são mais permitidas