none
ReportViewer - Dados faltando no relatorio RRS feed

  • Pergunta

  • Ola pessoal

    Estou com o seguinte problema: no cliente (detectei ate agora em 2 pcs), o relatorio exibe somente os 3 ultimos registros de uma consulta, sendo que a mesma retorna bem mais que isso. Porem, quando clico no botao Visualizar para refazer a consulta e chamar novamente o relatorio, os dados todos aparecem!!

    A aplicação é Windows, .NET 2.0 (usando o Report Viewer).

    No meu formulario existe no topo os dados para filtro do relatorio e o mencionado botao Visualizar. Abaixo deles vem o controle ReportViewer, o qual chamei de rvPrintPreview.

    No botao Visualizar faço a consulta e chamo o meu relatorio da seguinte forma:

    // pego os valores dos campos do formulario e preencho nas variaveis DtInicial, dtFinal, codContaBancaria 
    // .................... 
     
    // consulta movimentacoes 
    MovimentacoesBLL movimentacoesBLL = new MovimentacoesBLL(); 
    DataTable dataTableMovim = movimentacoesBLL.ConsultaRelatorio(dtInicial, dtFinal, codContaBancaria); 
     
    // consulta dados da conta selecionada 
    ContasBancariasBLL contasBancariasBLL = new ContasBancariasBLL(); 
    DataTable dataTableContaB = contasBancariasBLL.ConsultaSaldosPorConta(codContaBancaria); 
     
    // define parametros do relatorio 
    ReportParameter[] arrayParametros = {  
            new ReportParameter("DtInicial", dtInicial.Value.ToShortDateString()), 
            new ReportParameter("DtFinal", dtFinal.Value.ToShortDateString()), 
            new ReportParameter("ContaBancaria", contaBancaria) }; 
    rvPrintPreview.LocalReport.SetParameters(arrayParametros); 
     
    // define os datasources do relatorio  
    rvPrintPreview.LocalReport.DataSources.Clear(); 
    ReportDataSource rptDataSource1 = new ReportDataSource("datasourceMovimentacoes", dataTableMovim); 
    ReportDataSource rptDataSource2 = new ReportDataSource("datasourceContasBancarias", dataTableContaB); 
    rvPrintPreview.LocalReport.DataSources.Add(rptDataSource1); 
    rvPrintPreview.LocalReport.DataSources.Add(rptDataSource2); 
     
    // muda modo de exibicao para layout de impressao 
    rvPrintPreview.SetDisplayMode(DisplayMode.PrintLayout); 
    rvPrintPreview.ZoomMode = ZoomMode.PageWidth; 
     
    // exibe relatorio             
    rvPrintPreview.RefreshReport(); 



    Detalhe que nunca detectei esse erro nas máquinas de desenvolvimento (casa e escritorio). E se eu clicar no Visualizar de novo os dados aparecem corretamente.

    Outro detalhe é que se fecho o form, abro novamente e consulto, AS VEZES, ja vem corretamente.
    Muito estranho.....

    Seria algum problema no componente ReportViewer instalado nas maquinas?
    Ou no código??

    HELP!

    []s



    terça-feira, 3 de março de 2009 22:41

Respostas

  • Bom, depois de muita procura, acabei encontrando alguns post uteis no forum americano.

    Segundo li este bug acontece devido ao uso do DisplayMode no layout de impressao (PrintLayout).

    A solucao (ou "gambiarra") dada foi setar o Display e o Zoom Mode no event RenderingComplete do controle:

    private void rvPrintPreview_RenderingComplete(object sender, RenderingCompleteEventArgs e) 
    rvPrintPreview.SetDisplayMode(DisplayMode.PrintLayout); 
    rvPrintPreview.ZoomMode = ZoomMode.PageWidth; 

    Em complemento, ao fazer isso, toda vez que se clica no botao da Toolbar para mudar o layout de impressao, ele chama o evento e como nele o modo de impresso e configurado para PrintLayout, o botao nao faz nada, ou seja, o layout da pagina sempre ficara como PrintLayout (o que, no meu caso, resolve 2 problemas de uma só  vez, pq eu sempre quis desabilitar só este botao, mas nao havia jeito).

    Caso, mesmo assim, voce queira manter a funcionalidade do botao para que possa alterar o modo de exibicao, ha outras "gambis" no post que achei, embora eu nem sequer tenha testado.

    O link é este:
    http://social.msdn.microsoft.com/Forums/en-US/vsreportcontrols/thread/d03a895c-7d10-4e6d-ae2b-e737b915ad3e/

    OBS.: Instalei e fiz testes no cliente e o numero de paginas na toolbar sempre foi exibido corretamente! UFA! (Qquer bug eu relato aqui)

    OBS. 2: Este bug ocorre no Visual Studio 2005 (nao sei se no ReportViewer do 2008 o prob ja foi corrigido)

    []s e espero ter colaborado.


    sábado, 14 de março de 2009 23:44

Todas as Respostas

  • Mais um detalhe: mesmo quando o relatorio mostra todas as paginas corretamente, na barra do ReportViewer (onde mostra 1 de X....) o total de páginas fica "perdido", ora mostrando certo ora mostrando um total de 0 ou outro valor menor que o real.

    Desinstalei o ReportViewer de 1 maquina problematica e reinstalei, porem nada mudou.

    Alguém??

    []s
    quinta-feira, 5 de março de 2009 04:21
  • Ninguem???
    :/
    sexta-feira, 6 de março de 2009 18:27
  • Ainda nao consegui solucionar este problema...
    Alguem por ai? SOCORROOOOO!!!
    quarta-feira, 11 de março de 2009 03:23
  • Bom, depois de muita procura, acabei encontrando alguns post uteis no forum americano.

    Segundo li este bug acontece devido ao uso do DisplayMode no layout de impressao (PrintLayout).

    A solucao (ou "gambiarra") dada foi setar o Display e o Zoom Mode no event RenderingComplete do controle:

    private void rvPrintPreview_RenderingComplete(object sender, RenderingCompleteEventArgs e) 
    rvPrintPreview.SetDisplayMode(DisplayMode.PrintLayout); 
    rvPrintPreview.ZoomMode = ZoomMode.PageWidth; 

    Em complemento, ao fazer isso, toda vez que se clica no botao da Toolbar para mudar o layout de impressao, ele chama o evento e como nele o modo de impresso e configurado para PrintLayout, o botao nao faz nada, ou seja, o layout da pagina sempre ficara como PrintLayout (o que, no meu caso, resolve 2 problemas de uma só  vez, pq eu sempre quis desabilitar só este botao, mas nao havia jeito).

    Caso, mesmo assim, voce queira manter a funcionalidade do botao para que possa alterar o modo de exibicao, ha outras "gambis" no post que achei, embora eu nem sequer tenha testado.

    O link é este:
    http://social.msdn.microsoft.com/Forums/en-US/vsreportcontrols/thread/d03a895c-7d10-4e6d-ae2b-e737b915ad3e/

    OBS.: Instalei e fiz testes no cliente e o numero de paginas na toolbar sempre foi exibido corretamente! UFA! (Qquer bug eu relato aqui)

    OBS. 2: Este bug ocorre no Visual Studio 2005 (nao sei se no ReportViewer do 2008 o prob ja foi corrigido)

    []s e espero ter colaborado.


    sábado, 14 de março de 2009 23:44