Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

visnadi

[Resolvido] passar parametros da pagina para o report

Recommended Posts

Pessoal é o seguinte, estou utilizando o crystal do VS2005 para gera os relatorios do site.

Os relatórios possuem o mesmo layout (os campos exibidos são semrpe os mesmos), o que muda é apenas o filtro do select, então para eu não ter que fazer um relatorio pra cada filtro eu queria usar o mesmo e nele utilizar o parameter field para receber o nome do relatório(Título) e o filtro usado(exemplo data de inicio e fim que é o filtro).

Alguém pode em ajudar como passar o parametro?

Tentei o seguinte codigo:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		Dim oper As String
		Dim inicial As String
		Dim final As String
		Dim texto As String
		texto = "Com Vencimento entre:"
		Dim sql As String
		Dim parametro As String
		parametro = Request.QueryString("parametro1")
		If parametro.Length < 24 Then
			parametro = "aaaaaaaa" + parametro
			oper = parametro.Substring(1, 8)
			inicial = parametro.Substring(9, 8)
			final = parametro.Substring(17, 8)
			sql = "SELECT tbscc_conta.pkey, tbscc_conta.fk_operadora, tbscc_conta.nr_fatura, tbscc_conta.nr_nota_fiscal, tbscc_conta.nr_linha, tbscc_conta.dt_recebimento,tbscc_conta.dt_emissao, tbscc_conta.vl_fatura, tbscc_conta.dt_vencimento, tbscc_conta.dt_pagamento, tbscc_conta.vl_pagamento,tbscc_conta.tp_servico, tbscc_conta.st_aprovacao_pagamento, tbscc_conta.dt_aprovacao, tbscc_conta.dc_usuario_aprovacao,tbscc_conta.dc_contestacao, tbscc_conta.vl_contestacao, tbscc_conta.dc_path_arquivo_digital, tbscc_conta.dc_path_arquivo_contestacao,tbscc_conta.dc_barcode_header, tbscc_conta.dc_barcode_pagto, tbscc_conta.id_status_conta, tbscc_conta.id_revisar, tbscc_conta.dt_contestacao,tbscc_conta.dc_usuario_contestacao, tbscc_conta.dt_confirmacao_pagamento, tbscc_conta.dc_usuario_confirmacao_pagamento,tbscc_conta.dc_historico, tbscc_conta.cd_cliente_conta, tbscc_conta.dt_pagamento_real, tbscc_conta.vl_pagamento_real,tbscc_conta.dc_historico_pagamento, tbscc_conta.nr_contrato_sap, tbscc_conta.dt_renegociada, tbscc_conta.nr_conta, tbscc_operadora.dc_fornecedor, tbscc_operadora.dc_fantasia, tbscc_status_conta.dc_status_conta FROM tbscc_conta LEFT OUTER JOIN tbscc_operadora ON tbscc_operadora.pkey = tbscc_conta.fk_operadora LEFT OUTER JOIN tbscc_status_conta ON tbscc_status_conta.pkey = tbscc_conta.id_status_conta WHERE  (tbscc_conta.dt_vencimento BETWEEN '" & inicial & "' AND '" & final & "')"
		Else
			oper = parametro.Substring(1, 8)
			inicial = parametro.Substring(9, 8)
			final = parametro.Substring(17, 8)
			sql = "SELECT tbscc_conta.pkey, tbscc_conta.fk_operadora, tbscc_conta.nr_fatura, tbscc_conta.nr_nota_fiscal, tbscc_conta.nr_linha, tbscc_conta.dt_recebimento,tbscc_conta.dt_emissao, tbscc_conta.vl_fatura, tbscc_conta.dt_vencimento, tbscc_conta.dt_pagamento, tbscc_conta.vl_pagamento,tbscc_conta.tp_servico, tbscc_conta.st_aprovacao_pagamento, tbscc_conta.dt_aprovacao, tbscc_conta.dc_usuario_aprovacao,tbscc_conta.dc_contestacao, tbscc_conta.vl_contestacao, tbscc_conta.dc_path_arquivo_digital, tbscc_conta.dc_path_arquivo_contestacao,tbscc_conta.dc_barcode_header, tbscc_conta.dc_barcode_pagto, tbscc_conta.id_status_conta, tbscc_conta.id_revisar, tbscc_conta.dt_contestacao,tbscc_conta.dc_usuario_contestacao, tbscc_conta.dt_confirmacao_pagamento, tbscc_conta.dc_usuario_confirmacao_pagamento,tbscc_conta.dc_historico, tbscc_conta.cd_cliente_conta, tbscc_conta.dt_pagamento_real, tbscc_conta.vl_pagamento_real,tbscc_conta.dc_historico_pagamento, tbscc_conta.nr_contrato_sap, tbscc_conta.dt_renegociada, tbscc_conta.nr_conta, tbscc_operadora.dc_fornecedor, tbscc_operadora.dc_fantasia, tbscc_status_conta.dc_status_conta FROM tbscc_conta LEFT OUTER JOIN tbscc_operadora ON tbscc_operadora.pkey = tbscc_conta.fk_operadora LEFT OUTER JOIN tbscc_status_conta ON tbscc_status_conta.pkey = tbscc_conta.id_status_conta WHERE	 (tbscc_conta.fk_operadora = '" & oper & "') AND (tbscc_conta.dt_vencimento BETWEEN '" & inicial & "' AND '" & final & "')"
		End If


		Dim sqlcmd As SqlCommand
		sqlcmd = New SqlCommand()
		sqlcmd.Connection = conn
		sqlcmd.CommandText = sql
		Dim daOperadora As New SqlDataAdapter()
		daOperadora.SelectCommand = sqlcmd
		
		Dim CamposParametros As New ParameterFields
		Dim VctoIni As New ParameterField
		Dim DiscretoIni As New ParameterDiscreteValue

		Dim VctoFim As New ParameterField
		Dim DiscretoFim As New ParameterDiscreteValue

		Dim ltexto As New ParameterField
		Dim DiscretoTexto As New ParameterDiscreteValue

		VctoIni.ParameterFieldName = "inicio"
		DiscretoIni.Value = inicial
		VctoIni.CurrentValues.Add(DiscretoIni)

		VctoFim.ParameterFieldName = "fim"
		DiscretoFim.Value = final
		VctoFim.CurrentValues.Add(DiscretoFim)

		ltexto.ParameterFieldName = "texto"
		DiscretoTexto.Value = texto
		ltexto.CurrentValues.Add(DiscretoTexto)

		CamposParametros.Add(ltexto)
		CamposParametros.Add(VctoIni)
		CamposParametros.Add(VctoFim)

		
		Dim dsRelatorio As New dsContAOper()

		
		conn.Close()
		conn.Open()
		daOperadora.Fill(dsRelatorio.sp_contaoper)
		conn.Close()
		
		Dim a As String
		a = Session("nomereport")
		Dim crs As New CrystalReportSource()
		crs.Report.FileName = a
		crs.ReportDocument.SetDataSource(dsRelatorio)

		
		crv.ParameterFieldInfo = CamposParametros
		crv.ReportSource = crs
		crv.DataBind()
	End Sub

