Usuário com melhor resposta
Nenhum registro ReportViewer

Pergunta
-
Boa tarde a todos.
Estou tentando gerar um relatório no ReportViewer e eles não esta saindo só com os titulos, e a minha lista esta com valores.
Aqui é aonde esta chamo o relatório
protected void imgPesquisar_Click(object sender, ImageClickEventArgs e) { ReportViewer1.LocalReport.ReportEmbeddedResource = "Relatórios\\ReceberTotal.rdlc"; this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("State", ReceberServicos.SelecionarReceberData("asc", "Descricao", Convert.ToDateTime(txtDtIni.Text), Convert.ToDateTime(txtDtFim.Text)))); ReportViewer1.LocalReport.Refresh(); }
Esse é o SelecionarReceberData
public static List<RECEBER> SelecionarReceberData(string ordernarpor, string sortearpor, DateTime DataIni, DateTime DataFim) { List<RECEBER> receberretorno = new List<RECEBER>(); PAGAMENTOEntities context = MOCContextHTTPContext.GetContext(); var query = from r in context.RECEBER join c in context.CLIENTE on r.CLI_ID_CLIENTE equals c.CLI_ID_CLIENTE where (r.REC_EMISSAO >= DataIni) && (r.REC_EMISSAO <= DataFim) orderby (r.REC_ID_RECEBER) ascending select new { r, c }; foreach (var item in query) { receberretorno.Add(item.r); } return receberretorno; }
Respostas
-
se tem parametro teu relatorio no objectdatasource ligado ao teu report no evento selecting vc passa os parametros faz assim
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) { if (opcao.Value == "2") { int codempr = Convert.ToInt32(Session["CodEmpresa"]); int funcao = Convert.ToInt32(Ddl_funcao.SelectedItem.Value); e.InputParameters["codempr"] = Convert.ToInt32(codempr); e.InputParameters["funcao"] = funcao; } } }
Agora vc tem que ter algo no seu código para so executar qdo vc realmente clicar no botão se vc tiver um pq esse evento sempre vai ser disparado e ai pode dar erro pa os parametros podem ainda não estarem com valores.Junior
- Marcado como Resposta Seilor Bonancio JuniorModerator terça-feira, 11 de setembro de 2012 19:54
Todas as Respostas
-
qual a versão que vc está usando ? se for a 2010 ele é fortemente tipado e para resolver seu problema só criando um dataset e nele vc cria um tableadapter e coloca essa sua consulta nele e associa o seu report ao tabeladapter, é assim que vc está fazendo ?
Junior
-
é o 2010 sim.
Eu na realidade acabei de descobrir qual o problema
Quando eu executo essa parte do código
ReportViewer1.LocalReport.ReportEmbeddedResource = "Relatórios\\ReceberTotal.rdlc";this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("State", ReceberServicos.SelecionarReceberData("asc", "Descricao", Convert.ToDateTime(txtDtIni.Text), Convert.ToDateTime(txtDtFim.Text)))); ReportViewer1.LocalReport.Refresh();
ele carrega o relatório de forma correta.
Só que depois que ele executa essa linha, ele volta a executar o mesmo metorio SelecionarReceberData, e manda os parametro zerados, e o unico lugar diferente que eu tenho esse metodo é ObjectDataSource, eu acredito que o erro esta nesse objeto.
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="SecuritySystem.Dimas.BLL.ReceberServicos" OldValuesParameterFormatString="original_{0}" SelectMethod="SelecionarReceberData"> <SelectParameters> <asp:Parameter DefaultValue="" Name="ordernarpor" Type="String"></asp:Parameter> <asp:Parameter DefaultValue="" Name="sortearpor" Type="String"></asp:Parameter> <asp:Parameter Name="DataIni" Type="DateTime"></asp:Parameter> <asp:Parameter Name="DataFim" Type="DateTime" /> </SelectParameters> </asp:ObjectDataSource>
-
se tem parametro teu relatorio no objectdatasource ligado ao teu report no evento selecting vc passa os parametros faz assim
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) { if (opcao.Value == "2") { int codempr = Convert.ToInt32(Session["CodEmpresa"]); int funcao = Convert.ToInt32(Ddl_funcao.SelectedItem.Value); e.InputParameters["codempr"] = Convert.ToInt32(codempr); e.InputParameters["funcao"] = funcao; } } }
Agora vc tem que ter algo no seu código para so executar qdo vc realmente clicar no botão se vc tiver um pq esse evento sempre vai ser disparado e ai pode dar erro pa os parametros podem ainda não estarem com valores.Junior
- Marcado como Resposta Seilor Bonancio JuniorModerator terça-feira, 11 de setembro de 2012 19:54