none
Relatório feito com parametros esta dando erro : (ocorreu um erro durante o processamento de relatório local. valor não pode ser nulo. valor nome do parâmetro) RRS feed

  • Pergunta

  • ola a quem possa me ajudar, estou desenvolvendo um sistema de cadastro e manutenção de radiocomunicação,  e nele tem um formulário que é feito ofício este em ReportViewer, mas esta dando um erro quando dou um clik no botão referente a este relatório da o seguinte erro:

    "an error occurred during local report processing. value cannot be null. parameter name value"

    "ocorreu um erro durante o processamento de relatório local. valor não pode ser nulo. valor nome do parâmetro"

    detalhe eu ja marquei que permite nulo e vaziu na propriedade dos parametros mas não tive um resultado positivo continua dando erro.

    Alguem poderia me dar uma força.

    quinta-feira, 23 de janeiro de 2014 19:29

Respostas

  • Bom dia Orlando,

    Nessa sua linha aqui:

    reportViewer.LocalReport.SetParameters(listReportParameter);

    Os parâmetros que estão sendo passados estão sendo nulos, por isso o erro.

    Você falou que os dados são enviados ao SQL através da tela de cadastro.

    Você consegue fazer uma query direto do SQL para ver se os dados estão sendo salvos no banco de dados?

    Tente também identificar qual dos parâmetros dessa lista:

                listReportParameter.Add(new ReportParameter("numeroOficio", txt_NumeroOficio.Text));
                listReportParameter.Add(new ReportParameter("DataAbertura", dtp_DataAbertura.Text));
                listReportParameter.Add(new ReportParameter("UnidadeQuePertence", txt_UnidadeQuePertence.Text));
                listReportParameter.Add(new ReportParameter("Veiculo", txt_Veiculo.Text));
                listReportParameter.Add(new ReportParameter("IncidenteNumero", txt_IncidenteNumero.Text));
                listReportParameter.Add(new ReportParameter("Equipamento", txt_Equipamento.Text));
                listReportParameter.Add(new ReportParameter("SerialNumero", txt_SerialNumero.Text));
                listReportParameter.Add(new ReportParameter("Modelo", txt_Modelo.Text));
                listReportParameter.Add(new ReportParameter("DefeitoApresentado", txt_DefeitoApresentado.Text));
                listReportParameter.Add(new ReportParameter("Valor", txt_Valor.Text));
                listReportParameter.Add(new ReportParameter("Observacao", txt_Observacao.Text));

    Está sendo passado como nulo.

    Estou achando estranho o fato de você já ter setado as propriedades dos parâmetros para aceitar nulo e mesmo assim não funcionar.

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é 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 é 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.

    • Marcado como Resposta Giovani Cr quarta-feira, 12 de fevereiro de 2014 12:58
    quarta-feira, 5 de fevereiro de 2014 11:23
  • Ola Giovani. Realmente este processo é só para gerar o relatório mas esta no mesmo lugar onde os dados são carregados do BD, utilizo ai um botão de acesso ao relatório para impressão e ai sim esta parametrização nula.

    se pegar este código e fizer um form aparte ele roda sem problemas eu já testei e é maravilhoso mas quando coloco ele junto no form do cadastro para rodar após clikar em um botão ai da erro. J a pensei fazer um form aparte mas não sei como chamar os dados ja preenchidos para gerar o relatório neste novo form e ficaria redundante também ter que abrir outro form para carregar os mesmo dados ja preenchidos. Não sei o que faço.

    • Marcado como Resposta Orlando854 quarta-feira, 19 de fevereiro de 2014 20:59
    quarta-feira, 12 de fevereiro de 2014 17:40
  • Bom pessoal pesquisando no forum por uma resposta encontrei o mesmo problema que O Inquiridor estava passando e parece que o problema foi resolvido deixo aki o link para que os que entrarem possam também resolver seu problema de Report. abraço a todos.

    http://social.msdn.microsoft.com/Forums/pt-BR/home?forum=vsreportingpt


    • Marcado como Resposta Orlando854 terça-feira, 25 de fevereiro de 2014 20:31
    • Não Marcado como Resposta Orlando854 quarta-feira, 5 de março de 2014 00:29
    • Marcado como Resposta Orlando854 sábado, 11 de abril de 2015 20:57
    terça-feira, 25 de fevereiro de 2014 20:31
  • Exatamente Ivan Carlos de Paula -TI, existem vários tópicos que me deram direcionamento para resolver meu problema, por isso não pude indicar um tópico só, o que me fez pesquisar e encontrar fragmentos dentre eles, e que resolveu o meu problema, mas encontrei outra maneira mais facil para o que eu precisava e como minha pesquisa continuou encontrei outro método, então deixo para quem tem o mesmo problema que acesse este link e assista o vídeo que me ajudou 100%.

    https://www.youtube.com/watch?v=1rjrYu4qGYg

    mas permanece o outro link que pode ajudar a muitos com duvidas, que talvez não seja diretamente envolvido a minha duvida, mas a luz de uma resolução lá esta vários tópicos.

    http://social.msdn.microsoft.com/Forums/pt-BR/home?forum=vsreportingpt.

    forte abraço.

    Ass. Orlando 


    OSSD

    • Marcado como Resposta Orlando854 sábado, 23 de maio de 2015 12:11
    sábado, 23 de maio de 2015 12:09

