none
RELATORIO REPORTVIEW - TEXTBOX - PARAMETROS - ERRO RRS feed

  • Pergunta

  • Não estou conseguindo passar textbox por parâmetro para gerar um relatório. Abaixo minha simples aplicação.

    Código:

    namespace Recibo
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnImprimir_Click(object sender, EventArgs e)
            {
                Recibo recibo = new Recibo(txtNome.Text, txtValor.Text, txtExtenso.Text,
                txtData.Text, txtServico.Text, txtEmpresa.Text);
                recibo.Show();
    
            }
        }
    }


    Código:

    using Microsoft.Reporting.WinForms;
    
    namespace Recibo
    {
        public partial class Recibo : Form
        {
            public Recibo(string Nome, string Valor, string Valor_Extenso, string Data, string Servico, string Empresa)
            {
                InitializeComponent();
    
                //SETAR O ARQUIVO "RDLC"
                reportViewer1.LocalReport.ReportEmbeddedResource = "Recibo.Recibo.rdlc";
    
                //SETAR OS PARAMETROS
                Microsoft.Reporting.WinForms.ReportParameter[] p =
                new Microsoft.Reporting.WinForms.ReportParameter[6];
    
                p[0] = new Microsoft.Reporting.WinForms.ReportParameter["Nome", Nome];
                p[1] = new Microsoft.Reporting.WinForms.ReportParameter["Valor", Valor];
                p[2] = new Microsoft.Reporting.WinForms.ReportParameter["Valor_Extenso", Valor_Extenso];
                p[3] = new Microsoft.Reporting.WinForms.ReportParameter["Data", Data];
                p[4] = new Microsoft.Reporting.WinForms.ReportParameter["Servico", Servico];
                p[5] = new Microsoft.Reporting.WinForms.ReportParameter["Empresa", Empresa];
    
                reportViewer1.LocalReport.SetParameters(p);
            }
    
            private void Recibo_Load(object sender, EventArgs e)
            {
                this.reportViewer1.RefreshReport();
            }
    
            private void Recibo_FormClosing(object sender, FormClosingEventArgs e)
            {
                reportViewer1.LocalReport.ReleaseSandboxAppDomain();
            }
        }
    }

    Erro do Form acima:


    Erro ao copilar:

    Alguém sabe me informar como posso resolver? Agradeço desde já!




    terça-feira, 11 de agosto de 2015 11:29

Respostas

  • Bom dia Deividy,

    O código está quase pronto, basta na declaração do p  e nesta parte do código

    reportViewer1.LocalReport.SetParameters(p);

    você atribuir um array [].

    Atenciosamente, Roberto Alves

    quinta-feira, 13 de agosto de 2015 14:43
  • Olá Dêividy,

    De maneira bruta, parece que o que está tentando fazer é:

    Colocar ["Nome", Nome] que é String

    dentro de

     p[0] que é int

    Não estou certo, mas talvez esteja tentando fazer isto:

    private void SetReportParameters() {
       ReportParameter p = new 
          ReportParameter("ShowDescriptions", checkBox1.Checked.ToString());
       this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p });
    }
    LocalReport.SetParameters Method

    Espero ter ajudado.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 12 de agosto de 2015 16:34

Todas as Respostas

  • Olá Dêividy,

    De maneira bruta, parece que o que está tentando fazer é:

    Colocar ["Nome", Nome] que é String

    dentro de

     p[0] que é int

    Não estou certo, mas talvez esteja tentando fazer isto:

    private void SetReportParameters() {
       ReportParameter p = new 
          ReportParameter("ShowDescriptions", checkBox1.Checked.ToString());
       this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p });
    }
    LocalReport.SetParameters Method

    Espero ter ajudado.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 12 de agosto de 2015 16:34
  • Oi Marcos,

    Ainda sou iniciante.

    Conseguir passando apenas um com o seguinte código:

    ReportParameter p = new ReportParameter("Nome", Nome);          
    reportViewer1.LocalReport.SetParameters(p);
    reportViewer1.RefreshReport();

    Gostaria de passar todos esses parâmetros abaixo....

    Nome
    Valor
    Valor_Extenso
    Data
    Servico
    Empresa

    Se puder ajudar agradeço!


    quinta-feira, 13 de agosto de 2015 14:25
  • Bom dia Deividy,

    O código está quase pronto, basta na declaração do p  e nesta parte do código

    reportViewer1.LocalReport.SetParameters(p);

    você atribuir um array [].

    Atenciosamente, Roberto Alves

    quinta-feira, 13 de agosto de 2015 14:43
  • Boa tarde Marcos e Roberto.

    Queria agradecê-los novamente pelas dicas.

    Estou estudando Analise e Desenvolvimento de Sistemas na UNOPAR, e acho que estou aprendendo mais programação aqui do que lá.

    Conseguir com suas dicas:

    using Microsoft.Reporting.WinForms;
    
    namespace Recibo
    {
        public partial class Recibo : Form
        {
            public Recibo(string Nome, string Valor, string Valor_Extenso, string Data, string Servico, string Empresa)
            {
                InitializeComponent();
    
                reportViewer1.LocalReport.ReportEmbeddedResource = "Recibo.Recibo.rdlc";
    
                ReportParameter[] p = new ReportParameter[6];
    
                 p[0] = new ReportParameter("Nome", Nome);
                 p[1] = new ReportParameter("Valor", Valor);
                 p[2] = new ReportParameter("Valor_Extenso", Valor_Extenso);
                 p[3] = new ReportParameter("Data", Data);
                 p[4] = new ReportParameter("Servico", Servico);
                 p[5] = new ReportParameter("Empresa", Empresa);
    
                 for (int index = 0; index < p.Length; index++)
                 {
                     reportViewer1.LocalReport.SetParameters(p[index]);
                 }
            
                reportViewer1.RefreshReport();
    
            }
    
            private void Recibo_Load(object sender, EventArgs e)
            {
                this.reportViewer1.RefreshReport();
            }
    
            private void Recibo_FormClosing(object sender, FormClosingEventArgs e)
            {
                reportViewer1.LocalReport.ReleaseSandboxAppDomain();
            }
        }
    }
    Valeu ;)!


    quinta-feira, 13 de agosto de 2015 18:41