Professional Documents
Culture Documents
Mdulo
Este um mdulo prtico, que traz tutoriais com passos detalhados para confeco de relatrios Web com Eclipse BIRT. Alm de dicas bsicas para a construo de pginas mestre (cabealhos e rodaps), reso de estilos, agrupamentos, totalizaes e quebras de pgina, este mdulo tambm prov dicas e exemplos arquiteturais para uma liberao adequada (segura e eficiente) de relatrios para usurios finais.
Captulo F19
19
Captulo
"Administrador" realizarem auditoria em operaes sobre o cadastro de funcionrios, conforme especificado na Figura A19.1.
nosso prximo Caso de Uso tem por objetivo prover um relatrio para usurios com papel
Por chamarmos de "relatrio", e no "consulta", estamos enfatizando a importncia de provermos um resultado para o usurio com formato excepcionalmente bem ajustado para impresso *, que permita o uso de recursos tais como quebras de pgina, totalizaes e grficos. Muito embora tenhamos desenvolvido uma soluo em HTML com razovel qualidade para impresso no mdulo B, para a Ficha do Funcionrio, ela no seria suficiente para atender a requisitos mais rigorosos de impresso. Alguns exemplos de problema surgiriam quando fosse exigido o posicionamento exato de campos quando impressos (como para impresso sobre formulrios primpressos), quebras de pgina bem feitas ou mesmo a impresso de um grande volume de pginas. Tudo isso porque os Navegadores atuais e a tecnologia HTML ainda so limitados, nesta rea.
No jargo de pocas passadas, "relatrios" emitiam informaes impressas diretamente em papel e "consultas" emitiam informaes em um terminal de vdeo. Na medida em que se tornou possvel "visualizar relatrios em terminais de vdeo" e/ou "enviar para a impressora quaisquer consultas", este critrio ficou mais difuso. Portanto, como conveno, iremos chamar de relatrio sadas produzidas em tecnologia Eclipse BIRT que possuam formatao (mesmo que alternativa) mais adequada para impresso, em padro PDF ou DOC.
Captulo F19
Por este motivo, quando especificamos um "relatrio" e no uma "consulta", estamos requerendo uma sada em formato PDF ou outro que possa ser impresso por um programa que no 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, soluo Open Source de base homologada para este fim *.
- O Eclipse BIRT
O Eclipse BIRT uma soluo de Business Intelligence de origem comercial cedida pela empresa Actuate Corporation comunidade Open Source h alguns poucos anos atrs. O Eclipse BIRT traz plugins no Eclipse que permitem a confeco visual (WYSIWYG) de relatrios incluindo quebras e totalizaes, cubos, consultas tipo "planilha" (Crosstab), sub-relatrios e muitos outros recursos, obtidos com recursos de "arrasta e solta" e conhecimentos de SQL apenas. Alm dos utilitrios de desenvolvimento, o Eclipse BIRT tambm prov uma arquitetura que facilita a criao de "frameworks de relatrio" que permite a criao de estilos e componentes reutilizveis entre relatrios pela empresa. Por fim, em tempo de execuo, alm de componentes de motor (engine) que permitem a execuo de relatrios com produo de informaes em mltiplos formatos (PDF, DOC, XLS, PPT, CSV, DOC, etc.), o Eclipse BIRT tambm traz uma aplicao que facilita significativamente a tarefa de disponibilizar relatrios para a WEB: o Eclipse BIRT Viewer. Muito embora seja uma soluo recentemente incorporada, o jCompany agrega valor ao Eclipse BIRT com: o Gerncia de Configurao: Instalao e pr-configurao tanto do ambiente de desenvolvimento quanto do de execuo do Eclipse BIRT no Tomcat, garantindo uso imediato sobre uma verso homologada. Framework geral: Framework de base simples, contendo estilos visuais (similares a estilos CSS) para serem imediatamente aplicados em componentes e sees tpicas de relatrios. jCompany BIRT Viewer: Especializaes ao BIRT Viewer, incluindo tradues bsicas para portugus e uma arquitetura que possibilita liberao ultra-simplificada e com solues de reforo na rea de segurana.
o o
No espao que possumos neste livro, cobriremos apenas uma pequena parte das inmeras possibilidades que traz o Eclipse BIRT. Sugerimos os livros de nossa referncia bibliogrfica "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.
2. 3.
Uma outra opo seria a dupla Jasper Reports e iReports, recomendadas at a verso 3.1 do jCompany e ainda mantidas em homologao, em paralelo ao Eclipse BIRT. Mas h, no mercado, uma clara tendncia ao uso do Eclipse BIRT devido sua melhor integrao com o Eclipse, documentao e acabamento diferenciado - especialmente devido sua origem comercial.
4.
Note que existem diversos modelos (templates) padres do BIRT e dois do jCompany disponveis. Basicamente, estes modelos trazem verses iniciadas de relatrios para facilitar a vida de novatos. Com a experincia, a tendncia 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 relatrio 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 vises disponibilizadas pelos plugins do Eclipse BIRT, para confeco de relatrios.
Captulo F19
#1. Paleta de componentes de relatrio para "arrastar e soltar". #2. A viso de "Outline" exibe a estrutura de componentes do relatrio e especialmente importante quando se trabalha com bibliotecas e para selees refinadas de componentes do relatrio, como veremos. #3. A rea de "Layout" do relatrio 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 configurao para componentes de relatrio, sensveis ao contexto! Clique em objetos na rea de "Layout" e perceba como estas propriedades se modificam. #5. Diversos painis agrupam propriedades para cada objeto com um grande nmero de opes de estilos bsicos (Fonte, Cor, Tamanho, Cor de Fundo, alinhamento etc.); formataes para datas, nmeros, dinheiro; expresses de avaliao dinmica; eventos para programao; etc. 6. Clique na aba "Preview", conforme a Figura A19.5.
#1. Note que a parte central oferece outras vises alm da principal de "Layout", a saber: o "Layout": Editor WYSIWYG do relatrio.
o "Master Page": Pgina "mestre", contendo rea para definies de topo e rodap, globais para o relatrio. o "Script": Seo para programao. O BIRT expe eventos que permitem programao via "script" utilizando sintaxe Javascript ou at Java, mediante configuraes especiais. Com isto, possvel se obter efeitos de alto dinamismo com possibilidades ilimitadas. o "XML Source": Todas as definies que se faz nos dilogos visuais ("Layout" e "Property Editor") terminam por gerar entradas em XML, que tambm pode ser editado ou consultado diretamente nesta aba. o "Preview": Permite a visualizao do relatrio, 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 referncia. 7. Clique em "Ok" para aceitar os valores de argumentos propostos. O modelo "Tabular" do jCompany pode ser ento melhor compreendido, como mostra a Figura A19.6.
#1. Um logotipo "da empresa" j vem configurado no canto esquerdo do topo, definido na aba "Master Page". #2. O ttulo do relatrio exibido com o estilo "masterCabecalhoTituloPlc". #3. O subttulo do relatrio exibido com o estilo "masterCabecalhoSubTituloPlc". #4. A data e hora de criao disponibilizada no canto da direita, com estilo "masterCabecalhoDataCriacaoPlc". #5. A barra de "argumentos" destinada a exibir os valores informados como parmetros pelo usurio. Ela includa 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 rtulos estticos desta rea de argumentos recebem o estilo "cabecalho1RotuloAlinhadoDireitaPlc". - As partes dinmicas de argumentos so exibidas em um estilo que produz um contorno de destaque, chamado "cabecalho1ValorComBordaPlc".
Esta janela aparece traduzida quando utilizamos o jCompany BIRT Viewer, em tempo de teste e produo, no Tomcat. Alm disso, ela automaticamente omitida quando enviamos os argumentos dos relatrios via URL, tcnica que usaremos mais adiante.
Captulo F19
#6. Os rtulos que aparecem no cabealho da tabela de dados em si utilizam uma variao 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 numricos utilizam o estilo "tabela1ValorNumeroPlc" que alinha os valores direita (como comum para nmeros). #8. Os valores textuais utilizam o estilo "tabela1ValorTextoPlc" com alinhamento esquerda. #9. Os valores monetrios utilizam o estilo "tabela1ValorDinheiroPlc" que formata o smbolo do real e casas decimais, alm do alinhamento tambm direita. #10. Os valores de data so formatados com "dd/MM/yyyy" e centralizados atravs do estilo "tabela1ValorDataPlc". #11. Os valores de data e hora so formatados com "dd/MM/yyyy HH:mm:ss" atravs do estilo "tabela1ValorDataHoraPlc". #12. Na parte de rodap da tabela de dados uma nova grade inserida com dois objetos: - Um rtulo indicando valor de total com estilo "rodape1RotuloPlc". - E um campo agregado (Aggregation) que conta o total de registros exibidos no relatrio, exibindo-os com o estilo "rodape1TotalPlc". #13. Por fim, tambm definido na pgina mestre est o contador de pginas de rodap contendo uma linha de diviso do corpo. O uso de estilos como os acima descritos deve ser incentivado para relatrios BIRT, assim como o uso de CSS para pginas HTML. Com os estilos obtm-se maior produtividade na reviso e melhor qualidade na padronizao. Naturalmente, tambm possvel especializar e/ou modificar algumas das propriedades dos estilos. 8. 9. Vamos conferir a arquitetura de framework para relatrios BIRT para localizar os estilos utilizados. Clique novamente na aba "Layout" e, na seo da esquerda, na aba de "Resource Explorer". Clique direito sobre "Shared Resources" procure a opo " Add Resource...". Preencha o dilogo conforme Figura A19.7
#1. Na viso da esquerda, alm da aba "Palette" tambm possvel 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 reso e maior padronizao. #3. Os estilos so agrupados, em bibliotecas, na pasta "Themes" (Temas). O tema "defaultTheme" contm estilos que sobrepem os valores default utilizados pelo BIRT. Deste modo, os objetos "itens de relatrio" disponveis na paleta j so introduzidos nos relatrios com alguns dos tipos "primitivos" (como "Table","Grid", etc.) j recebendo customizaes do jCompany. #4. O tema "jCompanyDefaultTheme" define novos estilos no existentes no BIRT, como os citados no passo 7. Assim, recapitulando at aqui, tivemos contato com os trs tipos de arquivos principais do BIRT: o rptdesign, o rpttemplate e o rptlibrary. Criamos um novo relatrio "funcionarioAuditoria.rptdesign" a partir de um modelo de relatrio do jCompany (existe com nome "jCompanyTabular.rpttemplate", pr-configurado nos diretrios dos plugins BIRT). Este novo relatrio, por sua vez, graas ao modelo, j vem com os estilos da biblioteca "jCompanyGeneral.rptlibrary" disponveis. Importante: Note que, para os maiores ganhos, deve-se realizar um trabalho preliminar de padronizao de topos, rodaps, estilos etc., para toda a empresa ou ao menos para um projeto. Novos arquivos dos tipos ".rpttemplate" e ".rptlibrary", contendo generalidades do negcio, podem ento ser disponibilizados em nvel da arquitetura para facilitar os relatrios do dia a dia, a partir da.
Captulo F19
Figura A19.10. Data Source BIRT com dados de conexes para Banco Local padro do jCompany.
#1. Classe do Driver JDBC especfico. 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 configurao para qualquer outro SGBD (ou mesmo se houver algum problema nesta configurao), basta utilizar o boto "Manage Drivers..." para configurar um novo Driver. #2. URL de acesso especfica 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. Usurio "APP" e senha "APP", conforme vm pr-configurados pelo jCompany.
#4. O campo "JNDI URL" um dos mais importantes desta configurao. Apesar de no ter efeito no desenvolvimento do relatrio em si (se no alterar este campo, ainda assim a conexo em desenvolvimento ir funcionar), se no informarmos um endereo de pool de conexes que seja vlido em tempo de produo, em produo o Apache Derby ir tentar criar uma nova conexo (com o usurio e senha "APP"/"APP") a cada execuo para cada usurio, o que degrada consideravelmente a performance! Felizmente, mais provvel que o relatrio no execute, pois o usurio e senha de desenvolvimento utilizados provavelmente no tero sucesso em conexo no ambiente de produo. Mas note que, se tiver sucesso, este problema pode ser mascarado e, apesar da baixa performance, o relatrio executar de forma sofrvel para os usurios o que pode ser ainda pior do que uma falha, que logo corrigida. 3. Troque o endereo de "###POOL###" para "rhtutorial", que referenciar corretamente o pool de conexes pr-configurado pelo jCompany (basta adicionar o prefixo "java:comp/env" ao Data Source declarado no "web.xml"). Clique em "Test Connection..." para ver se uma mensagem "Connection Sucessfull" aparece. Se no aparecer, certifique-se de que o banco de dados foi ativado no projeto "rhtutorial" e/ou reconfira os parmetros informados para conexo.
4.
Por este motivo, quando voc estiver mais fluente em Eclipse BIRT, o correto ser definir o Data Source em uma biblioteca de escopo do Projeto para que no fique redundado em vrios relatrios, mas seja reutilizado.
Note que o Eclipse BIRT no trabalha somente com bases relacionais (SGBD-R). Ele pode produzir relatrios tendo arquivos convencionais como Data Source, por exemplo. Neste livro iremos focar somente em acesso a bancos de dados relacionais.
Captulo F19
2.
No segundo passo, perceba que nossas tabelas e colunas esto disponveis em painel da esquerda para auxiliarem na confeco do SQL. Posicione na clusula "from", d um espao e d um duplo clique na tabela "Funcionario" para preencher a clusula.
3.
Posicione o cursor agora na parte "select" e abra uma linha para cada coluna que vamos selecionar. Procure a coluna na relao esquerda e, com duplo clique, selecione cada uma que precisaremos, conforme a Figura A19.13.
Importante: Lembre-se de dar espao aps a ltima coluna para separ-la do "from". Um erro comum esquecer de dar espaos entre as linhas, quando editando SQLs neste dilogo, quando no h vrgulas. 4. Crie agora uma clusula "where" sempre lembrando de dar espaos ao final das linhas. Preencha a clusula conforme a Figura A19.14.
#1. Intervalo de datas verificado utilizando uma interrogao "?" em lugar de argumentos do relatrio (que veremos a seguir). #2. Para que determinados argumentos tenham o efeito de QBE (Query By Example), ou seja, de no filtrarem quando no informados, podemos utilizar esta tcnica. No caso, se o usurio for informado iremos recuperar apenas modificaes realizadas pelo mesmo. Do contrrio, recuperaremos de todos ("? is null"). Importante: Note que se mantemos o dono ("owner") "APP", esperamos que ele tambm exista em produo - do contrrio devemos omiti-lo. 5. Clique em "Finish". O prximo dilogo se abrir permitindo que se informe nomes mais significativos para as colunas e tambm rtulos que sero utilizados como default. Informe os valores conforme a figura abaixo.
#1. Em "Name" fica o nome da coluna, incluindo todas que definimos na clusula "select" do SQL. #2. Em "Type" fica o tipo BIRT assumido para a representao da coluna no relatrio. #3. Em "Alias" pode-se definir um valor alternativo para cada coluna, apresentado em dilogos com o Desenvolvedor durante a confeco do relatrio - mas tambm em alguns utilitrios do BIRT que podem ser utilizados pelos usurios finais, como "para exportao de dados". Portanto, vale pena informar um nome significativo para cada coluna aqui. #4. Em "Display Name" pode-se definir um rtulo padro para a coluna, utilizado pelo BIRT como default, em algumas situaes. #5. Em "Display Name Key" pode-se utilizar I18n no relatrio colocando chaves para arquivos de mensagens (como fizemos em HTML) em lugar dos rtulos em portugus diretamente. No utilizaremos este recurso neste livro, mas o Desenvolvedor no encontrar problemas em entender como funciona na prpria documentao do Eclipse BIRT. #6. Ao acionar um "duplo clique" ou o boto "Edit..." um dilogo se abrir, permitindo informar os valores, para cada coluna. Importante: um erro saltar este dilogo sem preench-lo cuidadosamente para "queimar etapas". Ao informarmos bons valores nestas colunas j estamos avanando em nosso objetivo e ganharemos tempo mais adiante, com os valores e rtulos j bem definidos.
Captulo F19
6.
Clique agora, na lista da esquerda, em "Parameters" *. Note que aparecem quatro valores j preenchidos, ou seja, quatro "argumentos" ou "parmetros" do Conjunto de Dados (Data Set). O Eclipse BIRT j inclui um parmetro para cada interrogao "?" que definimos em nossa clusula SQL. Precisaremos neste dilogo, basicamente, vincular os parmetros do Data Set com os parmetros do relatrio (Report Parameters). Note que, na arquitetura flexvel do BIRT, um relatrio pode requisitar, digamos, dois parmetros do usurio (Report Parameters) que, por sua vez, podem ser vinculados a vrios parmetros de conjuntos de dados (Data Set Parameters), inclusive de vrios Data Sets diferentes. Este relatrio modelo j possui, por exemplo, trs parmetros definidos para o relatrio, como vimos no "Preview", requisitando "data de incio", "data de fim" e "usurio" - 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 A19.16.
#1. Dilogo de "Data Set Parameters", que nos permite definir melhor cada parmetro "?" includo na clusula SQL e vincul-lo a um Report Parameter. #2. Em "Name", substitua os nomes gerados por outros mais significativos. #3. Em "Data Type", o Eclipse BIRT j assume valores apropriados. #4. Em "Direction", deixe o padro "Input". #5. Em "Default Value", tambm no modifique. O valor ser assumido dos parmetros do relatrio. #6. Em "Linked to Report Parameter", selecione um parmetro correspondente na lista, utilizando o "usuarioUltAlteracao" duas vezes, para o caso especial (tipo QBE) que definimos.
Iremos saltar "Computed Columns", mas seu uso pode ser experimentado pelo Desenvolvedor - um dilogo que, como o nome sugere, permite que criemos "colunas" com valores derivados das demais atravs de frmulas diversas. Neste livro, propusemos uma primeira especificao de relatrio prxima do modelo que vem no jCompany para facilitar o primeiro caso.
#7. Acione "duplo clique" ou "Edit..." em cada linha para alterar. 7. Agora clique na opo "Preview Results". Se existirem atualizaes realizadas com o usurio "admin", no intervalo de datas que vem no modelo como default (ou o ltimo informado no "Preview"), aparecero resultados como na figura abaixo.
Figura A19.17. Valores retornados pela clusula SQL utilizando valores de argumentos.
8.
#1. Definio de parmetros para o relatrio como um todo. So os parmetros aqui definidos que sero requisitados aos usurios. #2. Podem-se agrupar parmetros para que apaream em uma caixa segmentada no dilogo com o usurio e/ou para vincul-los (como no caso de listas encadeadas de valores. Ex.: Unidades da Federao -> Municpios -> 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 usurio responsvel pelas alteraes. #4. Nome do argumento. #5. Em "Prompt Text:" informe o texto que se deseja exibir para usurios no dilogo que requisita os parmetros para o usurio. #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 balo de ajuda no campo de parmetro.
Captulo F19
#9. Em "Display As -> Format As" possvel definir um formato para exibio dos parmetros. No caso de datas, o formato sugerido, por hora, dd/MM/yyyy ou "Medium Date". #10. Existem outras opes que podem ser informadas para cada argumento. A principal "Is Required" para obrigatrio e "Hidden"/"Do not echo input" para no requisitar ao usurio (assumindo um valor default como constante, por exemplo). #11. Em "Default Value" pode-se informar um valor default que ser exibido para o usurio. Vimos estes valores em ao quando clicamos em "Preview" e a janela de argumento se abriu com valores j preenchidos. 2. Acione um duplo clique agora no parmetro de usurio. Perceba que neste caso o parmetro vem como opcional. O valor default "admin" (mas seria pouco provvel deixar um valor default neste campo, em um caso real).
3.
Se tornarmos a conferir a janela padro de coleta de parmetros de relatrio do Eclipse BIRT (tambm chamamos de janela de argumento) compreenderemos um pouco melhor seu funcionamento. Confira com a Figura A19.20.
#1. Para chamar novamente o dilogo, clique na aba "Preview" e no boto "Show Report Parameters". #2. O ttulo da janela pode aparecer em ingls, mas em produo vir traduzido. #3. Um texto de explicao de obrigatoriedade tambm aparece traduzido em tempo de execuo. #4. Os grupos de argumento so apresentados com este destaque. #5. Valores obrigatrios aparecem com a marca de asterisco.
#6. Os valores default esto na formatao definida. #7. Campos opcionais aparecem com uma opo adicional de valor nulo.
#1. A Treeview do outline exibe a estrutura do arquivo XML que contm toda a definio do relatrio (inclusive Data Sources, Data Sets e Libraries), facilitando a seleo de determinados elementos. #2. O segmento corpo contm a parte de apresentao do relatrio em si, excetuando-se a "Master Page", que prov cabealhos e rodaps globais. #3. A viso "Property Editor" dinmica, como j vimos, e exibe informaes complementares (propriedades) para o elemento selecionado, seja no Outline, seja na viso 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 viso principal de "Layout WYSIWYG. Clique nos campos de amostra na linha "Detail Row" e remova-os. Note que possvel marcar vrios objetos simultaneamente com as tcnicas de edio convencionais de "Control+Clique". Em seguida, selecione a pasta "Data Explorer", expanda a relao de "Data-Sets" e o nosso Data Set "FuncionarioAuditoria". Clique na coluna "Cd." e a arraste para a coluna do Design, conforme a Figura A19.22.
4.
Captulo F19
Figura A19.22. Arrasta e solta do Data Set para a tabela na viso de Design WYSIWYG.
#1. Objetos originais do modelo removidos. #2. Objeto "Cd." criado a partir da coluna do Data Set. Note que somente possvel arrastar porque o objeto Table est vinculado ao Data Set. 5. Arraste as demais colunas que possuem uma correspondncia para a coluna respectiva da tabela do Design. Troque o rtulo de Salrio para CPF e deixe em branco as colunas sem correspondncia, conferindo com a Figura A19.23.
6.
#1. Se no vierem dados, altere os valores dos parmetros conforme sua amostragem (utilize o plugin Quantum DB se for preciso para ver datas das ltimas alteraes e usurios). #2. Agora vemos dados reais recuperados do banco de dados de teste local, configurado no Data Source. #3. Note que os alinhamentos de nmeros deveriam estar direita e de data, centralizado, segundo recomenda o modelo. Alm disso, a fonte no a mesma. Em suma, os novos objetos ainda no esto seguindo a formatao padro.
#4. O objeto "Aggregation" pr-definido agora no renderizado, pois exclumos objetos por ele utilizados. O Eclipse BIRT gera ento uma mensagem de erro que aparece de vermelho logo abaixo do relatrio. 7. Vamos melhorar a formatao do nosso relatrio para nos adequarmos especificao. Comece por excluir a coluna que contm "Nascido em", retornando para a viso "Layout" e seguindo as instrues abaixo.
#1. Clique nas caixas cinza superiores ou laterais para selecionar uma coluna ou linhas inteiras do objeto Table. #2. Clique direito para opes de edio bsicas como excluso ou alterao de estilo. Utilize "Delete" para excluir a coluna. 8. Agora vamos inserir uma nova linha na seo de cabealho para conter os totais de includos, alterados e excludos, conforme a especificao da Figura A19.1. Note que temos duas linhas de cabealho e que, para o efeito especificado, devemos incluir uma nova entre as existentes.
#1. Linhas de cabealho. 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. Tambm possvel criar quantas linhas de detalhes forem necessrias - e todas as criadas se repetiro conforme o nmero de linhas do conjunto de dados. #3. Ao final, h uma linha de rodap preenchida por default com uma totalizao. 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 opo "Merge Cells". Acione-a para que possamos mesclar estas clulas em uma nica.
Captulo F19
10. Agora clique na linha que possui o rtulo "Total de Registros". Repare que, ao faz-lo, uma aba com indicador "Grid" aparece dinamicamente, revelando o continer do rtulo. Esta aba permite que se selecione o continer em si (e no algum dos objetos contidos) - seja para edio de suas propriedades, seja para redimension-lo ou arrast-lo, como o nosso caso. Com este recurso, o Eclipse BIRT evita aquelas chatas alteraes 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 Agregao) para a nossa linha recm criada.
Por que ns no inclumos os totais nas prprias colunas da tabela principal, em vez de criar um Grid? Incluir um Grid permite que possamos definir um subleiaute independente das sees principais da tabela para cabealhos, rodaps ou mesmo outras linhas especiais de detalhe. Na maioria das vezes esta prtica se mostra mais apropriada. Quando, porm, precisamos apenas de um total perfeitamente alinhado com a coluna que est totalizando, o uso das prprias colunas da tabela pode ser mais prtico. 11. Crie mais quatro colunas no Grid original. Precisaremos para os rtulos e totalizadores que constam na especificao. Para tanto, clique direito na coluna e selecione "Insert -> Column to the Right".
12. Crie os rtulos de totais para includos, alterados e excludos, deixando colunas vazias para os valores de totalizao que faremos mais adiante. Para tanto, copie o rtulo existente e cole nas novas colunas, em seguida editando o texto dos rtulos em si. 13. Exclua, tambm, a primeira coluna da tabela principal, antes de cdigo (se no lembrou de fazer juntamente com "Data de Nascimento"). Confira o resultado com a Figura A19.30.
#1. Rtulos para totais, com espaos para as agregaes em si. #2. Primeira coluna removida para finalizao da estrutura do relatrio, de acordo com a especificao.
#1. A aba "Master Page" permite edio WYSIWYG mas tambm de propriedades na viso "Property Editor - Master Page -> Properties". #2. Os contedos do cabealho e do rodap podem ser modificados.
Captulo F19
#3. Vrias opes de configurao esto disponveis, que dizem respeito ao relatrio como um todo ou ao conjunto de pginas que usam uma Master Page especfica. #4. Diversas propriedades permitem a formatao das pginas do relatrio como um todo, incluindo margens, bordas, leiaute (carta, legal, A4 etc.), orientao, etc. #5. Vamos agora alterar o cabealho, para conter o logotipo de nossa empresa e o ttulo apropriado. Clique no texto do ttulo principal e digite "Relatrio de Auditoria" e no subttulo "Relatrio de Auditoria de Manuteno de Funcionrios"*. 2. Agora clique no logotipo e com clique direito acione "Edit". Siga as instrues da Figura A19.32.
#1. Clique direito na imagem e acione "Edit" para modific-la. #2. Existem vrias opes no Eclipse BIRT para se referenciar imagens: - URI: Aceita endereo de imagens relativo (imagens existentes no arquivo da aplicao) ou absoluto (existentes fora da aplicao). o prefervel, porm a imagem no ser visualizada no caso de endereos relativos em modo de desenvolvimento (apenas por isso no utilizamos inicialmente). - Image File in shared resources: Aceita endereo de imagens em sistema convencional de arquivos (como um driver padro compartilhado na rede interna). Em geral no recomendvel. - Embedded Image: Embute a imagem (em formato hexadecimal) no XML de design do relatrio. Traz a vantagem de encapsular e tornar a imagem "prpria para o relatrio". Por isso no o ideal para um logotipo (se ele muda, deve-se mudar em todos os relatrios! Vamos melhorar isso no prximo relatrio). - Dynamic Image: Permite acesso a imagens armazenadas dentro de colunas de SGBD-R (Blobs). Pode ser necessria em determinadas situaes.
#3. Vamos adicionar uma imagem embutida alm da que existe do jCompany *. Ela foi disponibilizada pelo Web-Designer especificamente para fins de impresso 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". 3. Execute um novo "Preview" e confira o resultado com a especificao. Estamos quase l - faltam os totais e um embelezamento final!
Assim, aps a retrospectiva acima, podemos definir os conjuntos desejados com os seguintes critrios: o o o
Vamos, agora, implementar estas totalizaes no Eclipse BIRT, segundo os critrios acima. 1. 2. Selecione a viso de "Palette" e arraste o componente "Aggregation" para a linha de cabealho, na coluna a frente do rtulo "Total Includos". Um dilogo ir se abrir chamado "Aggregation Builder". Preencha-o como na Figura A19.34.
Note que esta imagem aparece no projeto, mas no pode ser removida, pois se encontra no framework "jCompanyGeneral.rptlibrary".
Captulo F19
#1. A paleta rica em componentes. Veremos uma boa parte deles em nossos tutoriais. #2. Usaremos o componente "Aggregation" para realizar computaes em nvel do relatrio. Note que seria tambm possvel 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 funes disponveis para conhecer as demais possibilidades oferecidas por este componente. #5. Em Data Field, selecione o campo "Cdigo" (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 operaes sobre o continer Table. Mas como queremos contar includos, alterados e excludos em separado, teremos que adicionar um "filtro". Acione o boto "fx" em "Filter Condition". O dilogo genrico "Expression Builder" aparecer, como mostra a Figura A19.35. Este dilogo utilizado em diversos contextos onde uma expresso pode ser inserida e um recurso chave a ser dominado para obteno de fluncia em Eclipse BIRT.
#1. A expresso que montaremos pode ser informada manualmente neste campo, mas as janelas abaixo auxiliam na sua montagem.
#2. Em "Category" esto as categorias de recursos que podem ser utilizados em expresses BIRT, desde Data Sets at funes e operadores. Em "Avaliable Column Bindings" so exibidos os objetos gerados para o relatrio quando vinculamos o Data Set ao Table. Estes objetos podem possuir formataes e programaes adicionais s colunas disponveis no Data Set. #3. Em "Avaliable Data Sets" pode utilizar uma coluna do Data Set diretamente, que no seja atravs dos "Column Bindings". importante notar a distino dos dois: O Aggregation que criaremos, por exemplo, passar a existir no "Avaliable Column Bindings", mas no em "Avaliable Data Sets"! Acione duplo clique nesta opo e clique na nica "Sub-Category" para selecionar a coluna "Verso", como na Figura A19.35. #4. Em "Reports Parameters", podemos usar os valores informados pelo usurio (ou parmetros constantes!) definidos para o relatrio, nas frmulas. #5. As trs ltimas opes trazem duas categorias de funes e operadores que podem ser utilizados nas expresses. A quantidade de opes impressionante - somente com o tempo ser possvel compreend-las em toda a sua abrangncia. #6. Em "Sub-Category", um segundo nvel de classificao aparece. #7. Conforme a categoria e subcategoria selecionadas, uma lista diferente ser exibida direita. No caso da figura so exibidas as colunas do Data Set selecionado. Altere para "Operators -> Primeira Sub-Categoria" e acione duplo clique em "==" para incluir uma igualdade na expresso. 4. Faa um novo "Preview". Talvez voc precise incluir novos registros para ter uma boa amostragem para teste.
5.
6.
Captulo F19
7.
Arraste os Aggregations para suas posies definitivas e confira o resultado final com mais um clique em Preview.
2.
#1. Aggregations selecionados, para aplicar estilo em todos simultaneamente. #2. Dilogo que permite a aplicao de estilos, exibindo estilo homologados do "jCompanyGeneral.rptlibrary".
#3. Estilo para totais "rodape1TotalPlc"*. 3. 4. 5. 6. Utilizando a mesma tcnica, faa a aplicao do estilo "tabela1ValorNumeroPlc" aos objetos "Cdigo" e "Verso" (valores, no os rtulos!). Faa a aplicao do estilo "tabela1ValorTextoPlc" aos objetos "Nome do Funcionrio", "CPF" e "Usurio da ltima Alterao". Faa a aplicao do estilo "tabela1DataHoraPlc" ao objeto "Data da ltima Alterao". 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).
#1. Os cdigos (nmeros) ficam agora alinhados direita. #2. Os campos textuais ficam alinhados esquerda #3. O campo data fica centralizado.
O uso de numeraes utilizado para manter espao para outras variaes padres (2, 3, 4 etc.), previstas para verses futuras do jCompany.
Captulo F19
Esta uma confuso comum: o alinhamento uma propriedade da clula que contm o objeto e no do objeto em si. Voc pode selecionar a clula que contm o "CPF do Funcionrio" com o mouse (e um cuidado cirrgico) ou, o que mais prtico, via o Outline. 2. Localize a viso de Outline e clique na aba "Cell" acima de "Data (CPF do Funcionrio)". o mesmo efeito do mouse. Note que agora novas opes para a "clula" aparecem. Selecione "Center".
Sumrio
Neste captulo, fizemos um primeiro relatrio com base na tecnologia Eclipse BIRT, utilizando recursos dos plugins disponibilizados de forma integrada na IDE Eclipse. Conhecemos seus recursos para reso de bibliotecas (via arquivos do tipo ".rptlibrary") e tambm para uso de modelos (via arquivos do tipo ".rpttemplate"). Utilizamos um primeiro modelo "Tabular" do jCompany para criar nosso relatrio, definindo um Data Source e um Data Set para confeco WYSIWYG do relatrio, utilizando dado reais do Banco de Dados de teste. Vinculamos estes dados com componentes visuais de apresentao para o corpo do relatrio, incluindo totalizadores com expresses e personalizamos uma pgina mestre, contendo topo e rodap, para finalizar a estrutura geral do relatrio. Aprendemos, por fim, como aplicar estilos do framework para obteno de aparncia padronizada entre relatrios, e tambm como refinar estes estilos de forma especfica. No prximo captulo, veremos as opes de tempo de execuo que o BIRT e o jCompany oferecem para execuo deste relatrio, com flexibilidade e segurana.