REPORTVIEWER X VISUAL STUDIO 2019
Olá a todos
Preciso de ajuda para passar parâmetros via código para um relatório.
Agradeço a atenção.
Preciso de ajuda para passar parâmetros via código para um relatório.
Agradeço a atenção.
Geralmente voce faria algo assim:
this.reportViewer1.LocalReport.SetParameters(new ReportParameter("NomeParametro", "ValorParametro"));
Citação::
Geralmente voce faria algo assim:this.reportViewer1.LocalReport.SetParameters(new ReportParameter("NomeParametro", "ValorParametro"));
Obrigada por responder. Eu estou usando os comandos abaixo, mas ele não está filtrando.
Me.ReportViewer1.LocalReport.SetParameters(New Microsoft.Reporting.WinForms.ReportParameter("Nota", "1"))
Me.ReportViewer1.LocalReport.SetParameters(New Microsoft.Reporting.WinForms.ReportParameter("Codfor", "5"))
Boa noite!
Na minha primeira resposta eu deduzi algumas coisas, que por exemplo, voce está trabalhando com o processamento local. Deixa eu voltar alguns passos pra trás.
O ReportViewer possui dois modos.
Modo local - Onde todo o processamento e dataset é disponibilizado localmente pela sua aplicação e ele faz a renderização na máquina;
Modo servidor - Onde o servidor onde está o Reporting Services cuidará de todo o processamento e renderização para voce.
O mais comum é o modo local. Voce realiza a consulta, preenche um dataset (entenda como um dataset, datatable ou um enumerable) e passa esse objeto como datasource pro ReportViewer fazer o trabalho.
Repare então que no primeiro caso, o parâmetro serviria simplesmente para voce passar alguma informação pra alguma tomada de decisão de renderização dentro do seu rdlc. Não seria para fazer a consulta, porque todo o datasource já estaria preenchido no relatório.
Já no modo servidor, como todo o processamento é feito no servidor de relatório, os parâmetros ajudariam sim na consulta.
Como voce falou sobre "filtro", creio que esteja tentando jogar esses parâmetros como parâmetro da query, correto?
Nesse caso, vai depender do modo que está usando.
No local, voce teria algo assim (c#):
Repare que o data source já está filtrado.
Voce vai ver muitos exemplos o pessoal construindo o datasource usando aqueles arquivos xsd (de dataset), particularmente, eu não gosto muito. Acho mais simples fazer a consulta na mão mesmo e preencher o datasource localmente.
Se voce tiver um exemplo de código de como está fazendo pode facilitar meu entendimento para tentar ajudar com mais assertividade.
Na minha primeira resposta eu deduzi algumas coisas, que por exemplo, voce está trabalhando com o processamento local. Deixa eu voltar alguns passos pra trás.
O ReportViewer possui dois modos.
Modo local - Onde todo o processamento e dataset é disponibilizado localmente pela sua aplicação e ele faz a renderização na máquina;
Modo servidor - Onde o servidor onde está o Reporting Services cuidará de todo o processamento e renderização para voce.
O mais comum é o modo local. Voce realiza a consulta, preenche um dataset (entenda como um dataset, datatable ou um enumerable) e passa esse objeto como datasource pro ReportViewer fazer o trabalho.
Repare então que no primeiro caso, o parâmetro serviria simplesmente para voce passar alguma informação pra alguma tomada de decisão de renderização dentro do seu rdlc. Não seria para fazer a consulta, porque todo o datasource já estaria preenchido no relatório.
Já no modo servidor, como todo o processamento é feito no servidor de relatório, os parâmetros ajudariam sim na consulta.
Como voce falou sobre "filtro", creio que esteja tentando jogar esses parâmetros como parâmetro da query, correto?
Nesse caso, vai depender do modo que está usando.
No local, voce teria algo assim (c#):
reportViewer.ProcessingMode = ProcessingMode.Local;
reportViewer.LocalReport.ReportPath = "path...\yourReport.rdlc";
reportViewer.LocalReport.DataSources.Add(new ReportDataSource("dataSourceName", dataSource));
Repare que o data source já está filtrado.
Voce vai ver muitos exemplos o pessoal construindo o datasource usando aqueles arquivos xsd (de dataset), particularmente, eu não gosto muito. Acho mais simples fazer a consulta na mão mesmo e preencher o datasource localmente.
Se voce tiver um exemplo de código de como está fazendo pode facilitar meu entendimento para tentar ajudar com mais assertividade.
Faça seu login para responder