Este manual tem como intenção documentar as informações mais básicas a cerca da ferramenta de configuração de impressão para relatórios utilizado no IC e também em outras ferramentas.
Em praticamente toda parte do IC é possível encontrar um botão Imprimir com a opção de edição da página de impressão e isso é feito com a ferramenta chamada Report Builder.
O menu file oferece opções mais comuns como salvar, criar novo, carregar de arquivo e salvar para arquivo. Talvez as funções mais importantes a serem destacadas sejam a Save To File (salva um arquivo *.rtm com as configurações do relatório que pode ser utilizado em outros lugares) e Page Setup que é onde pode ser configurado o tamanho do papel e a impressora que em que o relatório será impresso. Isso é fundamental!.
Apresenta as funcionalidades relacionadas a edição do relatório. Uma dica interessante é utilizar o controle de camadas para revelar ou ocultar elementos que se sobrepõe durante a edição dos componentes.
O menu View permite exibir ou ocultar elemento da interface que ajudam na edição do relatório assim como as barras de ferramentas utilizadas para incluir ou editar os elementos visuáis da página.
Report, como diz o nome, permite configurar os elementos relacionados ao relatório em si, por exemplo, incluir um rodapé e um cabeçalho e remover o sumário do relatório.
A primeira opção DATA é muito importante pois define qual será a fonte de dados responsável pelo “loop” de informações na seção “Detalhes” (DETAILS).
Esse menu não vai te ajudar em nada. As referências são apenas uma documentação das classes do Report Builder. Não tem exemplo e nem explica o que as ferramentas de edição fazem.
As barras de ferramentas podem ser ocultadas e exibedas pela seleção do menu View → Toolbar, por isso, nem sempre aparecerão na mesma ordem e disposição apresentada aqui. As barras também podem ser trocadas de lugar arrastandoas pelos (…) que fica no canto esquerdo de cada uma.
Em 90% do tempo as ferramentas utilizadas para editar um relatório estarão dentro dessas duas caixas destacadas de amarelo.
Na caixa da esqueda estão os elementos “estáticos”, ou seja, elementos nos quais as informações são pré-definidas no momento da edição, como por exemplo um campo de texto com o título ou o rótulo dos campos.
Na segunda caixa estão os elementos “dinâmicos” que receberão valores baseado em um vínculo com uma fonte de dados (Data Set's).
Como as ferramentas são muito semelhantes, muda apenas a fonte de dados, não é necessário extender muito nos detalhes de cada uma, mas é importante destacar a diferença entre os componentes Variable e DBCalc.
Como o nome diz, é uma variável cujo valor será calculado em tempo de execução do relatório.
Não entendeu? Calma… quando for falado da aba Calc, serão fornecidos mais detalhes.
Semelhante ao Variable mas possui operações pré-programadas como SOMA e MÉDIA, por exemplo, que isão atuar sobre um DBText. Por exemplo, imagine uma tabela cuja última coluna seja Subtotal e no Footer haverá o campo Total. Então, o campo com o valor Total pode ser um DBCalc com a soma do DBText que recebe o valor de Subtotal.
Subreports são relatórios como quaisquer outros entretanto, dependendo de onde é colocado e qual é sua fonte de dados, seu comportamento pode variar bastante.
Por exemplo:
Imagine que para cada item de uma compra, seja necessário listar todos os atributos deste item.
No relatório principal o cdsItem seria vinculado e então seria adicionado um subreport em Details. Dentro deste subreport, os dados do item seriam exibidos, e nos details seriam incluídos os dados do cdsAtributos, que seria vinculado ao subreport.
É possível trocar a visualização de um relatório para um subreport pelas abas da parte inferior da área de edição do relatório.
As caixas laterais de ferramentas podem ser muito úteis, especialmente em relatórios muito robustos e com alta densidade de componentes.
A primeira das caixas exibe todos os elementos presentes no relatório. A disposição em árvore facilita encontrar um elmento dependendo de onde ele se encontra. As divisões da árvore representam os componentes do relatório com os objetos aparecendo um nível abaixo.
Cada objeto, ou elemento, possui propriedades que podem ser editadas. Por exemplo, na imagem acima o objeto Variable1 está selecionado, e na propriedade UserName é possível renomeá-lo para resumo. A renomeação dos objetos facilita a manipulação de códigos escritos na aba Calc.
Cada elemento possui características própria, além das características comuns a todos elementos. Vale a pena aprender um pouco sobre essas configurações para ter maior controle do comportamento de cada elemento.
A área de edição do relatório é dividida em seções. A parte correspondente a cada seção fica acima da barra que define seu nome, ou seja, acima da barra Header é onde ficam os objetos do cabeçalho.
Cada uma dessas seções possui um comportamento próprio. O Header acontece apenas uma vez durante a criação do relatório e fica sempre no topo da página.
Na seção Detail ficam os objetos vinculados a fonte de dados principal do relatório. Os itens de uma compra, por exemplo, ficam na parte de Detail e os dados o cliente no Header. Essa seção executa um loop redesenhando tudo que está dentro dessa seção para cada dado contido na fonte.
O PageSummary é apresentado logo após o final da seção Detail.
Já o Footer aparece no final de cada página.
Nos quadros das direita é possível observar as fontes de dados para o relatório.
A maior parte dos dados são enviados ao editor do Report Builder pelo executável, sendo definido no projeto do programa, dessa forma, se uma informação não existir nos Data Sets e também não forem possíveis de calcular, a correção deverá vir acompanhada de um novo executável do programa.
No quadro Data Tree estão os Data Sets e abaixo no quadro Fields for são exibidos os campos de cada Data Set.
A aba Calc é responsável pelos códigos que irão realizar cálculos e manipular as propriedades dos objetos. Por exemplo, é possível mudar a cor de fundo de um objeto de acordo com uma condição.
No canto superior esquerdo há uma caixa que possui três filtros: Variables, Events, Module. A exibição de eventos é mais apropriada, pois o comportamento de cada seção do relatório se comporta de uma determinada forma em cada evento.
No canto inferior esquerdo fica o código, propriamente dito. O código segue a sintaxe do Pascal. Existem alguns recursos muito úteis que podem facilitar na hora de montar um código, mesemo sem saber muito de programação. Essas facilidades são dadas pela função de Arrasta e solta do Code Toolbox.
Code Toolbox possui três abas: Data, Objects, Language.
Data: Permite arrastar para dentro do código um campo para usar seu valor, por exemplo.
Objects: Permite arrastar a propriedade de um objeto do relatório para o código. Por exemplo, é possível arrastar a propriedade cor de um label e dependendo da condição, alterar o valor da propriedade.
Language: Especialmente útil pelos elementos do nó Function que trazem exemplos das funções disponíveis.