Principais recursos do relatório
Introdução
Nessa página apresentaremos alguns dos componentes do relatório em que poderá ter os seguintes comportamentos:
Figura 1.1 - Página com fonte de dados e subrelatório
Faixa de cabeçalho de página;
Faixa de cabeçalho;
Faixa de dados;
Faixa de rodapé de página;
Subrelatório;
Figura 1.2 - Página com uso de quebra de página
6. Faixa de rodapé com quebra de página ativada;
Figura 1.3 - Página após a quebra de página
7. Faixa de dados com cabeçalho e rodapé selecionados;
Figura 1.4 - Página com gráfico
Figura 1.5 - Página com coluna e agrupamento
8. Faixa de cabeçalho de grupo;
9. Faixa de dados;
10. Faixa de rodapé de grupo.
Cabeçalho e rodapé de página
O cabeçalho de página é uma faixa no relatório que tem o objetivo de mostrar informações no topo da página, essa faixa se replica em cada página do relatório. Para adicionada uma faixa do cabeçalho no relatório, clique na aba inserir (1), abra o submenu faixas (2) e arraste cabeçalho de página até a área de edição do relatório (3), ela será adicionada automaticamente no topo da página.
Figura 2.1 - Adicionar cabeçalho no relatório
Para alterar o valor da altura e a cor de preenchimento da faixa, selecione a mesma e no menu lateral, na aba propriedades acesse as áreas: posição, para definir a altura e aparência, para definir o preenchimento (Figura 2.2).
Figura 2.2 - Alterar altura e cor de fundo da faixa
O rodapé de página tem a localização inversa do cabeçalho, ela mostra as informações na base de cada página do relatório. Ela possui o mesmo caminho que o cabeçalho, inserir > faixas > rodapé de página, basta arrastar até a área do relatório que será adicionada automaticamente na base da página. Defina um preenchimento para a faixa do relatório.
Inserir título
Após adicionadas as faixas de cabeçalho e rodapé de página será incluído um título ao relatório. Então, deve ser inserido o componente texto na área da faixa e, do mesmo modo que o cabeçalho, basta ir em inserir (1), abrir o submenu componentes (2) e arrastar texto até a área do cabeçalho.
Figura 2.3 - Adicionar componente de texto na área do cabeçalho
Ao soltá-lo na faixa, uma janela será aberta mostrando a área para inserir o texto. Escreva o título do relatório e, ao terminar, clique em OK.
Figura 2.4 - Conteúdo do título
Ajustando largura e quebra de linha
Ao definir a largura do componente, também será definido o quanto de largura o conteúdo usará. Caso ele não seja definido, o texto será cortado. Para isso, faça um ajuste na largura, que pode ser automaticamente ou manualmente. Para habilitar o modo automático, selecione o componente texto e no menu propriedades, selecione a aba comportamento e habilite o checkbox largura automática.
Figura 2.5 - Largura automática
No modo manual, basta ir nas bordas do componente e redimensioná-lo conforme desejado.
Importante
Largura automática não faz quebra de linha. Caso o texto seja muito grande e não tenha parágrafos, o conteúdo vai ser renderizado infinitamente, ignorando o formato da página do relatório.
Para resolver esse problema, habilite a caixa de seleção múltiplas linhas que se encontra na aba Texto Adicional nas propriedades do componente texto. Ao selecionar essa opção, a largura deve ser configurada manualmente, pois existe um conflito entre múltiplas linhas e largura automática.
Inserir cor e definir altura
Com o componente texto ainda selecionado, vá no menu lateral, acesse a aba propriedades e na área texto altere a cor, a fonte e o tamanho do texto (Figura 2.6). Arraste também o componente para o centro do relatório na faixa de cabeçalho.
Figura 2.6 - Definindo o tamanho, a fonte e a cor do texto
Cabeçalho e rodapé
O cabeçalho é uma faixa de saída de dados com o mesmo intuito que o cabeçalho de página, mas ele é usado em conjunto com uma faixa de dados. Para adicionar a faixa, clique na aba inserir, abra o submenu faixas e selecione cabeçalho.
Figura 3.1 - Cabeçalho
Assim como o cabeçalho de página, é possível adicionar cor, definir o tamanho e inserir título na faixa. Então, selecione a faixa de cabeçalho e no menu lateral, na aba propriedades, faça os ajustes de cor e altura. Após esses ajustes, no menu superior, na aba inserir, adicione o componente de texto sobre a área da faixa para escrever um título.
O rodapé é uma faixa de saída inserida após a faixa de dados, ela será exibida ao final da última linha da faixa de dados. Para adicioná-la, basta fazer o mesmo caminho que a faixa de cabeçalho: inserir > faixas > rodapé. (Figura 3.2)
Figura 3.2 - Inserir rodapé
Dicionário
A aba Dicionário (destaque 1 da figura 4.1), no menu lateral, permite a inserção de fontes de dados e outros elementos, como funções, no relatório. É através dele que os dados do projeto podem ser usados. É possível vincular com Fontes de dados do Cronapp ou de arquivos CSV, Excel ou JSON. Veja mais detalhes no tópico "Dicionário" em Relatório.
Figura 4.1 - Aba Dicionário
Variáveis de sistema e Funções
As Variáveis de sistema e Funções encontram-se na aba Dicionário e para utilizá-las é preciso ter alguma fonte de dados vinculado ao relatório.
As variáveis de sistema possuem diversos elementos prontos para serem exibidos no relatório. Em geral, essas variáveis contemplam informações sobre páginas, informações do relatório, informações de linha do relatório, data e hora.
Figura 4.2 - Variáveis do relatório
Variável | Descrição |
|---|---|
Column | Retorna o número da coluna atual (começa em 1). |
Line | Retorna o número da linha atual (começa em 1). |
LineThrough | Retorna o número da linha atual (começa em 1). Ao contrário da variável Line, ela retorna linhas do início do relatório, sem agrupamentos de relatórios. |
LineABC | Retorna o análogo alfabético do número da linha atual. |
LineRoman | Retorna o número da linha atual em algarismos romanos. |
GroupLine | Retorna o número da linha do grupo atual (começa em 1). |
PageNumber | Retorna o número da página atual (começa em 1). Usado para numerar páginas. |
PageNumberThrough | Retorna o número da página atual (começa em 1). Quando o PageNumberThrough é usado, a propriedade ResetPageNumber é ignorada e a numeração começa no início de um relatório. |
PageNofM | Retorna uma string localizada, mostrando "Página N de M", onde N é o número da página atual e M é o TotalPageCount de um relatório. |
PageNofMThrough | Retorna uma string localizada, mostrando "Página N de M", onde N é o número da página atual e M é o TotalPageCount de um relatório. Quando o PageNofMThrough é usado, a propriedade ResetPageNumber é ignorada e a numeração começa no início de um relatório. |
TotalPageCount | Retorna o número de páginas em um relatório. |
TotalPageCountThrough | Retorna o número de páginas em um relatório. Quando o TotalPageCountThrough é usado, a propriedade ResetPageNumber é ignorada e a numeração começa no início de um relatório. |
IsFirstPage | Retorna verdadeiro, se, no momento atual, for impressa a primeira página de um relatório. |
IsFirstPageThrough | Retorna verdadeiro se, no momento atual, for impressa a primeira página de um relatório. Ao calcular IsFirstPageThrough, todas as propriedades ResetPageNumber são ignoradas e a numeração começa no início de um relatório. Para o cálculo correto de uma variável, é necessário executar dois passes. |
IsLastPage | Retorna verdadeiro se, no momento atual, for impressa a última página de um relatório. Para o cálculo correto de uma variável, é necessário executar dois passes. |
IsLastPageThrough | Retorna verdadeiro se, no momento atual, for impressa a última página de um relatório. Ao calcular IsLastPageThrough , todas as propriedades ResetPageNumber são ignoradas e a numeração começa no início do relatório. Para o cálculo correto de uma variável, é necessário executar dois passes. |
PageCopyNumber | Retorna o número de uma cópia atual de uma página (começa em 1). |
ReportAlias | Retorna o alias de um relatório. Você pode alterar o ReportAlias com a ajuda da propriedade ReportAlias de um relatório. |
ReportAuthor | Retorna o autor de um relatório. Você pode alterar ReportAuthor com a ajuda da propriedade ReportAuthor de um relatório. |
ReportChanged | Retorna a data em que um relatório foi alterado. |
ReportCreated | Retorna a data em que um relatório foi criado. |
ReportDescription | Retorna a descrição de um relatório. Você pode alterar o ReportName com a ajuda da propriedade ReportDescription de um relatório. |
ReportName | Retorna o nome de um relatório. Você pode alterar o ReportName com a ajuda da propriedade ReportName de um relatório. |
Time | Retorna a hora atual. |
Today | Retorna a data atual. |
As funções possuem elementos que são usados para tratar ou calcular os dados obtidos no relatório, cada grupo possui vários elementos e os principais grupos são: Matemática, Data, Edição de palavras e Cálculo de agrupamento.
Figura 4.3 - Funções do relatório
Math (Matemática)
Função | Descrição |
|---|---|
Abs() | Exibe o número absoluto. |
Acos() | Exibe o valor do cosseno (cos). |
Asin() | Exibe o valor do seno (sin). |
Atan() | Exibe o valor da tangente (tan). |
Ceiling() | Exibe o valor inteiro máximo para um número especificado. |
Cos() | Calcula o valor do cosseno (cos). |
Div() | Exibe o resultado da divisão de um argumento por outro. |
Exp() | Exibe o resultado do número elevado à potência especificada. |
Floor() | Exibe o valor inteiro mínimo ou igual para o número especificado. Esta função não arredonda números. |
Log() | Calcula o logaritmo natural. |
Maximum(,) | Compara dois valores e exibe o máximo. |
Minimum(,) | Compara dois valores e exibe o mínimo. |
Round(,) | Define o número de casas decimais. Ex: (numero_decimal , quantidade_de_digitos_após_virgula). |
Sign() | Exibe um indicador. 1 para números positivos, 0 para números iguais a zero e -1 para números negativos. |
Sin() | Calcula o valor do seno (sin). |
Sqrt() | Calcula a raiz quadrada de um número. |
Tan() | Calcula o valor do tangente (tan). |
Truncate() | Exibe apenas a parte inteira sem arredondamento. |
Date (Data)
Função | Descrição |
|---|---|
DateDiff(,) | Calcula a distância entre as datas especificadas. |
DateSerial(,,) | Especifica a data. |
Day() | Exibe o dia de uma data. |
DayOfWeek() | Exibe o dia da semana de uma data em formato de texto. |
DayOfYear() | Exibe a contagem do dia no ano. |
DaysInMonth() | Exibe o número de dias no mês. |
DaysInYear() | Exibe o número de dias em um ano. |
Hour() | Exibe a hora de uma data e hora. |
Minute() | Exibe o minuto de uma data e hora. |
Month() | Exibe o mês de uma data. |
MonthName() | Exibe o nome do mês de uma data. |
Second() | Exibe o segundo de uma data e hora. |
TimeSerial(,,) | Exibe o tempo. Horas, minutos e segundos em argumentos. |
WeekOfMonth() | Exibe a semana no mês que inclui a data especificada. |
WeekOfYear | Exibe a semana no ano que inclui a data especificada. |
Year() | Exibe o ano de uma data. |
Print State (Estado de impressão)
Função | Descrição |
|---|---|
IsNull(,) | Identifica valores nulos na coluna de dados especificada. Se houver um valor nulo, o resultado é verdadeiro, caso contrário - falso. |
Next(,) | Exibe o valor da próxima linha. Se o valor da próxima linha for nulo, o resultado será 0. |
NextIsNull(,) | Compara o valor com o valor da próxima linha. Se o valor da próxima linha for 0 ou nulo, o resultado é verdadeiro, caso contrário será falso. |
Previous(,) | Exibe o valor da linha anterior. Se o valor da próxima linha for nulo, o resultado será 0. |
PreviousIsNull(,) | Compara o valor com o valor da linha anterior. Se o valor da linha anterior for 0 ou nulo, o resultado é verdadeiro, caso contrário será falso. |
Programming Shortcut (Atalho de programação)
Função | Descrição |
|---|---|
Choose() | Exibe um valor da lista de opções com base no valor do índice |
IIF(,,) | Exibe uma de duas partes, dependendo da condição atendida. |
Switch() | Atribui o valor especificado quando a condição for atendida. Se a expressão for falsa, retornará nulo. |
Strings (Sequência de caracteres)
Função | Descrição |
|---|---|
Arabic() | Converte esses números em algarismos arábicos. |
DateToStr() | Converte data em texto. |
Insert(,,) | Insere um valor após um determinado número de caracteres. |
Left() | Exibe parte do lado esquerdo de um valor de acordo com o número especificado. |
Length() | Exibe o número de caracteres de um valor. |
Mid() | Exibe parte de um valor. Neste caso, você pode definir a posição de referência. |
Persian() | Converte os números especificados em números em Persa. |
Remove() | Exclui uma quantidade de caracteres especificados a partir de uma posição. |
Replace(,,) | Substitui certos caracteres. |
Right() | Exibe parte do lado direito de um valor de acordo com o número especificado. |
Roman() | Converte numerais arábicos em numerais romanos. |
Substring() | Ignora parte da string a partir de uma posição especificado e exibe a parte restante de acordo com o número desejado. |
ToCurrencyWords() | Exibe o valor da moeda em formato de texto. |
ToLowerCase() | Exibe o valor em minúsculas. |
ToOrdinal() | Converte numerais em ordinais. |
ToProperCase() | Exibe o primeiro caractere em maiúsculo e os demais caracteres estão em minúsculos. |
ToUpperCase() | Exibe o valor em maiúsculas. |
ToWords() | Exibe os numerais como texto. |
Trim() | Remove os espaços no início ou no final da linha. |
TryParseDecimal() | Converte um número para o tipo decimal. |
TryParseDouble() | Converte um número para o tipo double. |
TryParseLong() | Converte um número para o tipo long. |
Totals (Totais)
Função | Descrição |
|---|---|
Avg() | Calcula a média aritmética. |
Count() | Calcula o número de valores do objeto especificado. |
First() | Exibe o primeiro valor. |
Last() | Exibe o último valor. |
Max() | Exibe o valor máximo. |
Median() | Exibe o valor médio (não aritmético) da lista. |
Min() | Exibe o valor mínimo. |
Mode() | Exibe o valor que mais se repete. |