Escolar Documentos
Profissional Documentos
Cultura Documentos
Copyright 2009 TOTVS S.A. Todos os direitos reservados. Nenhuma parte deste documento pode ser copiada, reproduzida, traduzida ou transmitida por qualquer meio eletrnico ou mecnico, na sua totalidade ou em parte, sem a prvia autorizao escrita da TOTVS S.A., que reserva-se o direito de efetuar alteraes sem aviso prvio. A TOTVS S.A no assume nenhuma responsabilidade pelas conseqncias de quaisquer erros ou inexatides que possam aparecer neste documento. TOTVS S.A. Av. Santos Dumont, 831, Joinville, SC, Brasil, CEP 89.222-900
ndice
Objetivo............................................................................................... 4 Ambiente de Desenvolvimento ......................................................... 4 Segurana Ambiente SaaS ................................................................ 5 Desenvolvendo um relatrio de Colaboradores .............................. 5
Criando um novo projeto................................................................................ 5 Criando o Relatrio ........................................................................................ 6 Configurando o acesso aos dados ................................................................ 8 Incluindo parmetros no Relatrio ............................................................... 11 TAGs ........................................................................................................... 13 Populando o Data Set .................................................................................. 14 Formatando a visualizao do Relatrio ..................................................... 19 Renderizando dados do Data Set ................................................................ 24
Visualizador de Relatrios............................................................... 28
Opes do visualizador................................................................................ 29
Objetivo
O objetivo deste documento descrever o desenvolvimento, publicao e visualizao de relatrios no TOTVS | ECM, para facilitar a compreenso ser detalhado um exemplo de relatrio de colaboradores.
Ambiente de Desenvolvimento
Para o desenvolvimento de relatrios necessrio possuir o Java JDK/JRE superior a 1.6. Endereo para download: http://java.sun.com/javase/downloads/index.jsp. O TOTVS | ECM utiliza o BIRT como motor de execuo de relatrios, por esse motivo para o desenvolvimento de relatrios deve-se utilizar o padro e a metodologia do BIRT. Recomenda-se o uso BIRT Report Designer para o desenvolvimento de relatrios para o TOTVS | ECM. Atravs do endereo http://download.eclipse.org/birt/downloads/ possvel baixar a sua verso atual. recomendado utilizar a verso All-in-One do, pois j conta com o Eclipse e o plugin do BIRT instalado por padro O BIRT Report Designer conta com vrias funcionalidades que auxiliam no desenvolvimento de relatrios. Entre elas destacam-se: ajuste de layout, configurao de acesso a dados e formatao do relatrio.
Em caso de execuo do TOTVS | ECM em ambiente SaaS, no recomendado o uso de relatrios, pois possvel criar relatrios que retornem informaes de outras empresas via consulta JPQL ou Dataset. Para garantir a no execuo, necessrio definir o valor true para a varivel SaaS localizada em: %JBOSS_HOME%\server\default\deploy\wdk-service.xml.
Ao abrir a janela New Project, selecione a opo Business Intelligence and Reporting Tools -> Report Project, clique no boto Next e defina o nome colleague_report como nome para o projeto do relatrio, selecione a localizao do projeto e clique em Finish conforme a figura 2.
Criando o Relatrio
Ao abrir a janela New Report defina report.rptdesign como nome do relatrio, clique no boto Next e selecione a opo Blank Report para template do relatrio, em seguida clique no boto Finish conforme a figura 4.
Ao abrir a janela New Data Source, selecione a opo Scripted Data Source e define o nome dsColleague como Data Source Name em seguida clique no botao Finish, conforme a figura 6.
Na aba Data Explorer clique com o boto direito do mouse sobre o item Data Sets em seguida clique na opo New Data Set conforme figura 7. Data Set uma tabela temporria do BIRT no qual os dados so armazenados do Data Source e renderizados no relatrio.
Ao abrir a janela New Data Set define colleagueDataSet como Data Set Name, clique no boto Next em Output Columns clique no boto Add e adicione todas as os registros do DataSet:
10
11
Matrcula
Name: Matricula; promptText: Matrcula do Colaborador ou "*" para mostrar todos; Data type: String; Display type: Text Box; Is Requered: true.
12
Mostrar Usurios
Name: paramEnable; Prompt text: Mostrar usurios; Data type: String; Display type: List Box; Is Requered: true.
Selection Values Value * true false Display Text Todos Ativos Inativos
Ordenar Por
Name: paramSort; Prompt text: Order por; Data type String; Display type: List Box;
Selection Values Value c.colleaguePK.colleagueId c.colleagueName c.login Display Text Matrcula Nome Login
TAGs
O TOTVS | ECM disponibiliza TAGs de substituio que auxiliam no desenvolvimento e na segurana da gerao das informaes do relatrio, so elas:
13
As TAGs so teis em casos de informaes que s devem ser geradas a respeito da empresa em que o usurio est autenticado, ou em relatrios que mostrem somente informaes a respeito do usurio autenticado no TOTVS | ECM.
initialize: primeiro evento disparado pelo BIRT, recomendado utilizar esse evento para importao de bibliotecas e inicializao de variveis; beforeOpen: evento disparado antes do BIRT abrir a conexo com a fonte de dados (Data Source); fetch: evento disparado pelo BIRT depois da busca de cada registro no Data Set e antes de aplicar os filtros e campos calculados.
Atravs dos eventos possvel desenvolver a lgica de consulta e gerao de dados atravs da linguagem de programao JavaScript , alm disso possvel fazer uso de vrios recursos e bibliotecas da linguagem Java. Selecione a aba Script na pagina do relatrio e em seguida selecione o evento initialize, em inclua o seguinte cdigo conforme figura 11:
14
importPackage(Packages.java.io); importPackage(Packages.com.datasul.technology.webdesk.data set.service); importPackage(Packages.java.util); var query = null; var resultSet = null; var rowMap = null; var count = 0; var sqlJpa = "";
O cdigo a cima importa as bibliotecas Java e a biblioteca disponibilizada pelo TOTVS | ECM para consulta aos dados do produto via JPA, alm de realizar a inicializao das variveis utilizadas pelo relatrio.
importPackage: comando responsvel pela importao de bibliotecas Java; Package.java.util: biblioteca responsvel pelas Classes utils do Java;
15
Selecione a aba Data Explorer, expanda o item Data Sets e clique no colleagueDataSet em seguida clique na aba Script ento selecione o evento beforeOpen conforme a figura 12.
try { query = new QueryDelegate(); sqlJpa = "SELECT c from Colleague c"; sqlJpa = sqlJpa + " WHERE c.colleaguePK.companyId = ${WKCompany}"; if(params["Matricula"].value != null) { if (params["Matricula"].value != "*") { sqlJpa = sqlJpa + " AND c.colleaguePK.colleagueId = '" + params["Matricula"].value + "'";
16
} else { if(params["paramEnable"].value != null) { if (params["paramEnable"].value != "*") { c.active = " + sqlJpa = sqlJpa + " AND params["paramEnable"].value; } }
} } sqlJpa = sqlJpa + " ORDER BY " + params["paramSort"].value; resultSet = query.getResultQuery(sqlJpa); } catch (e) { } finally { }
O cdigo acima monta a consulta do relatrio atravs da consulta JPA e inclui os filtros da solicitao de acordo com os parmetros definidos pelo usurio.
query: objeto da biblioteca TOTVS | ECM sendo responsvel pela consulta dos dados no produto por meio de instruo JPA; sqlJpa: varivel responsvel pela gerao do script de consulta JPA, criado a partir dos parmetros definidos pelo usurio; ${WKCompany}: TAG disponibilizada pelo TOTVS | ECM, retorna o cdigo da empresa que o usurio est autenticado; params["Matricula"]: parmetro de relatrio, retorna o cdigo da matricula definido pelo usurio;
17
Para incluir o resultado da consulta no Data Set e formatar os dados do relatrio, selecione o evento fetch na rea de Script, conforme figura 13.
if (resultSet != null) { if(count < resultSet.size()){ var rowMap = resultSet.get(count); row["colleagueId"] = rowMap.get("colleagueId"); row["login"] = rowMap.get("login"); row["colleagueName"] = rowMap.get("colleagueName"); row["mail"] = rowMap.get("mail"); var active = rowMap.get("active"); if (active == "true") {
18
O cdigo acima verifica se houve resultado na consulta JPA, caso houver ele inclu os dados no Data Set e formata os campos usurio ativo e administrador. Detalhes sobre o cdigo:
resultSet: objeto que contm o retorno da consulta JPA; rowMap: varivel do tipo HashMap que possibilita a busca dos campos do retorno da consulta; row: varivel do BIRT que armazena os registros do Data Set;
19
Na aba Pallets possvel incluir vrios componentes de visualizao e renderizao de dados entre eles destacam-se:
Label: Texto curto e esttico; Text: Texto longo possvel format-lo com TAGs HTML; Dynamic Text: Texto dinmico provido do Data Set; Image: Incluso de imagens; Grid: Formatador de dados em Grid; Table: Tabela de dados; Chart: Grficos de pizza, linha, tubo, etc.
possvel incluir imagens da internet, incluir imagens de arquivo ou ainda embutir a imagem no XML do relatrio. Neste exemplo ser usada uma imagem em anexo para posteriormente mostrar como publicar relatrios com anexo. Arraste um componente Image no relatrio, ao abrir a janela Edit Image Item, selecione a opo Image file in shared resources, selecione o arquivo da imagem na opo Enter resource file e em seguida clique no boto Insert conforme figura 15.
20
Arraste um componente Text no relatrio, ao abrir a janela Edit Text Item selecione a opo HTML e na rea de texto inclua a seguinte informao formatada em HTML:
<H1><B>TOTVS S/A</B></H1> Av. Santos Dumont, 831 Bom Retiro <br> CEP 89.222-900 Joinville SC Brasil <br>Telefone: +55 (47) 2101-7000 <br> Fax: +55 (47) 2101-7070 </br>
21
Arraste um componente Label no relatrio, clique duas vezes sobre o componente includo e digite Relatrio de Colaboradore na aba Properties Editor -> Properties clique em General e defina a formatao da label, conforme figura 17.
22
Arraste um componente Table, ao abrir a janela Insert Table defina 6 colunas e 1 detalhe e clique no boto OK conforme figura 18.
Na tabela adicionada ao relatrio inclua um componente Label para cada coluna da linha Header Row defina os seguintes valores:
Formate as labels inclundas definindo cor da fonte e cor de fundo conforme figura 19.
23
24
Publicando Relatrios
Publicao
Aps a concluso do desenvolvimento do relatrio, necessria a autenticao no TOTVS | ECM com um usurio vlido para realizar a sua publicao. Selecione a opo Navegao de Documentos, escolha a pasta de publicao, em seguida selecione a opo Novo Relatrio, conforme a figura 21.
25
A publicao de relatrios semelhante incluso de documentos no GED do TOTVS | ECM, possui as mesmas propriedades, inclusive: aprovao, segurana e propriedades herdadas. Ao abrir a janela Editando Relatrios defina as propriedades do relatrio no GED, em seguida na aba Arquivos de Publicao clique no boto Upload conforme figura 22.
Anexos
O BIRT Report Designer gera um arquivo em formato XML com a extenso rptdesign, necessrio public-lo no TOTVS | ECM e defini-lo como Principal para que o relatrio seja executado. Os demais arquivos utilizados devem ser publicados e definidos como Anexo.
26
Na janela Upload de Arquivo clique no boto Upload e em seguida no boto Fechar. Defina o arquivo report.rptdesign como Principal e o arquivo de imagem utilizado no relatrio como Anexo. Para concluir a operao clique no boto Confirmar conforme figura 24.
27
Visualizador de Relatrios
Aps concluir a publicao, para visualiz-lo, clique sobre ele no GED do TOTVS | ECM. Uma nova janela dever abrir, para iniciar a execuo do relatrio de colaboradores desenvolvido anteriormente necessria a incluso de parmetros, defina os seus valores e em seguida clique no boto OK conforme a figura 25.
O relatrio dever mostrar todos os colaboradores cadastrados no TOTVS | ECM para a empresa em que o usurio est autenticado, conforme figura 26.
28
Opes do visualizador
A ferramenta de visualizao de relatrio do TOTVS | ECM possui vrias funcionalidades: Verificar Indice: Caso o relatrio desenvolvido possua ndice possvel list-lo; Executar relatrio: Permite que o relatrio seja executado novamente; Exportar dados: Exporta os dados gerados do relatrio em arquivo, permitindo selecionar as colunas desejadas e o separador de dados; Exportar relatrio: Converte os dados do relatrio em diferentes formatos de arquivos: Microsoft Excel, PostScript, PDF, Microsoft Word e Microsoft Power Point, permite tambm a seleo de pginas que sero exportadas; Imprimir relatrio: Imprime relatrio selecionando as impressoras instaladas no computador do usurio autenticado e permite imprimir em formato PDF ou HTML; Imprimir relatrio no servidor: Imprime relatrio a partir das impressoras instaladas no servidor do TOTVS | ECM; Navegao de pginas: permite a navegao entre as pginas do relatrio.
29
Tabela de entidades
Cdigo dataset AccessLog ActivityDim advancedProcessProperties businessPeriod colleague colleagueGroup destinationArea document documentSecurityConfig FactActivityCost FactFlowVolume FactProcesCost FactProcesVolume FlowDim globalCalendar group knowledge processAttachment processDefinition processDefinitionVersion processHistory processState processTask ProcesVersionDim TimeDim topic UserDim workflowColleagueRole workflowProcess workflowRole Entidade JPA AccessLog ActivityDim AdvancedProcessProperties BusinessPeriod Colleague ColleagueGroup DestinationArea Document DocumentSecurityConfig FactActivityCost FactFlowVolume FactProcesCost FactProcesVolume FlowDim GlobalCalendar Group Knowledge ProcessAttachment ProcessDefinition ProcessDefinitionVersion ProcessHistory ProcessState ProcessTask ProcesVersionDim TimeDim Topic UserDim WorkflowColleagueRole WorkflowProcess WorkflowRole Tabela banco de dados HISTOR_ACES ACTIVITY_DIM_CAP PROPRIED_AVANCAD_PROCES PERIOD_EXPED COLABORADOR GRUPO_COLABORADOR AREA_DEST DOCUMENTO CONFIGUR_SEGUR_DOCTO FACT_ACTIVITY_COST_CAP FACT_FLOW_VOLUME_CAP FACT_PROCES_COST_CAP FACT_PROCES_VOLUME_CAP FLOW_DIM_CAP CALEND_GLOBAL GRUPO CONHECIMENTO ANEXO_PROCES DEF_PROCES VERS_DEF_PROCES HISTOR_PROCES ESTADO_PROCES TAR_PROCES PROCES_VERSION_DIM_CAP TIME_DIM_CAP ASSUNTO USER_DIM_CAP PAPEL_WORKFLOW_COLABORADOR PROCES_WORKFLOW PAPEL_WORKFLOW
30
Exemplo de utilizao
importPackage(Packages.com.datasul.technology.webdesk.data set.service); importPackage(Packages.java.util); var qd = null; var rs = null; var rowMap = null; var sqlJpa = ""; qd = new QueryDelegate(); sqlJpa = "SELECT count(d.documentPK.documentId), d.publisherId from Document d WHERE d.documentPK.companyId = ${WKCompany} GROUP BY d.publisherId"; rs = qd.getResultQuery(sqlJpa); var rowMap = rs.get(0); //Busca o valor do Count rowMap.get("d.publisherId"); //Busca o Codigo do documento
31
// Monta as constraints para consulta var factory = DatasetFactory.getInstance(${WKCompany}); //Filtra Clientes de 1 a 5 var c1 = factory.createConstraint("cod_cli", "1", "5", ConstraintType.MUST);
32
O exemplo acima invoca o mtodo getDataset passando alguns argumentos extras como parmetros:
Nome do Dataset: Nome do servio de dados do fichrio; Campos: Retorna apenas os campos recebidos no array informado. Caso null, retorna todos os campos. Constraints: Vetor com as condies de busca do Dataset. Em cada condio de busca (constraint) deve-se informar o nome do campo do fichrio que ser filtrado, a faixa de valores inicial e final, e o tipo de Constraint. Os tipos podem ser: o o
MUST: Indica que todos os registros do Dataset devem satisfazer a esta condio. SHOULD: Indica que os registros do Dataset podem ou no atender condio. Este tipo mais comum quando se necessita que um mesmo campo tenha valores A ou B (onde cada um ser uma constraint SHOULD). MUST_NOT: indica que nenhum dos registros pode satisfazer a condio. Ordenao: Vetor com a lista de campos que ser utilizada para ordenao dos registros no Dataset.
o o
O fonte do exemplo citado acima se encontra em: Documentos de Customizao\Arquivos Adicionais\Template de Relatorio\ Customer CardIndex.
33
34
35