implementação do caso de uso “uc006 auditar operação · pdf...

29
Implementação do Caso de Uso “UC006 Auditar Operação!” - Analisando a Especificação O nosso próximo Caso de Uso tem por objetivo prover um relatório para usuários com papel "Administrador" realizarem auditoria em operações sobre o cadastro de funcionários, conforme especificado na Figura A67.1. Figura A67.1. Especificação para "UC006 Auditar Operação!". Por chamarmos de "relatório", e não "consulta", estamos enfatizando a importância de provermos um resultado para o usuário com formato excepcionalmente bem ajustado para impressão * , que permita o uso de recursos tais como quebras de página, totalizações e gráficos. Muito embora tenhamos desenvolvido uma solução em HTML com razoável qualidade para impressão no módulo B, para a Ficha do Funcionário, ela não seria suficiente para atender a requisitos mais rigorosos de impressão. Alguns exemplos de problema surgiriam quando fosse exigido o posicionamento exato de campos quando impressos (como para impressão sobre formulários pré- impressos), quebras de página bem feitas ou mesmo a impressão de um grande volume de páginas. Tudo isso porque os Navegadores atuais e a tecnologia HTML ainda são limitados, nesta área. * No jargão de épocas passadas, "relatórios" emitiam informações impressas diretamente em papel e "consultas" emitiam informações em um terminal de vídeo. Na medida em que se tornou possível "visualizar relatórios em terminais de vídeo" e/ou "enviar para a impressora quaisquer consultas", este critério ficou mais difuso. Portanto, como convenção, iremos chamar de relatório saídas produzidas em tecnologia Eclipse BIRT que possuam formatação (mesmo que alternativa) mais adequada para impressão, em padrão “P DF” ou “DO C”. Capítulo 17 A 6 Introdução ao Eclipse BIRT

Upload: hoangkhue

Post on 27-Feb-2018

216 views

Category:

Documents


3 download

TRANSCRIPT

Implementação do Caso de Uso “UC006 Auditar Operação!”

- Analisando a Especificação

OO nosso próximo Caso de Uso tem por objetivo prover um relatório para usuários com papel

"Administrador" realizarem auditoria em operações sobre o cadastro de funcionários, conforme especificado na Figura A67.1.

Figura A67.1. Especif icação para "UC006 Auditar Operação!".

Por chamarmos de "relatório", e não "consulta", estamos enfatizando a importância de provermos um resultado para o usuário com formato excepcionalmente bem ajustado para impressão*, que

permita o uso de recursos tais como quebras de página, totalizações e gráficos.

Muito embora tenhamos desenvolvido uma solução em HTML com razoável qualidade para impressão no

módulo B, para a Ficha do Funcionário, ela não seria suficiente para atender a requisitos mais

rigorosos de impressão. Alguns exemplos de problema surgiriam quando fosse exigido o posicionamento exato de campos quando impressos (como para impressão sobre formulários pré -

impressos), quebras de página bem feitas ou mesmo a impressão de um grande volume de páginas. Tudo isso porque os Navegadores atuais e a tecnologia HTML ainda são limitados, nesta área.

* No jargão de épocas passadas, "relatórios" emitiam informações impressas diretamente em papel e "consultas" emitiam inform ações

em um terminal de vídeo. Na medida em que se tornou poss ível "visualizar relatórios em terminais de vídeo" e/ou "enviar para a

impressora quaisquer consultas", es te c ritério ficou mais difuso. P ortanto, como convenção, iremos chamar de relatório saíd as

produzidas em tecnologia Eclipse BIRT que possuam formatação (mesmo que alternativa) mais adequada para impressão, em padrão

“PDF” ou “DO C”.

Capítulo

17 A6Introdução ao Eclipse BIRT

Por este motivo, quando especificamos um "relatório" e não uma "consulta", estamos requerendo uma

saída em formato PDF ou outro que possa ser impresso por um programa que não seja o Navegador

(como o Adobe Acrobat Reader©, por exemplo), mais apropriado para esta finalidade.

No caso do jCompany Developer Suite, utilizaremos preferencialmente o Eclipse BIRT, solução Open

Source de base homologada para este fim*.

- O Eclipse BIRT

O Eclipse BIRT é uma solução de Business Intelligence de origem comercial cedida pela empresa

Actuate Corporation© à comunidade Open Source há alguns poucos anos atrás. O Eclipse BIRT traz plugins no Eclipse que permitem a confecção visual (WYSIWYG) de relatórios incluindo quebras e

totalizações, cubos, consultas tipo "planilha" (Crosstab), sub-relatórios e muitos outros recursos, obtidos com recursos de "arrasta e solta" e conhecimentos de SQL apenas.

Além dos utilitários de desenvolvimento, o Eclipse BIRT também provê uma arquitetura que facilita a criação de "frameworks de relatório" que permite a criação de estilos e componentes reutilizáveis entre

relatórios pela empresa.

Por fim, em tempo de execução, além de componentes de motor (engine) que permitem a execução de relatórios com produção de informações em múltiplos formatos (PDF, DOC, XLS, PPT, CSV, DOC, etc.), o

Eclipse BIRT também traz uma aplicação que facilita significativamente a tarefa de disponibilizar relatórios para a WEB: o Eclipse BIRT Viewer.

Muito embora seja uma solução recentemente incorporada, o jCompany agrega valor ao Eclipse BIRT

com:

o Gerência de Configuração: Instalação e pré-configuração tanto do ambiente de

desenvolvimento quanto do de execução do Eclipse BIRT no Tomcat, garantindo uso imediato sobre uma versão homologada.

o Framework geral: Framework de base simples, contendo estilos visuais (similares a estilos CSS) para serem imediatamente aplicados em componentes e seções típicas de relatórios.

o jCompany BIRT Viewer: Especializações ao BIRT Viewer, incluindo traduções básicas para

português e uma arquitetura que possibilita liberação ultra-simplificada e com soluções de reforço na área de segurança.

No espaço que possuímos neste livro, cobriremos apenas uma pequena parte das inúmeras possibilidades que traz o Eclipse BIRT. Sugerimos os livros de nossa referência bibliográfica "BIRT - A Field Guide to

Reporting" [Peh, Hannenmann, Reeves, Hague 2006] e "Integrating and Extending BIRT"

[Weathersby, French, Bondur, Tchell, Chatalbasheva 2006] para um aprofundamento certamente compensador nesta área.

- Criando o relatório com modelo "Tabular"

1. No Eclipse, crie o diretório "rel" abaixo de "src/main/webapp" no projeto "rhtutorial". Você verá que o nome “rel” não é um qualquer - ele segue uma convenção do jCompany que conheceremos mais a frente, importante para implementação de políticas de segurança de acesso em tempo de execução.

