Search Results for

    Show / Hide Table of Contents

    Divisão de dados

    Vamos dar uma olhada em um aspecto peculiar deste relatório: há muito espaço em branco na parte inferior das páginas. Por que? Quando um relatório é criado, o mecanismo do FastReport preenche o espaço em branco da página com as bandas. Após exibir cada banda, a posição atual é movida para baixo. Quando FastReport percebe que ná há espaço livre suficiente para exibir a próxima banda (sua altura é maior que o espaço livre da página), ele cria uma nova página e continua com a exibição da banda neste ponto. Esta sequência é repetida para cada registro no conjunto de dados.

    Nosso relatório contém um objeto com texto longo, e é por isso que a altura da banda é bastante grande. Além disso, se uma banda grande não possuir espaço suficiente em uma página, ela é deslocada para a próxima, deixando muito espaço em branco na parte inferior da página, como é mostrado aqui:

    Para limitar o desperdício de papel, vamos usar um recurso do FastReport que transforma o conteúdo de uma banda em parágrafos. Tudo que precisamos fazer é habilitar a propriedade "AlllowSplit" da banda "Dados de 1o. Nível". Você verá que agora há menos espaço vazio na parte inferior das páginas do relatório:

    Como funciona essa divisão de bandas? Há alguns objetos no FastReport que suportam este recurso. Eles são os objetos "Texto", "Linha" e "RichEdit". Eles podem ser "divididos", e outros objetos não podem. Quando FastReport precisa dividir uma banda, ele o faz da seguinte maneira:

    • exibe os objetos não divisíveis que cabem no espaço vazio

    • exibe os objetos divisíveis parcialmente (objetos "Texto" são exibidos de uma forma que todas as linhas cabem no objeto)

    • cria uma nova página e continua com a exibição do objeto na banda

    • se um objeto não divisível não possuir espaço no espaço vazio, ele é deslocado para a próxima página; ao mesmo tempo todos os objetos localizados abaixo dele são deslocados conforme necessário

    • o processo continua até que todos os objetos da banda seja exibidos por completo.

    O algoritmo de divisão se tornará mais claro ao olhar para este exemplo:

    Deve ser observado que o algoritmo de divisão não é perfeito, e que a saída final pode não ser igual ao esperado. Esta opção deve ser usada com muito cuidado em casos onde objetos na banda dividida são agrupados de maneira complexa ou o tamanho das fontes difere. Segue um exemplo do que pode ser gerado.

    Back to top © 1998-2022 Copyright Fast Reports Inc.