Olá Pessoal, tudo bom?
Hoje irei escrever sobre as bands (partes) de um relatório. É importante para saber quando utilizar e tirar melhor proveito das suas características. Aprofunde-se na continuação.
Bands de um relatório
Na ferramenta do Jaspersoft, um relatório é dividido em vários blocos horizontais chamados bands. Cada band possui uma função específica que é realizada quando há a compilação e geração do relatório final, como por exemplo imprimir a mesma band várias vezes em um mesmo relatório ou imprimir uma determinada band no “cabeçalho” de cada página.
Existem 9 bands predefinidas dentro do Jaspersoft como a Figura 01 exibe.
Mas, com uma observação mais apurada, há apenas 7 bands na Figura 01. Explico, ainda existem as bands de “background” e “last page footer”, que não são exibidas diretamente. Uma band possui sempre o mesmo tamanho que a largura da página, com as margens à esquerda e à direta excluídas. Entretanto, sua altura pode variar durante a fase de impressão, sendo até maior que a estabelecida durante a fase de design do relatório, devido a altura dos componentes internos existentes dentro da band, podendo alongar-se na página de forma arbitrária. Isso ocorre quando existem subrelatórios ou text fields que necessitam aumentar seu tamanho pré-definido devido ao conteúdo dinâmico que possuem.
Geralmente para indicar a altura de uma band deve-se considerar a altura mínima necessária para abrigar todos os componentes dentro desta. Nem todas as bands podem ter sua altura aumentada dinamicamente devido ao seu conteúdo, em particular as bands “column footer”, “page footer” e “last page footer”. A soma das alturas de todas as bands, com exceção da band “background”, deverá sempre ser menor ou igual a altura da página menos as margens superior (top) e inferior (bottom).
Os tópicos a seguir irão explicar as particularidades de cada band.
band Title
A band “Title” é a primeira band visível em um relatório. Ela é impressa somente uma única vez, na primeira página e pode ser impressa em uma página separada das outras bands, como uma capa de relatório. Em relação às dimensões permitidas, não é possível durante o tempo de design exceder a altura da página do relatório (as margens superior e inferior estão incluídas). Se esta band for impressa em uma página separada, a altura desta não está incluída no cálculo da soma total das alturas das outras band, que ainda deve ser menor ou igual à altura da página, conforme mencionado anteriormente.
Abaixo temos um exemplo de jrxml da definição de uma band “Title”. Repare que há uma tag title e dentro dela uma tag band. Esse é o padrão para as definições de bands. O Element splitType será explicado em artigos futuros.
1 2 3 4 5 |
<title> <band height="40"> <!-- Conteudo da band --> </band> </title> |
band Page Header
Essa band permite definir um cabeçalho para toda página do relatório. O tamanho desta pode ser modificada dinamicamente, mas não é muito comum que isso ocorra. Irá aparecer em todas as páginas impressas, na mesma posição definida na fase de design. A band Page Header não será incluída nas páginas a parte das bands Title e Summary. Abaixo temos um exemplo de jrxml da definição de uma band “Page Header”.
1 2 3 4 5 |
<pageHeader> <band height="40"> <!-- Conteudo da band --> </band> </pageHeader> |
band Column Header
Essa band é impressa no começo de todo band Detail ou column Detail (O conceito de column será explicado em um artigo futuro). Normalmente rótulos dos nomes das colunas são inseridos nessa band. Essa band pode ter seu tamanho aumentado dinamicamente.
1 2 3 4 5 |
<columnHeader> <band height="40"> <!-- Conteudo da band --> </band> </columnHeader> |
band Detail
Essa band funciona como uma estrutura de repetição. Ao informar uma collection ao Report, ele irá realizar um loop sobre esta, obtendo cada instância e imprimindo o seu conteúdo, repetindo o design de informações criado nessa band. Normalmente todo o conteúdo principal do relatório será impresso nessa band.
1 2 3 4 5 |
<detail> <band height="40"> <!-- Conteudo da band --> </band> </detail> |
band Column Footer
Essa band é impressa no fim de todo column Detail. Suas dimensões não são dinâmicas, mesmo que existam componentes dinâmicos dentro dela.
1 2 3 4 5 |
<columnFooter> <band height="40"> <!-- Conteudo da band --> </band> </columnFooter> |
band Page Footer
Essa band funciona como o rodapé de um relatório, aparecendo em todas as páginas que possuem a band “page header”.Suas dimensões não são dinâmicas, mesmo que existam componentes dinâmicos dentro dela.
1 2 3 4 5 |
<pageFooter> <band height="40"> <!-- Conteudo da band --> </band> </pageFooter> |
band Last Page Footer
Existir a necessidade de que o último rodapé do relatório seja diferente dos outros? Utilize essa band para isso. Assim ao inserir essa band no relatório os componentes contidos aqui somente aparecerão na ultima página. Assim como as outras bands Footer, suas dimensões não são dinâmicas, mesmo que existam componentes dinâmicos dentro dela.
Se não for informado essa band ou o sua altura for zero, essa band será ignorada e será utilizada a band “Page Footer”.
1 2 3 4 5 |
<lastPageFooter> <band height="40"> <!-- Conteudo da band --> </band> </lastPageFooter> |
band Summary
Essa band permite inserir informações finais sobre um determinado relatório, pois ela estará no fim deste.
1 2 3 4 5 |
<summary> <band height="40"> <!-- Conteudo da band --> </band> </summary> |
band Background
Como o nome diz, essa band é um fundo do relatório, servindo para inserir marcas d’agua ou outros efeitos similares. Serão inseridos em todas as páginas do relatório, inclusive nas páginas separadas da band Title e da band Summary. Essa band não entra nos cálculos de altura do relatório, logo pode possuir a altura máxima do tamanho da página do relatório.
1 2 3 4 5 |
<background> <band height="40"> <!-- Conteudo da band --> </band> </background> |
finally{
Esse artigo trouxe a definição das bands, ou espaços horizontais com características próprias que você pode utilizar em seu relatório :-). Nos próximos artigos iremos definir exemplos com utilizações das bands referenciando esse artigo para um aprofundamento momentâneo.
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply