Você está na página 1de 42

TOTVS | ECM - Relatrios

Guia de Desenvolvimento de
Relatrios

TOTVS | ECM - Relatrios

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

TOTVS | ECM - Relatrios

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 ........................................................................................ 7
Configurando o acesso aos dados ................................................................ 8
Incluindo parmetros no Relatrio ............................................................... 12
TAGs ........................................................................................................... 14
Populando o Data Set .................................................................................. 15
Obtendo dados via conexo JDBC .............................................................. 20
Formatando a visualizao do Relatrio ..................................................... 26
Renderizando dados do Data Set ................................................................ 31

Publicando Relatrios ..................................................................... 32


Publicao ................................................................................................... 32
Anexos ......................................................................................................... 33

Visualizador de Relatrios............................................................... 35
Opes do visualizador................................................................................ 36

JPA - Funes de Agregao .......................................................... 37


Funes de Agregao ................................................................................ 37
Tabela de entidades .................................................................................... 37
Exemplo de utilizao .................................................................................. 38

Acessando dados de Fichrios ....................................................... 39


Importando bibliotecas ................................................................................. 39
Retornando dados do fichrio ...................................................................... 39
Busca de dados de Fichrio com filtro por data .......................................... 40

Third Party Trademarks ................................................................... 42

TOTVS | ECM - Relatrios

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.

TOTVS | ECM - Relatrios

Segurana Ambiente SaaS

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.

Ex: <jndi:binding name="webdesk/SaaS"><jndi:value>true</jndi:value></jndi:binding>

Desenvolvendo um relatrio de
Colaboradores
Atravs do BIRT Report Designer possvel criar vrios relatrios
para o TOTVS | ECM, acessar dados do banco de dados do produto via
consulta JPA, JDBC. possvel acessar os dados de outros produtos por
conexo JDBC, Web Service ou arquivos XML.
Para facilitar a compreenso a respeito do desenvolvimento de
relatrios para o TOTVS | ECM, ser demonstrado um exemplo de criao de
relatrios. A seguir os passos necessrios para a criao do relatrio de
colaborador, sendo este com dados providos do TOTVS | ECM atravs da
consulta JPA. O fonte do exemplo citado neste documento encontra-se em:
Documentos
de
Customizao\Arquivos
Adicionais\Template
de
Relatorio\Colleague Report

Criando um novo projeto


Abra o BIRT Report Designer selecione o menu File -> Project
conforme a figura 1.

TOTVS | ECM - Relatrios

Figura 1 Novo projeto.

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.

Figura 2 Tipo de projeto.

TOTVS | ECM - Relatrios

Criando o Relatrio
Aps a criao do projeto na rea Navigation clique com o boto
direito do mouse sobre o projeto colleague_report e selecione New -> Report,
conforme a figura 3.

Figura 3 Novo 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.

TOTVS | ECM - Relatrios

Figura 4 Definindo o tipo de relatrio.

Configurando o acesso aos dados


Um Data Source mecanismo que guarda os dados de conexo com
a fonte de dados, por exemplo, configuraes JDBC, Web Service, entre
outros. No caso desse relatrio ser utilizado o acesso aos dados via
linguagem JavaScript.
Ao criar o novo relatrio, selecione a aba Data Explorer, clique com o
boto direito do mouse sobre o item Data Source em seguida selecione a
opo New Data Source conforme a figura 5.

TOTVS | ECM - Relatrios

Figura 5 Novo Data Source.

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 boto Finish, conforme a figura 6.

TOTVS | ECM - Relatrios

Figura 6 Tipo de Data Source.

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.

10

TOTVS | ECM - Relatrios

Figura 7 Novo Data Set.

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:

Column Name

Data Type

Column Alias

Display Name

colleagueId

String

Vazio

Vazio

Login

String

Vazio

Vazio

colleagueName

String

Vazio

Vazio

mail

String

Vazio

Vazio

active

String

Vazio

Vazio

adminuser

String

Vazio

Vazio

Em seguida clique no boto Finish conforme a figura 8.

11

TOTVS | ECM - Relatrios

Figura 8 Colunas do Data Set.

Incluindo parmetros no Relatrio


possvel incluir parmetros no relatrio a serem solicitados para o
usurio antes da sua renderizao, auxiliando no filtro de consulta aos dados
gerando um relatrio especfico.
Selecione a aba Data Explorer, em seguida clique com o boto direito
do mouse no item Report Parameters, selecione a opo New Parameter
conforme a figura 9.

Figura 9 Parmentros do Relatrio.

12

TOTVS | ECM - Relatrios


A figura 10 ilustra a janela de incluso de parmetros.

Figura 10 Configurao de parmetros.

Ao abrir a janela New Parameter inclua os seguintes parmetros:

Matrcula

Name: Matricula;

promptText: Matrcula do Colaborador ou "*" para mostrar todos;

Data type: String;

Display type: Text Box;

Is Requered: true.

13

TOTVS | ECM - Relatrios

Mostrar Usurios

Name: paramEnable;

Prompt text: Mostrar usurios;

Data type: String;

Display type: List Box;

Is Requered: true.

Selection Values
Value

Display Text

Todos

true

Ativos

false

Inativos

Ordenar Por

Name: paramSort;

Prompt text: Order por;

Data type String;

Display type: List Box;

Selection Values
Value

Display Text

c.colleaguePK.colleagueId

Matrcula

c.colleagueName

Nome

c.login

Login

TAGs
O TOTVS | ECM disponibiliza TAGs de substituio que auxiliam no
desenvolvimento e na segurana da gerao das informaes do relatrio,
so elas:

14

TOTVS | ECM - Relatrios

${WKCompany}: substitui a varivel pelo cdigo da empresa


autenticada no TOTVS | ECM;

${WKUser}: substitui a varivel pelo cdigo do usurio autenticado no


TOTVS | ECM;

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.

Populando o Data Set


No exemplo apresentado neste documento ser populado o relatrio
atravs de dados providos de consultas JPA acessando o banco do TOTVS |
ECM, porm possvel utilizar outros recursos para popular o Data Set: XML,
Web Service e JDBC.
O BIRT renderiza o relatrio atravs da execuo de seus eventos, so
muitos os eventos disponibilizados pelo BIRT, nesse exemplo sero
utilizados:

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:

15

TOTVS | ECM - Relatrios

Figura 11 Evento initialize

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.

Detalhes sobre o cdigo:

importPackage: comando responsvel pela importao de bibliotecas


Java;

Package.java.util: biblioteca responsvel pelas Classes utils do


Java;

16

TOTVS | ECM - Relatrios

Packages.com.datasul.technology.webdesk.dataset.service: biblioteca
disponibilizada pelo TOTVS | ECM para consulta ao banco de dados
do produto via consula JPA;

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.

Figura 12 Evento onBeforeOpen.

Em seguida inclua o seguinte cdigo:

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 + "'";

17

TOTVS | ECM - Relatrios


if(params["paramEnable"].value != null)
{
if

(params["paramEnable"].value

!= "*") {
c.active = " +

sqlJpa = sqlJpa
params["paramEnable"].value;
}
}

"

AND

}
else {
if(params["paramEnable"].value != null)
{
if

(params["paramEnable"].value

!= "*") {
c.active = " +

sqlJpa = sqlJpa
params["paramEnable"].value;
}
}

"

AND

"

}
}
sqlJpa
=
sqlJpa
params["paramSort"].value;

"

ORDER

BY

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.

Detalhes sobre o cdigo:

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;

18

TOTVS | ECM - Relatrios

params["paramEnable "]: parmetro de relatrio, retorna o tipo de


usurio;

params["paramSort "]: parmetro de relatrio, retorna o modo de


ordenao;

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.

Figura 13 Evento fetch.

Em seguida inclua o seguinte cdigo:

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") {

19

=
=

TOTVS | ECM - Relatrios


row["active"] = "Sim";
} else {
row["active"] = "No";
}
var adminUser = rowMap.get("adminUser");
if (adminUser == "true") {
row["adminUser"] = "Sim";
} else {
row["adminUser"] = "No";
}
count++;
return true;
}
}
return false;

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;

Obtendo dados via conexo JDBC


Uma forma alternativa de obteno de dados para criao de
relatrios a utilizao de JDBC. necessrio criar um Data Source que se
conecte com o banco de dados, nele sero armazenados os dados para
conexo, via JDBC, ao banco de dados.
Selecione a aba Data Explorer, clique com o boto direito do mouse
sobre o item Data Source em seguida selecione a opo New Data Source
conforme a figura 14.

20

TOTVS | ECM - Relatrios

Figura 14 Novo Data Source


Ao abrir a janela New Data Source, selecione a opo JDBC
DataSource e define o nome JDBC-DataSource como Data Source Name em
seguida clique no boto Next, conforme a figura 15.

Figura 15 Tipo Data Source


Na prxima janela a conexo com o banco de dados deve ser
configurada. No campo Driver Class selecione o driver de conexo com o

21

TOTVS | ECM - Relatrios


banco de dados, neste caso, a conexo ser feita com o banco MySQL. Se
o driver necessrio no estiver listado, basta adiciona-lo clicando em
Managed Drivers...
Informe tambm os valores para Database URL, User Name e
Password de acordo com o banco de dados escolhido, conforme a figura 16.

Figura 16 Configurando conexo com banco de dados.


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 17.

22

TOTVS | ECM - Relatrios

Figura 17 Criando Novo Data Set.


Selecione o Data Source criado (JDBC-DataSource), no campo Data
Set Type selecione SQL Select Query, informe um nome para o Data Set e
clique em next, conforme a figura 18.

23

TOTVS | ECM - Relatrios

Figura 18 Configurando Data Set


Na prxima tela informe a SQL que busca os dados no banco de
dados, neste exemplo, sero buscados os colaboradores da empresa
autenticada no TOTVS | ECM, conforme a figura 19.

24

TOTVS | ECM - Relatrios

Figura 19 Criao da Query SQL


SELECT colaborador.CD_MATRICULA,
colaborador.COD_EMPRESA,
colaborador.NM_COLABORADOR,
colaborador.E_MAIL
FROM colaborador
WHERE colaborador.COD_EMPRESA = ${WKCompany}
A Query acima busca no banco de dados todos os colaboradores da
empresa do usurio autenticado no TOTVS | ECM, este cdigo obtido
atravs da TAG ${WKCompany}.
Observao: Poder ocorrer um erro quando concluir a criao do Data Set
pois a TAG ${WKCompany} no existe no contexto do BIRT. A figura 20
apresenta o erro devido utilizao da TAG, este um erro de sintaxe no
SQL e indica que ${WKCompany} no um comando SQL. Porm quando o
relatrio for executado no ECM, ela retornar o cdigo da empresa
normalmente, com isso a TAG ser substituda pelo cdigo da empresa do
usurio autenticado no ECM, corrigindo o erro de sintaxe.

25

TOTVS | ECM - Relatrios

Figura 20 Erro do Birt pelo uso da TAG ${WKCompany}

ATENO: A criao de relatrio no Birt utilizando conexo JDBC exige


ateno com relao segurana da publicao do relatrio no ECM, uma
vez que o arquivo .rptdesign (XML do relatrio Birt) deixa exposto os
parmetros de conexo com o banco de dados, porm o campo senha fica
ofuscado com base64. Por este motivo e pela facilidade de busca das
informaes do TOTVS | ECM, sempre recomendamos a criao de relatrios
com fontes de dados via Dataset do ECM ou query JPA.
Se a criao de relatrios utilizando JDBC for necessria, recomendamos que
ao publicar um relatrio no ECM as configuraes de permisso sejam
definidas apenas para leitura. Usurios que possuem permisso de
manuteno podem fazer o download dos anexos e com isso tero acesso
aos dados de conexo com o banco de dados.

Formatando a visualizao do Relatrio


necessria a incluso dos componentes de renderizao do
relatrio. Clique na aba Layout para visualizar a pgina do relatrio que est
em branco e em seguida selecione a aba Palette conforme a figura 21.

26

TOTVS | ECM - Relatrios

Figura 21 Relatrio em branco.

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 22.

27

TOTVS | ECM - Relatrios

Figura 22 Componente Imagem.

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>

Em seguida clique no boto OK conforme figura 23.

28

TOTVS | ECM - Relatrios

Figura 23 Componente Text.

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 24.

29

TOTVS | ECM - Relatrios


Figura 24 Ttulo do relatrio.

Arraste um componente Table, ao abrir a janela Insert Table defina 6


colunas e 1 detalhe e clique no boto OK conforme figura 25.

Figura 25 Configurao da Tabela.

Na tabela adicionada ao relatrio inclua um componente Label para


cada coluna da linha Header Row defina os seguintes valores:

Matrcula;

Nome;

Login;

E-mail;

Ativo;

Administrador

Formate as labels inclundas definindo cor da fonte e cor de fundo


conforme figura 26.

30

TOTVS | ECM - Relatrios

Figura 26 Ttulo das Colunas.

Renderizando dados do Data Set


Selecione a aba Data Explorer e expanda o colleagueDataSet criado
anteriormente e em seguida arraste cada item do Data Set para a coluna
Detail Row da tabela criada anteriormente conforme figura 27.

31

TOTVS | ECM - Relatrios

Figura 27 Data Set.

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 28.

32

TOTVS | ECM - Relatrios

Figura 28 Pasta de publicao.

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 29.

Figura 29 Publicao de relatrio.

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.

33

TOTVS | ECM - Relatrios


Ao abrir a janela Upload de arquivo clique no boto Procurar
selecione a pasta do projeto do desenvolvimento do relatrio de
colaboradores e importe os arquivos report.rptdesign e LogoTOTVS.png e
clique boto Abrir conforme figura 30.

Figura 30 Upload de arquivos do relatrio.

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 31.

Figura 31 Concluindo publicao.

34

TOTVS | ECM - Relatrios

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 32.

Figura 32 Parmetros do relatrio.

O relatrio dever mostrar todos os colaboradores cadastrados no


TOTVS | ECM para a empresa em que o usurio est autenticado, conforme
figura 33.

35

TOTVS | ECM - Relatrios

Figura 33 Relatrio de Colaboradores Resultado.

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.