Porém após mandar gerar o relatório recebo a mensagem: Parametro incorreto.

Sendo q no report criei os campos no formato e tipo certo.

Se alguém puder me ajudar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada nesse código em C# e verifica o que você pode tirar de proveito.

 

Abraço!

DataSet ds = new DataSet();
			Clientes_Diretos.getFacade = 10;
			Clientes_Diretos.getCic_cgc = Convert.ToInt32(PCDCLIENTE);
			ds = wsICCAR.ExecutaSQLClientes_Diretos(Clientes_Diretos);

			if (ds.Tables.Count > 0)
			{
				if (ds.Tables[0].Rows.Count > 0)
				{

					ParameterFields paramFields = new ParameterFields();
					ParameterField paramFieldDataInicio = new ParameterField();
					ParameterField paramFieldDataFim = new ParameterField();
					ParameterField paramFieldPagina = new ParameterField();
					ParameterDiscreteValue discreteDataInicio = new ParameterDiscreteValue();
					ParameterDiscreteValue discreteDataFim = new ParameterDiscreteValue();
					ParameterDiscreteValue discretePagina = new ParameterDiscreteValue();

					discreteDataInicio.Value = Convert.ToDateTime(Clientes_Diretos.getData1);
					discreteDataFim.Value = Convert.ToDateTime(Clientes_Diretos.getData2);
					discretePagina.Value = "FSGP032";

					paramFieldDataInicio.Name = "DTINICIAL";
					paramFieldDataInicio.CurrentValues.Add(discreteDataInicio);
					paramFieldDataFim.Name = "DTFINAL";
					paramFieldDataFim.CurrentValues.Add(discreteDataFim);
					paramFieldPagina.Name = "PAGINA";
					paramFieldPagina.CurrentValues.Add(discretePagina);

					paramFields.Add(paramFieldDataInicio);
					paramFields.Add(paramFieldDataFim);
					paramFields.Add(paramFieldPagina);

					relatorio.FileName = @"C:\Inetpub\wwwroot\Forms\FSGP032\RelaConsulRecebReqPerio.rpt";
					relatorio.SetDataSource(ds);
					CrystalReportViewer1.ReportSource = relatorio;
					CrystalReportViewer1.ParameterFieldInfo = paramFields;
					CrystalReportViewer1.DataBind();
				}
			}
		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.