2. Clique direito sobre o novo diretório e procure a opção "New -> Report" (Se "Report" não aparecer, clique em "New -> Other... -> Business Intelligence and Reporting Tools -> Report").

3. Dê o nome "funcionarioAuditoria" ao nosso primeiro relatório, preservando o sufixo padrão ".rptdesign" do Eclipse BIRT.

* Uma outra opção seria a dupla Jasper Reports e iReports, recomendadas até a versão 3 .1 do jCompany e ainda mantidas em

homologação, em paralelo ao Eclipse BIRT. Mas há, no mercado, uma c lara tendênc ia ao uso do Ec lipse BIRT devido à sua melhor

integração com o Ec lipse, documentação e acabamento diferenciado - especialmente devido à sua origem comercial.

Introdução ao Eclipse BIRT

Figura A67.2. Criação de um novo relatório.

4. Vá para o próximo passo do Assistente e selecione o modelo "jCompany - Relatório Tabular".

Figura A67.3. Relatório utilizando modelo “jCompany – Relatório Tabular”.

Note que existem diversos modelos (templates) padrões do BIRT e dois do jCompany disponíveis. Basicamente, estes modelos trazem versões iniciadas de relatórios para facilitar a vida de novatos. Com a experiência, a tendência é usar os modelos mais simples – ou mesmo novos modelos, criados sob medida para a empresa ou projeto.

O modelo que utilizaremos se presta ao nosso primeiro relatório que visa trazer uma lista de valores, sem quebras e nenhum recurso especial.

5. Clique em "Finish". Perceba que o Eclipse irá mudar de "perspectiva", apresentando as visões disponibilizadas pelos plugins do Eclipse BIRT, para confecção de relatórios.

Figura A67.4. Perspectiva do Eclipse BIRT no Eclipse.

#1. Paleta de componentes de relatório para "arrastar e soltar".

#2. A visão de "Outline" exibe a estrutura de componentes do relatório e é especialmente importante quando se trabalha com bibliotecas e para seleções refinadas de componentes do relatório, como veremos.

#3. A área de "Layout" do relatório traz alguns componentes pré-configurados no modelo do jCompany, inseridos em uma tabela de dados (objeto Table).

#4. A área de "Property Editor - Report" traz propriedades diversas de configuração para componentes de relatório, sensíveis ao contexto! Clique em objetos na área de "Layout" e perceba como estas propriedades se modificam.

#5. Diversos painéis agrupam propriedades para cada objeto com um grande número de opções de estilos básicos (Fonte, Cor, Tamanho, Cor de Fundo, alinhamento etc.); formatações para datas, números, dinheiro; expressões de avaliação dinâmica; eventos para programação; etc.

6. Clique na aba "Preview", conforme a Figura A67.5.

____________________

Importante - se ao clicar na aba Preview apresentar erro de conexão com o banco, pode ser que os jar de conexão com o Derby não existam na pasta de plugins do Birt. Então é preciso localizar os plugins do Derby e incluí-los na pasta drivers do Birt.

Introdução ao Eclipse BIRT

Figura A67.5. Visualização de relatório conforme disponibilizado pelo modelo.

#1. Note que a parte central oferece outras visões além da principal de "Layout", a saber:

o "Layout": Editor WYSIWYG do relatório.

o "Master Page": Página "mestre", contendo área para definições de topo e rodapé, globais para

o relatório.

o "Script": Seção para programação. O BIRT expõe eventos que permitem programação via

"script" utilizando sintaxe Javascript ou até Java, mediante configurações especiais. Com isto, é

possível se obter efeitos de alto dinamismo com possibilidades ilimitadas.

o "XML Source": Todas as definições que se faz nos diálogos visuais ("Layout" e "Property

Editor") terminam por gerar entradas em XML, que também pode ser editado ou consultado diretamente nesta aba.

o "Preview": Permite a visualização do relatório, inclusive conectando-se com o Banco de Dados e utilizando dados reais de teste.

#2. Janela de captura de argumentos automaticamente gerada pelo BIRT*. Note que o modelo "Tabular" do jCompany já traz um conjunto de argumentos apenas para exemplo e referência.

7. Clique em "Ok" para aceitar os valores de argumentos propostos. O modelo "Tabular" do jCompany pode ser então melhor compreendido, como mostra a Figura A67.6.

* Es ta janela aparece traduzida quando utilizamos o jC ompany BIRT Viewer, em tempo de tes te e produção, no Tomcat . A lém disso, ela

é automaticamente omitida quando enviamos os argumentos dos relatórios via URL, técnica que usaremos mais adiante.

Figura A67.6. Estilos do modelo "Tabular" em ação.

#1. Um logotipo "da empresa" já vem configurado no canto esquerdo do topo, definido na aba "Master Page".

#2. O título do relatório é exibido com o estilo "masterCabecalhoTituloPlc".

#3. O subtítulo do relatório é exibido com o estilo "masterCabecalhoSubTituloPlc".

#4. A data e hora de criação é disponibilizada no canto da direita, com estilo "masterCabecalhoDataCriacaoPlc".

#5. A barra de "argumentos" é destinada a exibir os valores informados como parâmetros pelo usuário. Ela é incluída em uma grade ("Grid"), que por sua vez fica na primeira linha da tabela ("Table") que é vinculada (Binding) com uma Tabela de Dados do SGBD-R. - Os rótulos estáticos desta área de argumentos recebem o estilo "cabecalho1RotuloAlinhadoDireitaPlc". - As partes dinâmicas de argumentos são exibidas em um estilo que produz um contorno de destaque, chamado "cabecalho1ValorComBordaPlc".

#6. Os rótulos que aparecem no cabeçalho da tabela de dados em si utilizam uma variação sutil de estilos que exibem sublinhados e cores de fundo cinza. - Os que se apresentam centralizados utilizam estilos chamados "tabela1RotuloNumeroPlc". - Os que se apresentam alinhados à esquerda utilizam estilos chamados "tabela1RotuloGeralPlc".

#7. Os valores de dados numéricos utilizam o estilo "tabela1ValorNumeroPlc" que alinha os valores à direita (como é comum para números).

#8. Os valores textuais utilizam o estilo "tabela1ValorTextoPlc" com alinhamento à esquerda.

#9. Os valores monetários utilizam o estilo "tabela1ValorDinheiroPlc" que formata o símbolo do real e casas decimais, além do alinhamento também à direita.

#10. Os valores de data são formatados com "dd/MM/yyyy" e centralizados através do estilo "tabela1ValorDataPlc".

#11. Os valores de data e hora são formatados com "dd/MM/yyyy HH:mm:ss" através do estilo "tabela1ValorDataHoraPlc".

#12. Na parte de rodapé da tabela de dados uma nova grade é inserida com dois objetos: - Um rótulo indicando valor de total com estilo "rodape1RotuloPlc". - E um campo agregado (“Aggregation”) que conta o total de registros exibidos no relatório, exibindo-os com o estilo "rodape1TotalPlc".

#13. Por fim, também definido na página mestre está o contador de páginas de rodapé contendo uma linha de divisão do corpo.

O uso de estilos como os acima descritos deve ser incentivado para relatórios BIRT, assim como o uso de CSS para páginas HTML. Com os estilos obtém-se maior produtividade na revisão e melhor qualidade na padronização. Naturalmente, também é possível especializar e/ou modificar algumas das propriedades dos estilos.

8. Vamos conferir a arquitetura de framework para relatórios BIRT para localizar os estilos utilizados. Clique novamente na aba "Layout" e, na seção da esquerda, na aba de "Resource Explorer".

Introdução ao Eclipse BIRT

9. Clique direito sobre "Shared Resources" procure a opção " Add Resource...". Preencha o diálogo conforme Figura A67.7

Figura A67.7. Adicionando biblioteca de base do jCompany para relatórios BIRT.

10. Em seguida, expanda a pasta "jCompanyGeneral.rptlibrary", "Themes" e os dois temas existentes.

Figura A6.8. Biblioteca de base do jCompany para relatórios BIRT.

#1. Na visão da esquerda, além da aba "Palette" também é possível abrir o "Data Explorer" (Explorador de Dados) e o "Resource Explorer" (Explorador de Recursos). O "Resource Explorer" exibe recursos que o arquivo atual eventualmente reutiliza.

#2. No caso do modelo do jCompany "Tabular", uma biblioteca chamada "jCompanyGeneral.rptlibrary" já vem pré-configurada, contendo basicamente estilos para reúso e maior padronização.

#3. Os estilos são agrupados, em bibliotecas, na pasta "Themes" (Temas).

O tema "jCompanyDefaultTheme" define novos estilos não existentes no BIRT, como os citados no passo 7.

#4. O tema "defaultTheme" contém estilos que sobrepõem os valores default utilizados pelo BIRT. Deste modo, os objetos "itens de relatório" disponíveis na paleta já são introduzidos nos relatórios com alguns dos tipos "primitivos" (como "Table","Grid", etc.) já recebendo customizações do jCompany.

Assim, recapitulando até aqui, tivemos contato com os três tipos de arquivos principais do BIRT: o

“rptdesign”, o “rpttemplate” e o “rptlibrary”.

Criamos um novo relatório "funcionarioAuditoria.rptdesign" a partir de um modelo de relatório do

jCompany (existe com nome "jCompanyTabular.rpttemplate", pré-configurado nos diretórios dos

plugins BIRT). Este novo relatório, por sua vez, graças ao modelo, já vem com os estilos da biblioteca "jCompanyGeneral.rptlibrary" disponíveis.

Importante: Note que, para os maiores ganhos, deve-se realizar um trabalho preliminar de padronização de topos, rodapés, estilos etc., para toda a empresa ou ao menos para um projeto. Novos

arquivos dos tipos ".rpttemplate" e ".rptlibrary", contendo generalidades do negócio, podem então ser

disponibilizados em nível da arquitetura para facilitar os relatórios do dia a dia, a partir daí.

- Alterando propriedades gerais do relatório

A primeira providência após criarmos um novo relatório é alterarmos os seus dados globais.

1. Abra o diálogo de "Outline" do Eclipse (se não estiver visível, utilize "Show -> View -> Outline").

2. Clique na raiz da Treeview, em "Relatório Tabular", e localize a aba de "Property Editor - Report" no painel mais central. Altere os valores conforme os descritos na Figura A67.9.

Figura A67.9. Def inições globais do relatório.

- Configurando a conexão com o SGBD-R para o projeto

Quando clicamos em "Preview" conseguimos visualizar uma linha de dados em nosso relatório colocada

com valores constantes pelo modelo fornecido pelo jCompany. Mas o mais interessante é podermos nos conectar diretamente com a base de desenvolvimento para confeccionar nosso relatório de forma viva,

com alta produtividade, utilizando dados reais de teste.

Para isso, temos inicialmente que criar um Data Source (Fonte de Dados), em nosso caso apontando para

o nosso banco de dados local, em Apache Derby.

1. Clique na aba "Data Explorer" e expanda o item "Data Sources".

2. Clique direito no Data Source que veio pré-configurado, "BancoLocal", e, em seguida, em "Edit". Este é um Data Source que traz configurações para conexão com o Apache Derby, SGBD-R que utilizamos como padrão até aqui.

Introdução ao Eclipse BIRT

Figura A67.10. Data Source BIRT com dados de conexões para Banco Local padrão do jCompany.

#1. Classe do Driver JDBC específico. Note que, como veio pré-configurado, o Data Source já traz o Driver do Apache Derby selecionado, homologado para acesso ao nosso SGBD local. Para alterar a configuração para qualquer outro SGBD (ou mesmo se houver algum problema nesta configuração), basta utilizar o botão "Manage Drivers..." para configurar um novo Driver.

#2. URL de acesso específica para o Driver. Esta URL pode ser obtida do arquivo "rhtutorial.xml" (arquivo de contexto do Tomcat, ou do manual de cada Driver JDBC utilizado). Esta URL nos atende, já que o jCompany utiliza sempre o nome "bancolocal" como nome do banco de dados local.

#3. Usuário "APP" e senha "APP", conforme vêm pré-configurados pelo jCompany.

#4. O campo "JNDI URL" é um dos mais importantes desta configuração. Apesar de não ter efeito no desenvolvimento do relatório em si (se não alterar este campo, ainda assim a conexão em desenvolvimento irá funcionar), se não informarmos um endereço de pool de conexões que seja válido em tempo de produção, em produção o Apache Derby irá tentar criar uma nova conexão (com o usuário e senha "APP"/"APP") a cada execução para cada usuário, o que degrada consideravelmente a performance! Felizmente, é mais provável que o relatório não execute, pois o usuário e senha de desenvolvimento utilizados provavelmente não terão sucesso em conexão no ambiente de produção. Mas note que, se tiver sucesso, este problema pode ser mascarado e, apesar da baixa performance, o relatório executar de forma sofrível para os usuários – o que pode ser ainda pior do que uma falha, que logo é corrigida.

3. Troque o endereço de "###POOL###" para "rhtutorial", que referenciará corretamente o pool de conexões pré-configurado pelo jCompany (basta adicionar o prefixo "java:comp/env" ao Data Source declarado no "web.xml").

4. Clique em "Test Connection..." para ver se uma mensagem "Connection Sucessfull" aparece. Se não aparecer, certifique-se de que o banco de dados foi ativado no projeto "rhtutorial" e/ou reconfira os parâmetros informados para conexão.

- Configurando Data Sets para um relatório

Uma mesma Fonte de Dados (Data Source) será possivelmente reutilizada por vários relatórios dentro de

um mesmo projeto*, mas um Conjunto de Dados (Data Set) tende a ser específico. Isso porque, ao contrário do que pode parecer em um primeiro momento, um Conjunto de Dados é mais do que um

simples mapeamento para uma "Tabela" - ele representa dados já preparados para a finalidade a que se destinam, no relatório em questão.

* P or es te motivo, quando você estiver mais fluente em Eclipse BIRT, o correto será definir o Data Source em uma biblioteca de escopo

do P rojeto para que não fique redundado em vários relatórios, mas seja reutilizado.

Um Data Set será representado, tipicamente*, por um "cláusula select" que pode envolver projeções,

junções e agregações próprias do SQL. Além disso, uma definição de Data Set poderá conter decorações

na forma de "nomes mais significativos" para colunas (propriedades), fórmulas e filtros executados no "cliente" (e não no SGBD), dentre outros recursos adicionais ao "select" básico.

Por tudo isso, o recomendado é que se definam Data Sets específicos para atendimento ao relatório em questão, com a maior especialização possível. Vamos, então, definir o Data Set para atendimento ao

nosso Caso de Uso.

1. Acione clique direito em "Data Set" e a opção "New Data Set". Preencha o primeiro diálogo conforme a Figura A67.11.

Figura A67.11. Def inição de um primeiro Data Set.

2. No segundo passo, perceba que nossas tabelas e colunas estão disponíveis em painel da esquerda para auxiliarem na confecção do SQL. Posicione na cláusula "from", dê um espaço e dê um duplo clique na tabela "Funcionario" para preencher a cláusula.

* Note que o Ec lipse BIRT não trabalha somente com bases relacionais (SGBD-R). E le pode produzir relatórios tendo arquivos

convencionais como Data Source, por exemplo. Neste livro iremos focar somente em acesso a bancos de dados relacionais.

Introdução ao Eclipse BIRT

Figura A67.12. Início da confecção da cláusula SQL, com auxílio.

3. Posicione o cursor agora na parte "select" e abra uma linha para cada coluna que vamos selecionar. Procure a coluna na relação à esquerda e, com duplo clique, selecione cada uma que precisaremos, conforme a Figura A67.13.

Figura A67.13. Relação de colunas def inidas no SQL.

Importante: Lembre-se de dar espaço após a última coluna para separá-la do "from". Um erro comum é esquecer de dar espaços entre as linhas, quando editando SQLs neste diálogo, quando não há vírgulas.

4. Crie agora uma cláusula "where" sempre lembrando de dar espaços ao final das linhas. Preencha a cláusula conforme a Figura A67.14.

Figura A67.14. Cláusula SQL para o Data Set f inalizada.

#1. Intervalo de datas verificado utilizando uma interrogação "?" em lugar de argumentos do relatório (que veremos a seguir).

#2. Para que determinados argumentos tenham o efeito de QBE (Query By Example), ou seja, de não filtrarem quando não informados, podemos utilizar esta técnica. No caso, se o usuário for informado iremos recuperar apenas modificações realizadas pelo mesmo. Do contrário, recuperaremos de todos ("? is null").

Importante: Note que se mantemos o dono ("owner") "APP", esperamos que ele também exista em produção - do contrário devemos omiti-lo.

5. Clique em "Finish". O próximo diálogo se abrirá permitindo que se informe nomes mais significativos para as colunas e também rótulos que serão utilizados como default. Informe os valores conforme a figura abaixo.

Figura A67.15. Preparando colunas para saída (output).

#1. Em "Name" fica o nome da coluna, incluindo todas que definimos na cláusula "select" do SQL.

Introdução ao Eclipse BIRT

#2. Em "Type" fica o tipo BIRT assumido para a representação da coluna no relatório.

#3. Em "Alias" pode-se definir um valor alternativo para cada coluna, apresentado em diálogos com o Desenvolvedor durante a confecção do relatório - mas também em alguns utilitários do BIRT que podem ser utilizados pelos usuários finais, como "para exportação de dados". Portanto, vale à pena informar um nome significativo para cada coluna aqui.

#4. Em "Display Name" pode-se definir um rótulo padrão para a coluna, utilizado pelo BIRT como default, em algumas situações.

#5. Em "Display Name Key" pode-se utilizar I18n no relatório colocando chaves para arquivos de mensagens (como fizemos em HTML) em lugar dos rótulos em português diretamente. Não utilizaremos este recurso neste livro, mas o Desenvolvedor não encontrará problemas em entender como funciona na própria documentação do Eclipse BIRT.

#6. Ao acionar um "duplo clique" ou o botão "Edit..." um diálogo se abrirá, permitindo informar os valores, para cada coluna.

Importante: É um erro saltar este diálogo sem preenchê-lo cuidadosamente para "queimar etapas". Ao informarmos bons valores nestas colunas já estamos avançando em nosso objetivo e ganharemos tempo mais adiante, com os valores e rótulos já bem definidos.

6. Clique agora, na lista da esquerda, em "Parameters"*. Note que aparecem quatro valores já preenchidos, ou seja, quatro "argumentos" ou "parâmetros" do Conjunto de Dados (Data Set). O Eclipse BIRT já inclui um parâmetro para cada interrogação "?" que definimos em nossa cláusula SQL. Precisaremos neste diálogo, basicamente, vincular os parâmetros do Data Set com os parâmetros do relatório (Report Parameters). Note que, na arquitetura flexível do BIRT, um relatório pode requisitar, digamos, dois parâmetros do usuário (Report Parameters) que, por sua vez, podem ser vinculados a vários parâmetros de conjuntos de dados (Data Set Parameters), inclusive de vários Data Sets diferentes.

Este relatório modelo já possui, por exemplo, três parâmetros definidos para o relatório, como vimos no "Preview", requisitando "data de início", "data de fim" e "usuário" - exatamente os argumentos que

precisaremos em nosso Caso de Uso†.

Assim, edite cada um dos quatro valores de argumentos para o Data Set, conforme exemplifica a Figura A67.16.

Figura A67.16. Parâmetros de Data Set já associados a Parâmetros do Relatório.

* I remos saltar "Computed Columns", mas seu uso pode ser experimentado pelo Desenvolvedor - é um diálogo que, como o nome

sugere, permite que c riemos "colunas" com valores derivados das demais através de fórmulas diversas.

† Nes te livro, propusemos uma primeira especificação de relatório próxima do modelo que vem no jCompany para fac ilitar o primeiro

caso.

#1. Diálogo de "Data Set Parameters", que nos permite definir melhor cada parâmetro "?" incluído na cláusula SQL e vinculá-lo a um Report Parameter.

#2. Em "Name", substitua os nomes gerados por outros mais significativos.

#3. Esta campo não é de preenchimento obrigatório e não o usaremos uma vez que ele é um opcional ao campo "Name".

#4. Em "Data Type", o Eclipse BIRT já assume valores apropriados.

#5. Em "Direction", deixe o padrão "Input".

#6. Em "Default Value", também não modifique. O valor será assumido dos parâmetros do relatório.

#7. Em "Linked to Report Parameter", selecione um parâmetro correspondente na lista, utilizando o "usuarioUltAlteracao" duas vezes, para o caso especial (tipo QBE) que definimos.

#8. Acione "duplo clique" ou "Edit..." em cada linha para alterar.

7. Agora clique na opção "Preview Results". Se existirem atualizações realizadas com o usuário "admin", no intervalo de datas que vem no modelo como default (ou o último informado no "Preview"), aparecerão resultados como na figura abaixo.

Figura A67.17. Valores retornados pela cláusula SQL utilizando valores de argumentos.

8. Finalize a definição do Data Set com "Ok".

- Entendendo os parâmetros de relatórios

Uma vez criado o Data Set, vamos entender um pouco mais sobre parâmetros de relatórios.

1. Expanda o item "Report Parameters" da aba "Data Explorer". É possível criar novos argumentos com um clique direito em "Report Parameters" ou editar os que vêm como padrão com um duplo clique. Acione duplo clique em "dataUltAlteracaoIniArg".

Introdução ao Eclipse BIRT

Figura A67.18. Parâmetros de relatório com agrupamento para intervalo de datas.

#1. Definição de parâmetros para o relatório como um todo. São os parâmetros aqui definidos que serão requisitados aos usuários.

#2. Podem-se agrupar parâmetros para que apareçam em uma caixa segmentada no diálogo com o usuário e/ou para vinculá-los (como no caso de listas encadeadas de valores. Ex.: Unidades da Federação -> Municípios -> Bairro"). No caso do projeto modelo "Tabular", um grupo vem pré-configurado para agrupar o intervalo de datas.

#3. Um terceiro argumento é definido fora do grupo, no modelo, que é o usuário responsável pelas alterações.

#4. Nome do argumento.

#5. Em "Prompt Text:" informe o texto que se deseja exibir para usuários no diálogo que requisita os parâmetros para o usuário.

#6. Em "Data Type" informe o tipo dos argumentos.

#7. Em "Display Type" pode-se definir para que um valor seja exibido em formatos tais como "Combos", "Listas", "Radio", etc.

#8. Em "Display As -> Help Text" informe um texto que aparecerá como um balão de ajuda no campo de parâmetro.

#9. Em "Display As -> Format As" é possível definir um formato para exibição dos parâmetros. No caso de datas, o formato sugerido, por hora, é dd/MM/yyyy ou "Medium Date".

#10. Existem outras opções que podem ser informadas para cada argumento. A principal é "Is Required" para obrigatório e "Hidden"/"Do not echo input" para não requisitar ao usuário (assumindo um valor default como constante, por exemplo).

#11. Em "Default Value" pode-se informar um valor default que será exibido para o usuário. Vimos estes valores em ação quando clicamos em "Preview" e a janela de argumento se abriu com valores já preenchidos.

2. Acione um duplo clique agora no parâmetro de usuário. Perceba que neste caso o parâmetro vem como opcional. O valor default é "admin" (mas seria pouco provável deixar um valor default neste campo, em um caso real).

Figura A67.19. Parâmetro do tipo String, para usuário.

3. Se tornarmos a conferir a janela padrão de coleta de parâmetros de relatório do Eclipse BIRT (também chamamos de janela de argumento) compreenderemos um pouco melhor seu funcionamento. Confira com a Figura A67.20.

Figura A67.20. Diálogo de solicitação de valores para parâmetros de relatório.

#1. O título da janela pode aparecer em inglês, mas em produção virá traduzido.

#2. Um texto de explicação de obrigatoriedade também aparece traduzido em tempo de execução.

#3. Os grupos de argumento são apresentados com este destaque.

#4. Valores obrigatórios aparecem com a marca de asterisco.

#5. Os valores default estão na formatação definida.

#6. Campos opcionais aparecem com uma opção adicional de valor nulo.

- Exibindo tabelas de dados (Table) em relatórios

Vamos agora associar o nosso conjunto de dados a um elemento visual chamado "tabela" (table), capaz

de exibi-lo imediatamente e com formatações apropriadas. O nosso relatório modelo já traz um objeto

deste tipo com valores constantes que iremos substituir.

1. Abra a janela de "Outline" do Eclipse e expanda o item "Body" da Treeview "Relatório de Auditoria de Funcionários".

Introdução ao Eclipse BIRT

2. Clique em "Table", abaixo de "Body", e na visão "Property Editor - Table". Selecione a pasta "Binding". Em seguida, selecione "FuncionarioAuditoria" (Data Set recém-criado) na lista "Data Set".

Figura A67.21. Diálogo de solicitação de valores para parâmetros de relatório.

#1. A Treeview do outline exibe a estrutura do arquivo XML que contém toda a definição do relatório (inclusive Data Sources, Data Sets e Libraries), facilitando a seleção de determinados elementos.

#2. O segmento corpo contém a parte de apresentação do relatório em si, excetuando-se a "Master Page", que provê cabeçalhos e rodapés globais.

#3. A visão "Property Editor" é dinâmica, como já vimos, e exibe informações complementares (propriedades) para o elemento selecionado, seja no Outline, seja na visão de Design principal. Em nosso caso, exibe propriedades para "Table".

#4. A pasta "Binding" permite que se vincule um objeto "tabela" a um "conjunto de dados".

#5. Ao vincular, perceba que o nome que definimos é utilizado tanto em "Name" quanto em "Expression".

3. Agora vamos seguir para a visão principal de "Layout” WYSIWYG. Clique nos campos de amostra na linha "Detail Row" e remova-os. Note que é possível marcar vários objetos simultaneamente com as técnicas de edição convencionais de "Control+Clique".

4. Em seguida, selecione a pasta "Data Explorer", expanda a relação de "Data-Sets" e o nosso Data Set "FuncionarioAuditoria". Clique na coluna "Cód." e a arraste para a coluna do Design, conforme a Figura A67.22.

Figura A67.22. Arrasta e solta do Data Set para a tabela na visão de Design WYSIWYG.

#1. Objetos originais do modelo removidos.

#2. Objeto "Cód." criado a partir da coluna do Data Set. Note que somente é possível arrastar porque o objeto Table está vinculado ao Data Set.

5. Arraste as demais colunas que possuem uma correspondência para a coluna respectiva da tabela do Design. Troque o rótulo de “Salário” para “CPF” e deixe em branco as colunas sem correspondência, conferindo com a Figura A67.23.

Figura A67.23. Colunas acomodando dados do Data Set.

6. Agora realize novamente um "Preview" para vermos o resultado até aqui.

Figura A67.24. Visualização do relatório com dados de teste.

#1. Se não vierem dados, altere os valores dos parâmetros conforme sua amostragem (utilize o plugin Quantum DB se for preciso para ver datas das últimas alterações e usuários).

#2. Agora vemos dados reais recuperados do banco de dados de teste local, configurado no Data Source.

#3. Note que os alinhamentos de números deveriam estar à direita e de data, centralizado, segundo recomenda o modelo. Além disso, a fonte não é a mesma. Em suma, os novos objetos ainda não estão seguindo a formatação padrão.

#4. O objeto "Aggregation" pré-definido agora não é renderizado, pois excluímos objetos por ele utilizados. O Eclipse BIRT gera então uma mensagem de erro que aparece de vermelho logo abaixo do relatório.

7. Vamos melhorar a formatação do nosso relatório para nos adequarmos à especificação. Comece por excluir a coluna que contém "Nascido em", retornando para a visão "Layout" e seguindo as instruções abaixo.

Introdução ao Eclipse BIRT

Figura A67.25. Exclusão de coluna no Design.

#1. Clique nas caixas cinza superiores ou laterais para selecionar uma coluna ou linhas inteiras do objeto Table.

#2. Clique direito para opções de edição básicas como exclusão ou alteração de estilo. Utilize "Delete" para excluir a coluna.

8. Agora vamos inserir uma nova linha na seção de cabeçalho para conter os totais de incluídos, alterados e excluídos, conforme a especificação da Figura A67.1. Note que temos duas linhas de cabeçalho e que, para o efeito especificado, devemos incluir uma nova entre as existentes.

Figura A67.26. Inserindo uma nova linha de cabeçalho.

#1. Linhas de cabeçalho. Clique direito na primeira e seleciona "Insert -> Row -> Below" para incluir uma nova linha entre as duas existentes.

#2. Perceba o ícone diferenciado para linha de detalhe. Também é possível criar quantas linhas de detalhes forem necessárias - e todas as criadas se repetirão conforme o número de linhas do conjunto de dados.

#3. Ao final, há uma linha de rodapé preenchida por default com uma totalização. Foi solicitado que os totais ficassem acima - portanto, iremos retirá-la daqui, logo adiante.

9. Selecione todas as colunas da nova linha criada e clique direito para acessar a opção "Merge Cells". Acione-a para que possamos mesclar estas células em uma única.

Figura A67.27. Mesclando colunas de uma linha.

10. Agora clique na linha que possui o rótulo "Total de Registros". Repare que, ao fazê-lo, uma aba com indicador "Grid" aparece dinamicamente, revelando o contêiner do rótulo. Esta aba permite que se selecione o contêiner em si (e não algum dos objetos contidos) - seja para edição de suas propriedades, seja para redimensioná-lo ou arrastá-lo, como é o nosso caso. Com este recurso, o Eclipse BIRT evita aquelas chatas alterações de camadas "para baixo" ou "para cima" de editores visuais.

Clique na aba "Grid" e arraste este objeto todo (contendo o Total de Registros e a Agregação) para a nossa linha recém criada.

Figura A67.28. Arrastando um Grid.

Por que nós não incluímos os totais nas próprias colunas da tabela principal, em vez de criar um Grid?

Incluir um Grid permite que possamos definir um subleiaute independente das seções principais da tabela para cabeçalhos, rodapés ou mesmo outras linhas especiais de detalhe. Na maioria das vezes esta prática se mostra mais apropriada. Quando, porém, precisamos apenas de um total perfeitamente alinhado com a coluna que está totalizando, o uso das próprias colunas da tabela pode ser mais prático.

11. Crie mais quatro colunas no Grid original. Precisaremos para os rótulos e totalizadores que constam na especificação. Para tanto, clique direito na coluna e selecione "Insert -> Column to the Right".

Figura A67.29. Incluindo colunas em um Grid.

12. Crie os rótulos de totais para incluídos, alterados e excluídos, deixando colunas vazias para os valores de totalização que faremos mais adiante. Para tanto, copie o rótulo existente e cole nas novas colunas, em seguida editando o texto dos rótulos em si.

13. Exclua, também, a primeira coluna da tabela principal, antes de código (se não lembrou de fazer juntamente com "Data de Nascimento"). Confira o resultado com a Figura A67.30.

Introdução ao Eclipse BIRT

Figura A67.30. Espaço para totais criado.

#1. Rótulos para totais, com espaços para as agregações em si.

#2. Primeira coluna removida para finalização da estrutura do relatório, de acordo com a especificação.

- Alterando a Master Page (Página Mestre)

A visão de Master Page, acionável pela aba "Master Page", além de permitir as definições de conteúdo

para "Topo" e "Rodapé" que já apresentamos, também permite diversas opções de formatação globais para o relatório ou para um conjunto de páginas. Note que um mesmo relatório pode

ter mais de uma Master Page e, deste modo, ser formado por diversas "seções" com margens, topos e

rodapés distintos - bem no estilo de editores de texto como o MS Word.

Veja, na Figura A67.31, uma breve explanação para esta visão.

Figura A67.31. Visão Master Page.

#1. A aba "Master Page" permite edição WYSIWYG mas também de propriedades na visão "Property Editor - Master Page -> Properties".

#2. Os conteúdos do cabeçalho e do rodapé podem ser modificados.

#3. Várias opções de configuração estão disponíveis, que dizem respeito ao relatório como um todo ou ao conjunto de páginas que usam uma Master Page específica.

#4. Diversas propriedades permitem a formatação das páginas do relatório como um todo, incluindo margens, bordas, leiaute (carta, legal, A4 etc.), orientação, etc.

#5. Vamos agora alterar o cabeçalho, para conter o logotipo de nossa empresa e o título apropriado. Clique no texto do título principal e digite "Relatório de Auditoria" e no subtítulo "Relatório de Auditoria de Manutenção

de Funcionários"*.

2. Agora clique no logotipo e com clique direito acione "Edit". Siga as instruções da Figura A67.32.

Figura A67.32. Inserção de imagem em relatórios.

#1. Clique direito na imagem e acione "Edit" para modificá-la.

#2. Existem várias opções no Eclipse BIRT para se referenciar imagens: - URI: Aceita endereço de imagens relativo (imagens existentes no arquivo da aplicação) ou absoluto (existentes fora da aplicação). É o preferível, porém a imagem não será visualizada no caso de endereços relativos em modo de desenvolvimento (apenas por isso não utilizamos inicialmente). - Image File in shared resources: Aceita endereço de imagens em sistema convencional de arquivos (como um driver padrão compartilhado na rede interna). Em geral não é recomendável. - Embedded Image: Embute a imagem (em formato hexadecimal) no XML de design do relatório. Traz a vantagem de encapsular e tornar a imagem "própria para o relatório". Por isso não é o ideal para um logotipo (se ele muda, deve-se mudar em todos os relatórios! Vamos melhorar isso no próximo relatório). - Dynamic Image: Permite acesso a imagens armazenadas dentro de colunas de SGBD-R (Blobs). Pode ser necessária em determinadas situações.

#3. Vamos adicionar uma imagem embutida além da que existe do jCompany†. Ela foi disponibilizada pelo Web-Designer especificamente para fins de impressão contendo o logotipo da empresa ACME. Clique em "Add Image..." e procure pela imagem "acme_logo.gif" na pasta "[jCompany]\jcompany_documentacao\rhtutorial\gui\acme".

* A espec ificação não pede os dois, mas gos tamos de sugerir melhorias.

† Note que es ta imagem aparece no projeto, mas não pode ser removida, pois se encontra no framework

"jCompanyGeneral.rptlibrary".

Introdução ao Eclipse BIRT

3. Execute um novo "Preview" e confira o resultado com a especificação. Estamos quase lá - faltam os totais e um embelezamento final!

Figura A67.33. Visualização do estágio atual do relatório.

- Utilizando agregações (Aggregation)

Para efetuarmos as totalizações de incluídos, alterados e excluídos, o Eclipse BIRT oferece poderosos recursos. Usaremos o mais simples deles, que é suficiente em nosso caso. Apesar disso, é recomendado

ao Desenvolvedor que se aprofunde nas possibilidades que o BIRT oferece para programações em linguagem de script (com sintaxe Javascript) ou mesmo em Java.

Antes de fazer o cálculo em si, vamos compreender como podemos diferenciar incluídos, alterados e excluídos, no conjunto de dados recuperados em um período, fazendo um retrospecto de recursos do

jCompany que já vimos em outros tutoriais:

o No primeiro tutorial do capítulo 6, vimos que o jCompany propõe a utilização do que chama de "Auditoria Pauta Mínima" em todos os objetos, através do acréscimo de propriedades

para "usuário da última alteração" e "data da última alteração".

o Vimos também que o próprio JPA/Hibernate propõe a utilização de uma propriedade de versão,

anotada com "@Version", com o propósito interno de tratamento de concorrência otimista (O

JPA usa este valor na "where" de todo "update" ou "delete"). Mas esta propriedade termina também por dar uma informação de "versão" de cada objeto, pois é incrementada a

cada atualização, automaticamente.

o Um outro recurso discutido mais a frente foi "exclusão lógica", que utilizamos para a

manutenção de funcionários. Neste padrão, em lugar de remover o objeto da persistência efetivamente, o jCompany altera sua situação de sitHistoricoPlc='A' para

sitHistoricoPlc='I'.

Assim, após a retrospectiva acima, podemos definir os conjuntos desejados com os seguintes critérios:

o Incluídos no período: objetos com versão 0 (zero) e data da última alteração dentro do

período.

o Alterados no período: objetos com versão maior que 0 (zero) e data da última alteração

dentro do período.

o Excluídos no período: objetos com situação "Inativo" (sitHistoricoPlc='I') e data da última alteração dentro do período.

Vamos, agora, implementar estas totalizações no Eclipse BIRT, segundo os critérios acima.

1. Selecione a visão de "Palette" e arraste o componente "Aggregation" para a linha de cabeçalho, na coluna a frente do rótulo "Total Incluídos".

2. Um diálogo irá se abrir chamado "Aggregation Builder". Preencha-o como na Figura A67.34.

Figura A67.34. Criação de um componente "Aggregation", para conter fórmulas e totalizações.

#1. A paleta é rica em componentes. Veremos uma boa parte deles em nossos tutoriais.

#2. Usaremos o componente "Aggregation" para realizar computações em nível do relatório. Note que seria também possível utilizar SQL e recursos do servidor SGBD-R para tal.

#3. Dê nomes para o componente.

#4. Altere o valor de "Function" para "COUNT". Ao fazê-lo, percorra todas as funções disponíveis para conhecer as demais possibilidades oferecidas por este componente.

#5. Em “Data Field”, selecione o campo "Código" (algum que dê unicidade a cada linha, preferencialmente).

3. Deixando desta forma, nosso componente já apresentará o total de linhas recuperadas, pois o componente Aggregation assume suas operações sobre o contêiner Table. Mas como queremos contar incluídos, alterados e excluídos em separado, teremos que adicionar um "filtro". Acione o botão "fx" em "Filter Condition". O diálogo genérico "Expression Builder" aparecerá, como mostra a Figura A67.35. Este diálogo é utilizado em diversos contextos onde uma expressão pode ser inserida e é um recurso chave a ser dominado para obtenção de fluência em Eclipse BIRT.

Figura A67.35. Filtro def inido no diálogo "Expression Builder".

#1. A expressão que montaremos pode ser informada manualmente neste campo, mas as janelas abaixo auxiliam na sua montagem.

#2. Em "Category" estão as categorias de recursos que podem ser utilizados em expressões BIRT, desde Data Sets até funções e operadores. Em "Avaliable Column Bindings" são exibidos os objetos gerados para o

Introdução ao Eclipse BIRT

relatório quando vinculamos o Data Set ao Table. Estes objetos podem possuir formatações e programações adicionais às colunas disponíveis no Data Set.

#3. Em "Avaliable Data Sets" pode utilizar uma coluna do Data Set diretamente, que não seja através dos "Column Bindings". É importante notar a distinção dos dois: O Aggregation que criaremos, por exemplo, passará a existir no "Avaliable Column Bindings", mas não em "Avaliable Data Sets"! Acione duplo clique nesta opção e clique na única "Sub-Category" para selecionar a coluna "Versão", como na Figura A67.35.

#4. Em "Reports Parameters", podemos usar os valores informados pelo usuário (ou parâmetros constantes!) definidos para o relatório, nas fórmulas.

#5. As três últimas opções trazem duas categorias de funções e operadores que podem ser utilizados nas expressões. A quantidade de opções é impressionante - somente com o tempo será possível compreendê-las em toda a sua abrangência.

#6. Em "Sub-Category", um segundo nível de classificação aparece.

#7. Conforme a categoria e subcategoria selecionadas, uma lista diferente será exibida à direita. No caso da figura são exibidas as colunas do Data Set selecionado. Altere para "Operators -> Primeira Sub-Categoria" e acione duplo clique em "==" para incluir uma igualdade na expressão.

4. Faça um novo "Preview". Talvez você precise incluir novos registros para ter uma boa amostragem para teste.

Figura A67.36. Contador com expressão condicional funcionando.

5. Faça agora o contador para "alterados", conforme a Figura A67.37.

Figura A67.37. Aggregation para "Total de Alterados".

6. E também o contador para "excluídos", conforme a Figura A67.38.

Figura A67.38. Aggregation para "Total de Excluídos".

7. Arraste os Aggregations para suas posições definitivas e confira o resultado final com mais um clique em “Preview”.

- Aplicando estilos aos componentes de relatórios

No ponto em que estamos já temos um relatório que atende a nossa especificação do ponto de vista

estrutural e da informação exibida, mas que ainda não segue as diretrizes de estilo (aparência) estabelecidas pela arquitetura!

Em nossa hipótese, mesmo que nossa especificação não traga detalhes (o que é ótimo, pois fica sucinta),

o Desenvolvedor deve estar a par dos estilos padronizados pela empresa para relatórios. Na prá tica, estes estilos existirão customizados com base nos existentes no jCompany, através da camada Bridge.

Em nosso caso, assumiremos os estilos default do jCompany FS Framework que vêm no "jCompanyGeneral.rptlibrary".

Vamos então aplicar os estilos para melhorar a fonte, tamanho e alinhamentos das diversas seções do

relatório.

1. Vá para a área de "Layout" do relatório e selecione os três Aggregations. Acione clique direito e "Style -> Apply Style". Note que uma lista de estilos prefixados com "jCompanyDefaultTheme" aparecem. São estes os estilos padrões que temos que utilizar, preferencialmente.

2. Selecione o estilo "rodape1TotalPlc" (este era o estilo originalmente utilizado no Total que veio como referência, no relatório Modelo).

Figura A67.39. Aplicando estilos padrões do framework aos campos de formulários.

Introdução ao Eclipse BIRT

#1. Aggregations selecionados, para aplicar estilo em todos simultaneamente.

#2. Diálogo que permite a aplicação de estilos, exibindo estilo homologados do "jCompanyGeneral.rptlibrary".

#3. Estilo para totais "rodape1TotalPlc"*.

3. Utilizando a mesma técnica, faça a aplicação do estilo "tabela1ValorNumeroPlc" aos objetos "Código" e "Versão" (valores, não os rótulos!).

4. Faça a aplicação do estilo "tabela1ValorTextoPlc" aos objetos "Nome do Funcionário", "CPF" e "Usuário da Última Alteração".

5. Faça a aplicação do estilo "tabela1DataHoraPlc" ao objeto "Data da Última Alteração".

6. Agora realize um novo "Preview" e confira a melhoria. Repare que a fonte utilizada para caracteres agora é "Arial" e o tamanho é "Medium" (assumido como um tamanho mediano pelo BIRT).

Figura A67.40. Visão do relatórios com estilos nos campos.

#1. Os códigos (números) ficam agora alinhados à direita.

#2. Os campos textuais ficam alinhados à esquerda

#3. O campo data fica centralizado.

- Modificando formatações para ajustes finos

Mas e se desejarmos realizar refinamentos nos estilos? Será que somente estes estilos cobrem todas as

possibilidades de formatação possíveis?

Os estilos não irão cobrir todos os casos - são apenas referências iniciais para as situações mais comuns, mas que ainda preservam um grau de flexibilidade para criatividades finais (na mesma filosofia do

jCompany como um todo). Portanto, teremos que realizar ajustes de refinamentos, bem possivelmente. É importante, no entanto, fazê-lo somente após a exploração de tudo o que os estilos podem oferecer.

As possibilidades aqui são muito grandes. Vamos apenas realizar uma pequena variação de alinhamento do CPF, por exemplo. Iremos alterar o alinhamento de CPF para que fique centralizado porque, apesar de

termos utilizado este valor como "texto", ele representa um código de tamanho fixo que ficará mais bem

disposto desta forma.

1. Selecione o objeto "CPF do Funcionário" e consulte a aba "Properties -> General", em "Property Editor - Data". Selecione "Center". Note que há opções de alinhamento horizontal, que é normalmente mais utilizado, mas não há opções de alinhamento vertical...

* O uso de numerações é utilizado para manter espaço para outras variações padrões (2 , 3 , 4 etc .), previs tas para versões futuras do

jC ompany.

Figura A67.41. Opções de propriedades para o objeto "CPF do Funcionário".

Isto pode ser feito da seguinte forma: o alinhamento vertical vem selecionado por default como "Auto", e ele é uma propriedade da célula que contém o objeto e não do objeto em si. Você pode selecionar a célula que contém o "CPF do Funcionário" com o mouse (e um cuidado cirúrgico) ou, o que é mais prático, via o “Outline”.

2. Localize a visão de Outline e clique na aba "Cell" acima de "Data (CPF do Funcionário)". É o mesmo efeito do mouse. Note que agora novas opções para a "célula" aparecem. Selecione "Top" em "Vertical alignment".

Figura A67.42. Alinhamento vertical de célula para "Top".

Introdução ao Eclipse BIRT

Sumário

Neste capítulo, fizemos um primeiro relatório com base na tecnologia Eclipse BIRT, utilizando recursos dos plugins disponibilizados de forma integrada na IDE Eclipse. Conhecemos seus recursos para reúso de

bibliotecas (via arquivos do tipo ".rptlibrary") e também para uso de modelos (via arquivos do tipo ".rpttemplate").

Utilizamos um primeiro modelo "Tabular" do jCompany para criar nosso relatório, definindo um Data

Source e um Data Set para confecção WYSIWYG do relatório, utilizando dado reais do Banco de Dados de teste. Vinculamos estes dados com componentes visuais de apresentação para o corpo do relatório,

incluindo totalizadores com expressões e personalizamos uma página mestre, contendo topo e rodapé, para finalizar a estrutura geral do relatório.

Aprendemos, por fim, como aplicar estilos do framework para obtenção de aparência padronizada entre

relatórios, e também como refinar estes estilos de forma específica.

No próximo capítulo, veremos as opções de tempo de execução que o BIRT e o jCompany oferecem para

execução deste relatório, com flexibilidade e segurança.