Todas as Respostas

  • Boa tarde Orlando,

    Tem como postar o seu código?

    Verifique se você colocou apenas o parâmetro que você quer que seja nulo e não todos os parâmetros para serem nulos.


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é 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 é 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.

    sexta-feira, 24 de janeiro de 2014 15:00
  • ok vou postar ,adianto que estou engatinhando no C#. segue abaixo o codigo,um detalhe este codigo esta junto em uma tela decadastro de oficio que vai para o BDSQLSERVER

    namespace Relatorios
    {
        public partial class CadOficio : Form
        {
            public CadOficio()
            {
                InitializeComponent();
            }

            private void btn_OficioMotorola_Click(object sender, EventArgs e)
            {
                
                ReportViewer reportViewer = new ReportViewer();
                reportViewer.ProcessingMode = ProcessingMode.Local;

                reportViewer.LocalReport.ReportEmbeddedResource =
                    "Relatorios.RelatorioRontam.rdlc";
                List<ReportParameter> listReportParameter = new List<ReportParameter>();

                listReportParameter.Add(new ReportParameter("numeroOficio", txt_NumeroOficio.Text));
                listReportParameter.Add(new ReportParameter("DataAbertura", dtp_DataAbertura.Text));
                listReportParameter.Add(new ReportParameter("UnidadeQuePertence", txt_UnidadeQuePertence.Text));
                listReportParameter.Add(new ReportParameter("Veiculo", txt_Veiculo.Text));
                listReportParameter.Add(new ReportParameter("IncidenteNumero", txt_IncidenteNumero.Text));
                listReportParameter.Add(new ReportParameter("Equipamento", txt_Equipamento.Text));
                listReportParameter.Add(new ReportParameter("SerialNumero", txt_SerialNumero.Text));
                listReportParameter.Add(new ReportParameter("Modelo", txt_Modelo.Text));
                listReportParameter.Add(new ReportParameter("DefeitoApresentado", txt_DefeitoApresentado.Text));
                listReportParameter.Add(new ReportParameter("Valor", txt_Valor.Text));
                listReportParameter.Add(new ReportParameter("Observacao", txt_Observacao.Text));
                reportViewer.LocalReport.SetParameters(listReportParameter);   (//o erro de parametros esta acusando aqui )

                Warning[] warnings;
                string[] streamids;
                string mimeType;
                string encoding;
                string extension;

                byte[] bytePDF = reportViewer.LocalReport.Render(
                    "Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings);

                FileStream fileStreamPDF = null;
                string nomeArquivoPDF = Path.GetTempPath() + "RelatoriosSMTEL" + DateTime.Now.ToString("dd_MM_yyyy-HH_mm_ss") + ".pdf";
                fileStreamPDF = new FileStream(nomeArquivoPDF, FileMode.Create);
                fileStreamPDF.Write(bytePDF, 0, bytePDF.Length);
                fileStreamPDF.Close();

                Process.Start(nomeArquivoPDF);
            }

            private void btn_OficioAgora_Click(object sender, EventArgs e)
            {

                ReportViewer reportViewer = new ReportViewer();
                reportViewer.ProcessingMode = ProcessingMode.Local;

                reportViewer.LocalReport.ReportEmbeddedResource =
                    "Relatorios.RelatorioAgora.rdlc";
                List<ReportParameter> listReportParameter = new List<ReportParameter>();

                listReportParameter.Add(new ReportParameter("numeroOficio", txt_NumeroOficio.Text));
                listReportParameter.Add(new ReportParameter("DataAbertura", dtp_DataAbertura.Text));
                listReportParameter.Add(new ReportParameter("UnidadeQuePertence", txt_UnidadeQuePertence.Text));
                listReportParameter.Add(new ReportParameter("Viatura", txt_Viatura.Text));
                listReportParameter.Add(new ReportParameter("IncidenteNumero", txt_IncidenteNumero.Text));
                listReportParameter.Add(new ReportParameter("Equipamento", txt_Equipamento.Text));
                listReportParameter.Add(new ReportParameter("SerialNumero", txt_SerialNumero.Text));
                listReportParameter.Add(new ReportParameter("Modelo", txt_Modelo.Text));
                listReportParameter.Add(new ReportParameter("DefeitoApresentado", txt_DefeitoApresentado.Text));
                listReportParameter.Add(new ReportParameter("Valor", txt_Valor.Text));
                listReportParameter.Add(new ReportParameter("Observacao", txt_Observacao.Text));
                reportViewer.LocalReport.SetParameters(listReportParameter);

                Warning[] warnings;
                string[] streamids;
                string mimeType;
                string encoding;
                string extension;

                byte[] bytePDF = reportViewer.LocalReport.Render(
                    "Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings);

                FileStream fileStreamPDF = null;
                string nomeArquivoPDF = Path.GetTempPath() + "RelatoriosSMTEL" + DateTime.Now.ToString("dd_MM_yyyy-HH_mm_ss") + ".pdf";
                fileStreamPDF = new FileStream(nomeArquivoPDF, FileMode.Create);
                fileStreamPDF.Write(bytePDF, 0, bytePDF.Length);
                fileStreamPDF.Close();

                Process.Start(nomeArquivoPDF);

            }
        }




    • Editado Orlando854 domingo, 2 de fevereiro de 2014 12:28
    domingo, 26 de janeiro de 2014 19:47
  • Bom dia Orlando,

    Nessa sua linha aqui:

    reportViewer.LocalReport.SetParameters(listReportParameter);

    Os parâmetros que estão sendo passados estão sendo nulos, por isso o erro.

    Você falou que os dados são enviados ao SQL através da tela de cadastro.

    Você consegue fazer uma query direto do SQL para ver se os dados estão sendo salvos no banco de dados?

    Tente também identificar qual dos parâmetros dessa lista:

                listReportParameter.Add(new ReportParameter("numeroOficio", txt_NumeroOficio.Text));
                listReportParameter.Add(new ReportParameter("DataAbertura", dtp_DataAbertura.Text));
                listReportParameter.Add(new ReportParameter("UnidadeQuePertence", txt_UnidadeQuePertence.Text));
                listReportParameter.Add(new ReportParameter("Veiculo", txt_Veiculo.Text));
                listReportParameter.Add(new ReportParameter("IncidenteNumero", txt_IncidenteNumero.Text));
                listReportParameter.Add(new ReportParameter("Equipamento", txt_Equipamento.Text));
                listReportParameter.Add(new ReportParameter("SerialNumero", txt_SerialNumero.Text));
                listReportParameter.Add(new ReportParameter("Modelo", txt_Modelo.Text));
                listReportParameter.Add(new ReportParameter("DefeitoApresentado", txt_DefeitoApresentado.Text));
                listReportParameter.Add(new ReportParameter("Valor", txt_Valor.Text));
                listReportParameter.Add(new ReportParameter("Observacao", txt_Observacao.Text));

    Está sendo passado como nulo.

    Estou achando estranho o fato de você já ter setado as propriedades dos parâmetros para aceitar nulo e mesmo assim não funcionar.

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é 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 é 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.

    • Marcado como Resposta Giovani Cr quarta-feira, 12 de fevereiro de 2014 12:58
    quarta-feira, 5 de fevereiro de 2014 11:23
  • Ola Giovani. Realmente este processo é só para gerar o relatório mas esta no mesmo lugar onde os dados são carregados do BD, utilizo ai um botão de acesso ao relatório para impressão e ai sim esta parametrização nula.

    se pegar este código e fizer um form aparte ele roda sem problemas eu já testei e é maravilhoso mas quando coloco ele junto no form do cadastro para rodar após clikar em um botão ai da erro. J a pensei fazer um form aparte mas não sei como chamar os dados ja preenchidos para gerar o relatório neste novo form e ficaria redundante também ter que abrir outro form para carregar os mesmo dados ja preenchidos. Não sei o que faço.

    • Marcado como Resposta Orlando854 quarta-feira, 19 de fevereiro de 2014 20:59
    quarta-feira, 12 de fevereiro de 2014 17:40
  • Bom pessoal pesquisando no forum por uma resposta encontrei o mesmo problema que O Inquiridor estava passando e parece que o problema foi resolvido deixo aki o link para que os que entrarem possam também resolver seu problema de Report. abraço a todos.

    http://social.msdn.microsoft.com/Forums/pt-BR/home?forum=vsreportingpt


    • Marcado como Resposta Orlando854 terça-feira, 25 de fevereiro de 2014 20:31
    • Não Marcado como Resposta Orlando854 quarta-feira, 5 de março de 2014 00:29
    • Marcado como Resposta Orlando854 sábado, 11 de abril de 2015 20:57
    terça-feira, 25 de fevereiro de 2014 20:31
  • Bom pessoal pesquisando no forum por uma resposta encontrei o mesmo problema que O Inquiridor estava passando e parece que o problema foi resolvido deixo aki o link para que os que entrarem possam também resolver seu problema de Report. abraço a todos.

    http://social.msdn.microsoft.com/Forums/pt-BR/home?forum=vsreportingpt


    Neste link existe diversos tópicos mas nenhum aponta diretamente para a resolução do problema apontado.

    Por favor corrija o link.

    quinta-feira, 14 de maio de 2015 18:24
  • Exatamente Ivan Carlos de Paula -TI, existem vários tópicos que me deram direcionamento para resolver meu problema, por isso não pude indicar um tópico só, o que me fez pesquisar e encontrar fragmentos dentre eles, e que resolveu o meu problema, mas encontrei outra maneira mais facil para o que eu precisava e como minha pesquisa continuou encontrei outro método, então deixo para quem tem o mesmo problema que acesse este link e assista o vídeo que me ajudou 100%.

    https://www.youtube.com/watch?v=1rjrYu4qGYg

    mas permanece o outro link que pode ajudar a muitos com duvidas, que talvez não seja diretamente envolvido a minha duvida, mas a luz de uma resolução lá esta vários tópicos.

    http://social.msdn.microsoft.com/Forums/pt-BR/home?forum=vsreportingpt.

    forte abraço.

    Ass. Orlando 


    OSSD

    • Marcado como Resposta Orlando854 sábado, 23 de maio de 2015 12:11
    sábado, 23 de maio de 2015 12:09