Usuário com melhor resposta
Como colocar dados de um combobox e usar no parâmetro do crystal report

Pergunta
-
Olá!
Estou tendo um problema ao tentar pegar dados de um combobox que está listando as categorias e quando eu cliclo no botão abre um crystal report mostrando apenas os dados que estavam no combobox.
Já criei o parâmetro no crystal, mas ele abre um prompt pra mim digitar o que eu quero. E estou usando o Banco de dados ACCESS e linguagem C#.
Abraço
- Movido AndreAlvesLimaModerator quinta-feira, 18 de fevereiro de 2016 14:01
- Editado Marcelo Guttau quinta-feira, 18 de fevereiro de 2016 14:02
Respostas
-
Olá Marcelo,
Será que você não pulou algum passo? Veja só:
https://www.youtube.com/watch?v=vXBC37PYjho
E quanto ao Report Viewer, dá para fazer a mesma coisa utilizando filtros nele também.. Eu escrevi um e-book sobre Report Viewer e dentro dele eu abordo o tema de filtros no relatório.. Se você se interessar, veja mais detalhes aqui:
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta Marcelo Guttau quarta-feira, 24 de fevereiro de 2016 18:35
Todas as Respostas
-
Olá Marcelo,
Para passar um parâmetro para o seu relatório do Crystal, basta utilizar o método SetParameterValue.. Seria algo como:
SeuRelatorio.SetParameterValue("NomeParametro", "Valor");
Se quiser ver mais alguns artigos sobre relatórios no Crystal Reports e Report Viewer, dê uma olhada no meu site:
Artigos sobre relatórios Crystal Reports e Report Viewer
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Andre eu to começando agora, to aprendendo a base de tutoriais, deixo eu ve se você consegue me ajudar.
Eu tenho um formulario que tem um combobox e um botão listando as categorias.
Tenho um outro formulario que está mostrando o relatorio, e nesse relatorio tem um parametro.
como eu faço que ao clicar no botão do combobox ele pegue o valor dele, e mostre somente os dados que quero, pq do jeito que eu estou fazendo ele está só abrindo o relatorio e não esta pegando o valor do combobox, ai ele abre um prompt e eu tenho que digitar ai funciona.
Esse é o código do form do combobox
private void BtnGerarRelatorio_Click(object sender, EventArgs e) { form_lista_categorias mostrar = new form_lista_categorias(); //form_lista é o formulario do relatorio mostrar.CodigoCategoria = (int)cbocategoria.SelectedValue; // o "CodigoCategoria" é uma classe que crie no form onde esta mostrando o relatorio, "cbocategoria" é o nome do combobox mostrar.Show(); }
Esse é o cógigo do form onde mostra o relatorio
public void form_lista_categorias_Load(object sender, EventArgs e) { ReportDocument rd = new ReportDocument(); rd.Load(@"P:\sysbens\sysbens\rel_categoria.rpt"); ParameterField parametro = rd.ParameterFields["codigoDaCategoria"]; //"codigoDaCategoria" é o parametro que criei no meu relatorio parametro.CurrentValues.AddValue(this.CodigoCategoria); CRVProdutosPorCategoria.ReportSource = rd;//"CRVProdutosPorCategoria" é CrystalReporviewer rd.Refresh(); }
Esse código eu peguei desse vídeo https://www.youtube.com/watch?v=1rJrYu4qGYg&feature=youtu.be, só que está usando o sql server e eu estou usando o Access.
Espero que você possa me ajudar não sei onde mais conseguir ajuda.
Abraço
-
Olá Marcelo,
Tente da seguinte maneira:
ReportDocument rd = new ReportDocument(); rd.Load(@"P:\sysbens\sysbens\rel_categoria.rpt"); CRVProdutosPorCategoria.ReportSource = rd;//"CRVProdutosPorCategoria" é CrystalReporviewer rd.SetParameterValue("codigoDaCategoria", this.CodigoCategoria); rd.Refresh();
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
-
Olá Marcelo,
Muito estranho hein.. Você tem certeza que o nome do parâmetro é exatamente esse mesmo no relatório (inclusive maiúsculas e minúsculas)? Além disso, o tipo de dados do parâmetro bate com o tipo do valor que você está passando para o relatório (por ex., inteiro e inteiro, string e string, etc)?
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
-
Olá Marcelo,
Sim.. Entre em contato por e-mail: contato arroba andrealveslima ponto com ponto br..
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
-
Olá Marcelo,
Não recebi nada aqui.. Será que o provedor não bloqueou? Se você preferir, suba o projeto em algum lugar (Dropbox ou Onedrive, por exemplo) e eu baixo daqui..
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
-
Olá Marcelo, tudo tranquilo?
Seguinte, para resolver o seu problema você precisa:
1) Remover a linha rd.Refresh();
2) Remover a fórmula de filtro no agrupamento:
3) Alterar o tipo do parâmetro no relatório para "número"
4) Adicionar a fórmula "{tb_tipo.id_tipo}={?codigoDaCategoria}" no filtro de dados:
Pronto!
Agora eu fiquei curioso: você fez o relatório geral no Report Viewer (rdlc), mas, resolveu fazer o relatório por categoria no Crystal Reports? Algum motivo específico para você ter resolvido utilizar duas ferramentas de relatório diferentes no mesmo projeto?
Abraco!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Olá, não tão tranquilo, e você?
Fiz tudo que você falo e nada, ele não está listando nenhum dado.
Quanto aos dois tipos de relatórios, é que como te falei lá no começo, eu esto fazendo através de tutoriais, então foi por isso, o primeiro que é o completo eu fiz através de um jeito, ai eu queria fazer por categorias ai achei apenas esse tutorial que ensina fazer com crystal report.Abraço e muito obrigado
-
Olá Marcelo,
Será que você não pulou algum passo? Veja só:
https://www.youtube.com/watch?v=vXBC37PYjho
E quanto ao Report Viewer, dá para fazer a mesma coisa utilizando filtros nele também.. Eu escrevi um e-book sobre Report Viewer e dentro dele eu abordo o tema de filtros no relatório.. Se você se interessar, veja mais detalhes aqui:
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta Marcelo Guttau quarta-feira, 24 de fevereiro de 2016 18:35
-
Grande André!
Salvou minha vida/projeto, deu certo agora...
A única coisa que eu estava fazendo de diferente era trocando o tipo do parâmetro no relatório para "número" por último.Muito obrigado mesmo, sem palavras pra você por ter perdido seu tempo comigo. Sucesso meu amigo.
-
Magina Marcelo! Fico feliz que deu certo.. :)
Abraço e sucesso aí também!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima