none
Nenhum registro ReportViewer RRS feed

  • 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;        }

    terça-feira, 11 de setembro de 2012 15:32

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

    terça-feira, 11 de setembro de 2012 18:23

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

    terça-feira, 11 de setembro de 2012 17:26
  • é 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>

    terça-feira, 11 de setembro de 2012 17:51
  • 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

    terça-feira, 11 de setembro de 2012 18:23