Usuário com melhor resposta
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)

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.
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
-
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
-
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
-
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
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. -
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
-
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
-
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
-
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
-
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.
-
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