none
Como Imprimir o Parâmetro de Data no ReportViewer - Utilizando o C#? RRS feed

  • Pergunta

  • Olá pessoal, André Lima você que é um Expert em relatórios e todos os outros especialistas do assunto, 

    Necessito da ajuda de vocês, fiz algumas fotos para ficar bem didático a consulta e servir de referência pois não estou encontrando a resposta para esta questão.

    Dúvida: Como imprimir a data selecionada (data do parâmetro) no relatório? a Filtragem está OK, executando o DataSet sem problemas, porém não consigo "imprimir" a data no relatório, isto é, passar a data para o arquivo .rdlc. Como faço esta transferência no passo a passo?

    abaixo seguem as fotos e o código. Obrigado pela atenção.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using Microsoft.Reporting.WinForms;
    
    namespace SGFRenaissance
    {
        public partial class FrmRel_TitulosaPagaremAberto : Form
        {
           
            public FrmRel_TitulosaPagaremAberto()
            {
                InitializeComponent();
            }
    
            private void FrmRel_TitulosaPagaremAberto_Load(object sender, EventArgs e)
            {
    
                this.reportViewer1.RefreshReport();
               
            }
    
            private void btn_executar_Click(object sender, EventArgs e)
            {
                DateTime datainicio = Convert.ToDateTime(maskedTextBox1.Text);
                DateTime datafim = Convert.ToDateTime(maskedTextBox2.Text);
                ReportParameter[] parameters = new ReportParameter[2];
                parameters[0] = new ReportParameter("datainicio", datainicio.ToString());
                parameters[1] = new ReportParameter("datafim", datafim.ToString());
           //   this.reportViewer1.LocalReport.SetParameters(parameters); //abortava com a mensagem de erro!
                this.Numero_Parcelas_a_PagarTableAdapter.Fill(this.Rel_NumeroParcelaaPagar.Numero_Parcelas_a_Pagar, datainicio, datafim);
           //   this.reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter(datainicio.ToString(), datafim.ToString())); Erro -Idem.
                this.reportViewer1.LocalReport.ReportPath = "";
                this.reportViewer1.RefreshReport();
            }
        } // Linhas comentadas foram necessárias pois estava dando erro.
    }

    Fotos estão em sequência: 

    erro produzido pelas linhas comentadas - não encontra os parâmetros

    Onde está "#Erro" deveria estar as datas selecionadas

    E agora os parâmetros do arquivo .rdlc

    E agora o resuldado da execução do Relatório: Espero que tenha sido esclarecedor. 

    Obrigado a todos pela atenção. Desde já agradeço pela ajuda. Reduzi as imagens para ficar dentro do limite de 1024Kb.

    terça-feira, 17 de setembro de 2019 02:59

Respostas

  • Olá pessoal, 

    com o intuito de ajudar nas próximas consultas, consegui resolver o problema.

    Segue o novo código:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using Microsoft.Reporting.WinForms;
    
    namespace SGFRenaissance
    {
        public partial class FrmRel_TitulosaPagaremAberto : Form
        {
           
            public FrmRel_TitulosaPagaremAberto()
            {
                InitializeComponent();
            }
    
            private void FrmRel_TitulosaPagaremAberto_Load(object sender, EventArgs e)
            {
    
                this.reportViewer1.RefreshReport();
               
            }
    
            private void btn_executar_Click(object sender, EventArgs e)
            {
                DateTime datainicio = Convert.ToDateTime(maskedTextBox1.Text);
                DateTime datafim = Convert.ToDateTime(maskedTextBox2.Text);
                ReportParameter[] parameters = new ReportParameter[2];
                parameters[0] = new ReportParameter("ReportParameter1_DataInicio", maskedTextBox1.ToString());
                parameters[1] = new ReportParameter("ReportParameter2_DataFinal", maskedTextBox2.ToString());
                this.reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("ReportParameter1_DataInicio", datainicio.ToString()));
                this.reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("ReportParameter2_DataFinal", datafim.ToString()));
                this.Numero_Parcelas_a_PagarTableAdapter.Fill(this.Rel_NumeroParcelaaPagar.Numero_Parcelas_a_Pagar, datainicio, datafim);
                this.reportViewer1.RefreshReport();
            }
        }
    }

    Faça a Configuração do Parâmetro no ReportData, e arraste para dentro do relatório .rdlc. 

    Veja a imagem abaixo, usando a query do DataSet, escolha  o DataSet e os campos da seleção.

    E agora, faça a formatação da Data no Relatório utilizando a "aba" da Expressão. Veja a Imagem abaixo.

    Resultado Final do Relatório:

    • Marcado como Resposta F.oliveirarocha sábado, 21 de setembro de 2019 16:28
    sábado, 21 de setembro de 2019 16:27