Usuário com melhor resposta
CRYSTAL REPORT VIEWER: ERRO

Pergunta
-
Boa tarde galera !
Copiei o código do Macoratti (abaixo) e está dando o seguinte erro... Índice inválido. (Exceção de HRESULT: 0x8002000B (DISP_E_BADINDEX)) (O código é para filtrar criando parâmetros)
O erro dá nessa parte...
crParameterFieldLocation = crParameterFieldDefinitions.Item("")
Estou usando VB.NET e Access BD
Alguém pode me ajudar ?
Código:
Private Sub btnGerar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGerar.Click If Not txtEstipulante.Text = String.Empty Then ' carrega o relatorio desejado Dim strReportName As String = "Relatorio" ' 'define o caminho e nome do relatorio Dim strReportPath As String = "C:\Users\marcos.proenca\Desktop\App Resumo Apólice v2.0 - Login\ResumoAp\ResumoAp\Relatorio.rpt" '" & "\" & strReportName & " 'verifica se o arquivo existe If Not IO.File.Exists(strReportPath) Then Throw (New Exception("Relatorio nao localizado :" & vbCrLf & strReportPath)) End If ' 'instancia o relaorio e carrega Dim CR As New ReportDocument CR.Load(strReportPath) ' ' atribui os parametros declarados aos objetos relacionados Dim crParameterDiscreteValue As CrystalDecisions.Shared.ParameterDiscreteValue Dim crParameterFieldDefinitions As ParameterFieldDefinitions Dim crParameterFieldLocation As ParameterFieldDefinition Dim crParameterValues As CrystalDecisions.Shared.ParameterValues ' ' Pega a coleção de parametros do relatorio crParameterFieldDefinitions = CR.DataDefinition.ParameterFields ' ' define o primeiro parametro ' - pega o parametro e diz a ela para usar os valores atuais ' - define o valor do parametro ' - inclui e aplica o valor ' - repete para cada parametro se for o caso (não é o caso deste exemplo) ' Vamos usar o parametro 'cidade' crParameterFieldLocation = crParameterFieldDefinitions.Item("") crParameterValues = crParameterFieldLocation.CurrentValues crParameterDiscreteValue = New CrystalDecisions.Shared.ParameterDiscreteValue 'obtem o valor da caixa de texto crParameterDiscreteValue.Value = txtEstipulante.Text crParameterValues.Add(crParameterDiscreteValue) crParameterFieldLocation.ApplyCurrentValues(crParameterValues) ' ' Define a fonte do controle Crystal Report Viewer como sendo o relatorio definido acima CrystalReportViewer1.ReportSource = CR Else MsgBox("Informe a Estipulante.") End If
Valeu.
- Editado Markus Proença segunda-feira, 14 de dezembro de 2015 16:50
Respostas
-
Mais vc está passando via aplicação o parametro e esse parametro tem que existir no relatório fisico.
Vá em field explorer vá em parameter field, é assim que vc cria os parametros.
Veja esse link
http://www.macoratti.net/08/10/crys_up1.htm
Junior
- Editado Junior_luiz segunda-feira, 14 de dezembro de 2015 19:13 errei
- Marcado como Resposta Markus Proença terça-feira, 15 de dezembro de 2015 16:13
Todas as Respostas
-
-
-
Esse parametro tem que ser criado no rdlc no report viewer.
Vc está passando algum valor para ele ? se não estiver ou ele pode vir com valor nulo, marque a opção no rdlc permitindo que o parametro receba valor nulo, pode ser esse o erro.
Junior
-
Mas estou usando Crystal Report Viewer o formato é rpt...
Estou passando o valor do Crystal Report que nomeei como "Relatorio.rpt", e esse "Relatorio" está puxando Informações de uma tabela no meu bd access.
Se eu estiver falando Mer!$%@ me diz onde acho essa opção, não manjo mexer com relatório.
Valeu.
-
Mais vc está passando via aplicação o parametro e esse parametro tem que existir no relatório fisico.
Vá em field explorer vá em parameter field, é assim que vc cria os parametros.
Veja esse link
http://www.macoratti.net/08/10/crys_up1.htm
Junior
- Editado Junior_luiz segunda-feira, 14 de dezembro de 2015 19:13 errei
- Marcado como Resposta Markus Proença terça-feira, 15 de dezembro de 2015 16:13
-