none
Report Viewer - Quebra de pagina apos grupo passar de uma pagina RRS feed

  • Pergunta

  • Ola, pessoal

    Tenho a impressão de um Recibo, com dados da empresa e do cliente, e nos detalhes, os Pagamentos.

    Não tenho marcada a opção para quebrar pagina a cada agrupamento (cada agrupamento é um recibo, no caso), pois em geral cabem 2 numa folha. Tenho marcada a opção para tentar manter tudo na mesma pagina.

    Fica bem certinho, imprime 2 recibos, quebra, outros 2, quebra. 

    Se não couber 2 na pagina, beleza. Imprime 1, quebra, imprime 1, quebra... Tudo ok.

    Porém, em alguns casos, pelo excessivo numero de pagamentos do recibo, um unico recibo acaba passando de uma pagina... e aí que tá o problema: o proximo recibo é começado onde parou o anterior. Sem quebrar a pagina. 

    Teria que quebrar a pagina antes do proximo agrupamento (recibo), quando o agrupamento dos detalhes "não pode manter os dados em uma pagina".

    Sera que isso é possivel?

    Valeu


    Julio C.


    • Editado Julio Costi quarta-feira, 16 de novembro de 2016 10:59
    quarta-feira, 16 de novembro de 2016 10:48

Respostas

  • Olá Julio!

    Primeiramente, que demanda interessante, hein? Se eu entendi corretamente, acho que você consegue implementar isso configurando a quebra de páginas na segunda tabela como BreakLocation = Start e uma expressão para habilitar ou não a quebra de página..

    Você precisa descobrir quantos registros da primeira tabela cabem em uma página e, tendo essa informação em mãos, você cria uma expression para a propriedade Disabled da quebra de páginas.. Por exemplo, essa seria a expressão para habilitar a quebra de páginas na segunda tabela caso a primeira tabela tenha mais de 30 registros:

    =Count(Fields!QualquerCampoDaSuaPrimeiraTabela.Value, "NomeDoDataSetQueAlimentaASuaPrimeiraTabela") < 30

    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


    • Editado AndreAlvesLimaModerator sexta-feira, 18 de novembro de 2016 10:30 adicionando imagem para ficar mais claro
    • Marcado como Resposta Julio Costi quinta-feira, 24 de novembro de 2016 16:36
    sexta-feira, 18 de novembro de 2016 10:29
    Moderador

Todas as Respostas

  • Julio,

    Como os pagamentos são exibidos? Numa tabela? Pode anexar uma imagem do report designer?


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quarta-feira, 16 de novembro de 2016 10:56
  • a primeira é do agrupamento principal (a Via), esta que deve ser mantida na mesma pagina, OU senão, se passar de uma pagina, para imprimir o proximo deveria "quebrar" (essa tabela está repetindo, conforme o numero de vias da configuração, na verdade, é o mesmo recibo impresso varias vezes)

    a segunda tabela são os detalhes (o recibo e dentro dele o agrupamento para os pagamentos)


    Julio C.

    quarta-feira, 16 de novembro de 2016 11:02
  • Olá Julio!

    Primeiramente, que demanda interessante, hein? Se eu entendi corretamente, acho que você consegue implementar isso configurando a quebra de páginas na segunda tabela como BreakLocation = Start e uma expressão para habilitar ou não a quebra de página..

    Você precisa descobrir quantos registros da primeira tabela cabem em uma página e, tendo essa informação em mãos, você cria uma expression para a propriedade Disabled da quebra de páginas.. Por exemplo, essa seria a expressão para habilitar a quebra de páginas na segunda tabela caso a primeira tabela tenha mais de 30 registros:

    =Count(Fields!QualquerCampoDaSuaPrimeiraTabela.Value, "NomeDoDataSetQueAlimentaASuaPrimeiraTabela") < 30

    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


    • Editado AndreAlvesLimaModerator sexta-feira, 18 de novembro de 2016 10:30 adicionando imagem para ficar mais claro
    • Marcado como Resposta Julio Costi quinta-feira, 24 de novembro de 2016 16:36
    sexta-feira, 18 de novembro de 2016 10:29
    Moderador
  • Ola, André

    Pois é, a demanda talvez não seja a mais trivial, mas não a vejo como algo tão longe do comum assim.
    Mas vai um pouco "alem" do que tradicionalmente a ferramenta oferece, eu acho.


    A sua proposta é uma alternativa interessante.. 

    Teria algumas questoes (que eu não especifiquei), que fogem um pouco, e não permitem que essa resolução seja "extremamente precisa" (e talvez nem seja necessária tanta "precisão").

    por exemplo, aquela linha em que está o campo ObservacaoHistorico só é mostrada se estiver configurado E tiver conteudo no campo.. 
    então é bem variável ela aparecer ou não, inclusive num mesmo recibo

    Mas daria, por exemplo, para tratar isso via programação (antes de gerar o relatorio, os dados são preparados numa DT), pegar quantos itens terá, e quantas vezes vai vir conteudo neste campo... etc.

    Outras coisas no relatorio podem complicar tambem, como o tamanho do endereço, e da empresa (estão com cangrow), mas isso não seria significativo.

    Para fazer dessa forma (pela programação no codigo fonte onde o relatorio é chamado), um inconveniente de peso relativo, seria a manutenção. Se outro programador (ou eu mesmo, depois de um tempo) tiver que fazer alguma alteração nesse relatorio que interfira no height da tabela, tem sempre que lembrar de tratar isso na programação, e mandar um parametro que seria usado na expressão para ter a quebra ou não (ou alguma outra).


    Mas... só estou levantando essas questões, para fins de documentar aqui.. A princípio, é isso que eu acho que vou fazer, para resolver.

    - A não ser que tivesse alguma opção mais avançada, tipo, "se a tabela passar de uma pagina, quebrar pagina depois. senão não" ?

    Sera que tem?

    Isso que eu procurava, inicialmente, por aqui.


    Obrigado!!


    Julio C.

    sexta-feira, 18 de novembro de 2016 15:42
  • Olá Julio!

    Pois é, eu entendo essas complicações que possam vir a acontecer.. Mas, que eu saiba, infelizmente, não tem uma opção mágica que faça isso no Report Viewer.. Se você encontrar algo, avisa aqui a gente, OK?

    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

    quarta-feira, 23 de novembro de 2016 11:40
    Moderador