Figura 34 Funcionalidades do visualizador de relatrios.

36

TOTVS | ECM - Relatrios

JPA - Funes de Agregao


Funes de Agregao
O TOTVS | ECM suporta atravs de consultas JPA e seu banco de
dados, o uso de funes de agregao, tais como: AVG, SUM, COUNT, MAX
e MIN. Permite tambm utilizar agrupamentos: GROUP BY e HAVING

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

37

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

TOTVS | ECM - Relatrios


A tabela acima referencia a relao entre o cdigo de dataset, a
entidade de persistncia JPA utilizada nas consultas, e a respectiva tabela no
banco de dados.
As colunas das entidades de persistncia so as mesmas
apresentadas no dataset.

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

38

TOTVS | ECM - Relatrios


rowMap.get("count(d.documentPK.documentId)");

Acessando dados de Fichrios


Importando bibliotecas
A partir da classe DatasetFactory possvel acessar dados de
fichrios publicados no TOTVS | ECM.
Para popular um relatrio atravs de dados de fichrios necessrio
a importao das seguintes bibliotecas:

importPackage(Packages.com.datasul.technology.webdesk.data
set.service);
importPackage(Packages.com.datasul.technology.webdesk.data
set);
importPackage(Packages.com.datasul.technology.webdesk.sear
ch.controller);

Retornando dados do fichrio


Atravs da classe DatasetFactory possvel buscar dados de
fichrios, incluir filtros e ordenao. Exemplo de utilizao:

// Monta as constraints para consulta


var factory = DatasetFactory.getInstance(${WKCompany});
//Filtra Clientes de 1 a 5
var c1 = factory.createConstraint("cod_cli",
ConstraintType.MUST);

39

"1",

"5",

TOTVS | ECM - Relatrios


var constraints = new Array(c1);
//Ordena o resultado pelo nome do Cliente
var sortingFields = new Array("name_cli");
dataset
=
factory.getDataset("cad_cli",
constraints, sortingFields);

null,

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

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 fonte do exemplo citado acima se encontra em: Documentos de


Customizao\Arquivos Adicionais\Template de Relatorio\ Customer
CardIndex.

Busca de dados de Fichrio com filtro por data


Para realizar consultas via Dataset com filtros do tipo Data,
necessrio antes salvar o campo da ficha no formato aaaa/mm/dd
(ano/ms/dia) para que seja possvel realizar a busca via Dataset.
Exemplo de consulta:

// Monta as constraints para consulta

40

TOTVS | ECM - Relatrios


var factory = DatasetFactory.getInstance(${WKCompany});
//Filtra Clientes de 1 a 5
var
c1
=
factory.createConstraint("campo_data",
"2010/01/25", "2010/05/02", ConstraintType.MUST);
var constraints = new Array(c1);
//Ordena o resultado pelo nome do Cliente
var sortingFields = new Array("name_cli");
dataset
=
factory.getDataset("cad_cli",
constraints, sortingFields);

41

null,

TOTVS | ECM - Relatrios

Third Party Trademarks


Adobe, Flash, Flex, Flex Builder, PostScript and Reader are either registered
trademarks or trademarks of Adobe Systems Incorporated in the United States
and/or other countries.
Apache is a trademark of The Apache Software Foundation.
Apple is a trademark of Apple Inc., registered in the U.S. and other countries
Firefox and Mozilla are registered trademarks of the Mozilla Foundation.
Google, Android and Google Chrome are trademarks of the Google Inc.
IOS is a trademark or registered trademark of Cisco in the U.S. and other
countries and is used under license
JavaScript is a trademark of Oracle Corporation.
Liferay, Liferay Portal, and the Liferay logo are trademarks or registered
trademarks of Liferay, Inc., in the United States and other countries.
Linux is the registered trademark of Linus Torvalds in the U.S. and other
countries.
Microsoft, Active Directory, Excel, Internet Explorer, Outlook, PowerPoint, SQL
Server, Windows and Windows Vista are either registered trademarks or
trademarks of Microsoft Corporation in the United States and/or other
countries.
MySQL is a trademark of Oracle Corporation and/or its affiliates.
openDBcopy is an open-source project by Anthony Smith, published under the
terms of the GNU General Public License
OpenLDAP is a registered trademark of the OpenLDAP Foundation
Oracle, Java and OpenOffice.org are registered trademarks of Oracle and/or
its affiliates. Other names may be trademarks of their respective owners.
Progress and OpenEdge are trademarks or registered trademarks of Progress
Software Corporation or one of its subsidiaries or affiliates in the U.S. and
other countries.
Red Hat and JBoss are registered trademarks of Red Hat, Inc. in the United
States and other countries.
This product includes software developed by the Visigoth Software Society
(http://www.visigoths.org/).
Any other third party trademarks are the property of their respective owners.

42