SUBREPORT COM PARAMETERFIELD - STORE PROCEDURE

NEIBALA 07/04/2015 11:34:13
#445778
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
NEIBALA 09/04/2015 08:41:46
#445823
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
Tópico encerrado , respostas não são mais permitidas