BI
Módulo de inteligência (Painéis de indicadores, Gráficos, Relatórios, Cubos de decisões)
- BI - Acessos
- BI - Acessos no portal (Drill Down)
- BI - Ajustar texto dos gráficos
- BI - Dashboard de Estoque
- BI - Dashboard de Finanças
- BI - Filtros de data em painéis de indicadores
- Cubo de dados
- Filtros de BI
- Filtros de relatório
- Filtros de relatório - Assistente
- Importação de relatórios
- Importar / Exportar (Painéis, gráficos, cubos de dados, relatórios)
- Painéis de indicadores / Gráficos
- Protocolos de processo
- Rastreio de dados (Drill down)
- Relatório - Alterando visível de campos via calculo
- Relatório - Alterar nome do relatório via processo
- Relatório - Buscar informações da grade de dados preenchida
- Relatório - Como fazer cálculos de valores
- Relatório - Como gerar QR Code através do componente
- Relatório - Componente CheckBox
- Relatório - Componente TableGrid
- Relatório - Criar colunas de dados retornados via SQL
- Relatório - Filtrar por período
- Relatório - Linhas Zebradas
- Relatório - Melhorando qualidade e imagens na exportação para PDF
- Relatório - Mostrar assinatura de processo
- Relatório - Mostrar filtros na visualização
- Relatório - Mostrar todos os dados caso nada seja selecionado no filtro
- Relatório - Report Builder
- Visualizar relatório no portal
BI - Acessos
A partir do momento que o usuário cadastrado efetua o seu primeiro login, a licença nominal do mesmo para o portal é ativada. Caso não tenha mais necessidade deste usuário usar novamente o DOX Portal, é necessário inativar o cadastro do usuário.
Foi criado um painel de indicadores, onde é possível visualizar os usuários com licença nominal atualmente ativas no DOX Portal e todos os acessos já registrados separando também por mês/ano.
Temos disponível aqui em anexo o painel para os bancos Oracle e PostgreSQL (em ordem):
Para informações sobre como importar o painel: Clique aqui.
Visualização no portal (Aba principal):
BI - Acessos no portal (Drill Down)
Gráficos do tipo Drill Down são gráficos que possibilitam a exploração das informações em diferentes níveis de detalhes, podendo ser hierárquica ou não. Neste exemplo faremos um gráfico do tipo Drill Down em que mostrará a quantidade de acessos no portal realizados por cada usuário em um Top 15 Usuários, no ano atual, e incluindo o total de acessos.
- Grade;
- Rosca;
- Texto.
Grupos de indicadores:
Antes de criar os gráficos crie um grupo de indicadores chamado Administrativo.
Painéis de indicadores
- Descrição: DOX Portal: Acessos;
- Em Menu, selecione: Dox portal - Inteligência;
- Grupo de indicadores, selecione o grupo criado anteriormente: Administrativo;
- Mantenha os campos restantes com valor padrão, clique em OK para salvar e confirme para editar visualmente este Dashboard clicando em Sim;
- Ao abrir a tela de edição visual do painel, clique com o botão direito do mouse dentro do painel para selecionar a opção Novo gráfico.
Gráfico 1: Top 15 Usuários
- Tipo de gráfico: Grades;
- Título: Top 15 Usuários;
- Em SQL, crie um novo conector:
- Descrição: Seleciona top 15 usuários com acesso;
- Tipo; SQL
- Instrução SQL:
ORACLE | POSTGRESQL |
|
|
- Clique em Ok e vincule esse conector no gráfico.
- Na aba Grade, no campo Registros por página, digite: 15;
- Selecione o campo USUARIO na lista Disponíveis;
- Clique no botão para inserir o campo selecionado na lista de Selecionados (Faça o mesmo com o campo ACESSOS selecionado)
- Na aba Rastreio (Drill down), no campo Variável, digite: /*USU*/
- Em Campo de valor, selecione USUARIO
- Clique em OK para salvar o gráfico.
Configurações Painel
- Distância esquerda: 0;
- Distância topo: 0;
- Altura: 350;
- Largura: 300;
- Clique em OK para salvar
Gráfico 2: Acessos Mês/Ano:
- Tipo de gráfico: Rosca;
- Título: Acessos Mês/Ano;
- Em SQl, crie um novo conector;
- Descrição: Seleciona acessos mês/ano do ano atual;
- Tipo: SQL;
- Instrução SQL:
select to_char(extract(month from data), '00')||'/'||extract(year from data) MESANO,
count(1) ACESSOS
from acesso_sistema
where usuario = '/*USU*/' or 'USU' = substr('/*USU*/', 3, 3) or '/*USU*/' = 'Total'
group by to_char(extract(month from data), '00')||'/'||extract(year from data)
- Clique em OK para salvar e vincule o conector no gráfico.
- Em dimensão: MESANO;
- Expressão: ACESSOS;
- Formato: Inteiro;
- Aba Marcador, marcar a opção Exibe marcador e Mostrar: Texto e valor;
Configurações Painel:
- Distãncia esquerda: 305;
- Distância topo: 0;
- Altura: 350;
- Largura:900;
- Clique em OK para salvar as configurações;
Gráfico 3: Total Acessos:
- Tipo de gráfico: Textos;
- Título: Total Acessos;
- Em SQL, crie um novo conector:
- Descrição: Seleciona o total de acessos do ano atual;
- Tipo: SQL;
- Instrução SQL:
select count(1) acessos
from acesso_sistema
where usuario = '/*USU*/' or 'USU' = substr('/*USU*/', 3, 3) or '/*USU*/' = 'Total'
- Clique em OK para salvar e vincule o conector no gráfico;
- Expressão: ACESSOS;
- Formato: Inteiro;
- Clicar em OK para salvar o gráfico;
Connfigurações painel:
- Distância esquerda: 0;
- Distância topo: 355;
- Altura: 150;
- Largura: 1205;
- Clique em OK para salvar.
Finalização e Teste
Feche a aba de edição visual do painel de indicador para salvar e acesse o portal para testar o painel.
BI - Ajustar texto dos gráficos
Em alguns casos dependendo do tamanho do texto e do gráficos eles acabam se sobrepondo, tendo em vista esse problema foi desenvolvido um novo recurso na versão 12.22.0 a qual permite marcar um parâmetro que irá verificar os texto e se ajustar automaticamente para não sobrepor conforme anexo abaixo:
Como era antes:
Com o novo recurso:
Como configurar:
- Ao editar um gráfico, vá na aba de configurações,
- Marque o parâmetro "Posicionar rótulos das categorias automaticamente".
Marcando este parâmetro ele irá se ajustar automaticamente conforme imagens iniciais. Com esta opção marcada, melhora a gestão visual dos gráficos que são apresentados para o usuário no portal.
Lembrando que este recurso está disponivel apenas nas versões 12.22+
BI - Dashboard de Estoque
Vamos criar um Dashboard de Estoque que mostrará uma visão comparando o saldo financeiro de estoques por grupo de produtos de uma filial.
Criando Painel de Indicador / Grupo de indicador
- Vá até o módulo de inteligência, e no cadastro de grupos de indicadores e crie um chamado “Financeiro”.
- Criar um conector FK para listar as filiais.
Vá até o cadastro de Painés de Indicadores, ainda no módulo inteligência, e preencha os campos de acordo com as informações abaixo.
- Descrição: Dashboard de Estoque;
- Em menu, selecione: Dox Portal - Inteligência;
- Grupo de indicadores, selecione o grupo de indicadores criado anteriormente: Financeiro;
- Mantenha os campos restantes com valor padrão, clique em OK para salvar e confirme para editar visualmente este dashboard clicando em Sim;
- Ao abrir a tela de edição visual do painel, clique com o botão direiro do mouse abaixo do titulo da aba Principal (no espaço em branco);
- Selecione a opção Novo gráfico.
Criando gráfico
Gráfico: Saldo em Estoque
- Selecione o tipo de gráfico Pizza.;
- Em Título, digite: Saldo em Estoque;
- No campo Banco, selecionar o conector de banco de dados criado para o banco Uniema (Banco Uniema);
- Em SQL, crie um novo conector;
- Descrição: Seleciona saldo financeiro em estoque;
- Tipo: SQL;
- Instrução SQL:
select IDGRUPO,
DESC_GRUPO,
sum(saldofinanceiro) as SALDOFINANCEIRO
from (select case when grupopai.idgrupo > 0
then grupopai.idgrupo else grupo.idgrupo end as IDGRUPO,
case when grupopai.idgrupo > 0
then grupopai.descricao else grupo.descricao end as DESC_GRUPO,
estoque_filial.valorcustocontabil * estoque_filial.saldoatual as SALDOFINANCEIRO
from estoque_filial join item on (item.iditem = estoque_filial.iditem)
left outer join grupo grupofilho on (grupofilho.idgrupo = item.idgrupo)
left outer join grupo grupopai on (grupopai.idgrupo = grupofilho.idgrupopai)
left outer join grupo on (grupo.idgrupo = item.idgrupo)
where estoque_filial.idempresa = 1 and item.inativo = 'N'
and (estoque_filial.idfilial = 0/*IDFILIAL*/ or 0 = 0/*IDFILIAL*/)) consulta
group by idgrupo, desc_grupo
order by idgrupo
- Clique em OK e vincule esse conector no gráfico;
- Na aba Dimensão, selecionar o campo DESC_GRUPO;
- Aba Expressão: SALDOFINANCEIRO;
- Campo Formato, selecionar Monetário;
- Aba Marcador, marcar a opção Exibe marcador;
- No campo Mostrar, selecionar Texto e valor;
- Na aba Configurações, marcar opçao Exibir legendas;
Configurações Painel
- Acesse as Configuração Painel, clicando com o botão direito do mouse sobre o Gráfico;
- Distância esquerda: 0;
- Distância topo: 0;
- Altura: 500;
- Largura: 1200;
- Agora, clique em OK para salvar a configuração.
Filtros
Para mostrar dados somente de uma filial, precisamos criar um filtro para que o usuário possa selecionar a filial. Vamos iniciar clicando no botão de Filtros.
- Clique no botão Configurar filtros;
- Clique em Novo;
- Selecione o tipo: FK;
- Digite a Descrição: Filial;
- Digite o Nome variável (que estará na condição do script SQL): /*IDFILIAL*/;
- Selecione a Tabela FK criado anteriormente: FK_Filiais_uniema
- Clique em OK;
- Clique em OK novamente para salvar o filtro.
Finalização e Teste
Neste momento, feche a aba de edição visual do painel de indicador para salvar, acesse o portal, no módulo inteligência (configurado no campo Menu na configuração inicial do painel) e procure pelo painel que você acabou de criar para testá-lo.
BI - Dashboard de Finanças
O Dashboard de finanças servirá para mostrar os valores referentes à contas à receber e contas à pagar da empresa por método de pagamento, visando controlar o fluxo de caixa.
Criando Painel de Indicador
- Descrição: Dashboard de Finanças;
- Em Menu, selecione: Dox portal - Inteligência;
- Grupo de indicadores, selecione: Financeiro. Caso não tenha, crie um novo indo no cadastro de "Grupo de indicadores".
- Mantenha os campos restantes com valor padrão, clique em OK para salvar e confirme para editar visualmente este Dashboard clicando em Sim;
- Ao abrir a tela de edição visual do painel, clique com o botão direito do mouse dentro do painel para selecionar a opção de Novo gráfico.;
Gráfico: Contas à Receber
- Selecione o tipo de gráfico Rosca;
- Em Título, digite: Contas à receber;
- Em SQL, crie um novo conector;
- Descrição: Seleciona contas à receber;
- Tipo: SQL;
- Instrução SQL:
select metodopagto.IDMETODO,
metodopagto.DESCRICAO,
sum(valororiginal) as VALOR
from receber r
join metodopagto on (metodopagto.idmetodo = r.idmetodo_venda)
where r.excluido = 'N'
and r.status <> 5
and r.status <> 1
group by metodopagto.idmetodo, metodopagto.descricao order by metodopagto.idmetodo
- Clique em OK e vincule o conector criado no gráfico;
- Na aba Dimensão, selecionar o campo DESCRICAO;
- Na aba Expressão, selecionar o campo VALOR;
- Ainda na aba Expressão, no campo Formato, selecionar Monetário;
- Na aba Marcador, marcar a opção Exibe marcador e selecionar Texto e Valor no campo Mostrar;
- Clicar em OK para salvar o gráfico;
Configurações Painel
Clicar com o botão direito do mouse acima do gráfico criado e clicar em Configurações Painel e preencha os campos:
- Distância esquerda: 0;
- Distância topo: 0;
- Altura: 500;
- Largura: 600;
- Clique em OK para salvar.
Gráfico: Contas à Pagar
- Tipo de Gráfico: Rosca;
- Título: Contas à Pagar;
- Em SQL, crie um novo conector;
- Descrição: Selecionar contas à pagar;
- Tipo: SQL;
- Instrução SQL:
select metodopagto.IDMETODO,
metodopagto.DESCRICAO,
sum(p.valororiginal) as VALOR
from pagar p
join metodopagto on (metodopagto.idmetodo = p.idmetodo)
where p.excluido = 'N'
and p.status <> 5
and p.status <> 1
group by metodopagto.idmetodo,
metodopagto.descricao
order by metodopagto.idmetodo
- Clique em OK e vincule esse conector no gráfico.
- Aba Dimensão: DESCRICAO;
- Aba Expressão: VALOR;
- Formato: Monetário;
- Aba Marcador, marcar a opção Exibe marcador e Mostrar: Texto e Valor;
- Clique em OK para salvar o gráfico.
Configurações Painel
- Distância esquerda: 605;
- Distância topo: 0;
- Altura: 500;
- Largura: 600;
- Clique em OK para salvar.
Finalização e Teste
Feche a aba de edição visual do painel de indicador para salvar e acesse o portal para testar o painel.
BI - Filtros de data em painéis de indicadores
Como bem sabemos, toda analise de indicadores normalmente é baseada em um período, seja ele período em que iniciou-se processos, período de faturamento, período de encerramento de chamados, etc.
Pois bem, visto isso, estamos compartilhando uma maneira simples e pratica de fazer com que seus conectores possam ser testados e fiquem eficientes na utilização dos painéis de indicadores DOX.
WHERE CAST(CP.DATAHORA AS DATE) BETWEEN CAST(CASE
WHEN '/*DATAINI*/' = '1900-01-01' THEN CAST(CURRENT_DATE AS VARCHAR(10))
WHEN '/*DATAINI*/' = '.' THEN CAST(CURRENT_DATE AS VARCHAR(10))
WHEN '/*DATAINI*/' LIKE '%DATAINI%' THEN CAST(CURRENT_DATE AS VARCHAR(10))
ELSE '/*DATAINI*/'
END AS DATE)
AND
CAST(CASE
WHEN '/*DATAFIM*/' = '2500-12-31' THEN CAST(CURRENT_DATE AS VARCHAR(10))
WHEN '/*DATAFIM*/' = '.' THEN CAST(CURRENT_DATE AS VARCHAR(10))
WHEN '/*DATAFIM*/' LIKE '%DATAFIM%' THEN CAST(CURRENT_DATE AS VARCHAR(10))
ELSE '/*DATAFIM*/'
END AS DATE)
Assim teremos todos os tratamentos possíveis sempre com retornos do tipo DATE para serem usados no BETWEEN e podermos validar a sintaxe no conector.
De acordo com seu banco de dados, é interessante realizar tratamentos por exemplo:
- Onde usamos CURRENT_DATE, existem para cada banco comandos que trazem o primeiro e o ultimo dia do mês o qual seria interessante em alguns casos de uso, visto que os BI's veem com o valor '1900-01-01' e '2500-12-31' quando são abertos pela primeira vez. Assim o BI já inciaria com alguns dados.
Versão Homologada: 12.9 +
Cubo de dados
As aplicações OLAP são usadas pelos gestores em qualquer nível da organização para lhes permitir análises comparativas que facilitem a sua tomada de decisões diárias.
Com ele, o usuário final pode montar diferentes visualizações das informações simplesmente movendo os campos disponíveis entre as áreas do cubo.
Antes de criar em si o cubo OLAP por boa prática vamos criar uma view pois caso a consulta SQL do cubo seja grande, faça a consulta em tabelas referenciando FK, a manutenção do mesmo será fácil.
Exemplo de view: (Oracle, PostgreSQL)
CREATE OR REPLACE VIEW VW_DADOSBPMOFFICE AS
SELECT cp.idprocesso,
cp.status,
cpa.descricao AS atividade,
pkg_ema.retorna_valor_variavel_texto(cp.idprocesso, 1) AS nomeprocesso,
pkg_ema.retorna_valor_variavel_data(cp.idprocesso, 39) AS dataentrega,
pkg_ema.retorna_valor_variavel_texto(cp.idprocesso, 16) AS donoproceso,
pkg_ema.retorna_valor_variavel_texto(cp.idprocesso, 8) AS solicitante,
pkg_ema.retorna_valor_variavel_texto(cp.idprocesso, 4) AS assunto
FROM crm_processo cp
JOIN crm_processo_atividade cpa ON cpa.idprocesso = cp.idprocesso AND cpa.idatividade = cp.idatividadeatual
WHERE cp.idprocedimento = 30
AND cpa.idatividade <> 2
AND pkg_ema.retorna_valor_variavel_texto(cp.idprocesso, 1) <> '.'
AND pkg_ema.retorna_valor_variavel_texto(cp.idprocesso, 16) <> '.'
Assim que criar a view em seu banco de dados vamos ao DOX Estúdio, No modulo Inteligência - > Cubos (OLAP)
Logo após aperte no botão Novo(F2) e insira as informações necessárias e o SQL da View:
*** Caso o banco de dados não seja informado, o mesmo pegara o banco local em uso.
Configuração de Campos
Um dos principais conceitos de um cubo de dados (OLAP) é que as informações precisam estar distribuídas de forma dinâmica e de fácil manuseamento. Para que um cubo de dados seja montado da melhor forma, é preciso conhecer um pouco mais sobre as áreas de distribuição das informações. Dentre essas áreas, estão:
- Filtros: são todos os campos configurados pelo usuário que ficam disponíveis para serem exibidos no cubo de dados. Mesmo que não sejam exibidos, esses campos podem ser usados para aplicação de filtros instantâneos sobre os dados apresentados;
- Linha: define os campos que servirão como dimensões para os dados apresentados no cubo. Um cubo pode conter vários níveis de dimensões, permitindo realizar o detalhamento gradativo (drill-down) das informações;
- Coluna: campos que serão exibidos como colunas no cubo, representando seus grupos de medidas. São muito utilizadas, por exemplo, para representar a variação dos dados ao longo de uma linha de tempo (dias, meses, anos...);
- Dados: representam os valores (medidas) das informações apresentadas, sobre os quais podem ser aplicados diferentes tipos de agregações (somas, mínimos, máximos, desvios e variações).
Dentro do Dox, a configuração dos campos com suas respectivas áreas serve para que ao abrir a visualização do Cubo de Dados, os campos venham pré-definidos nas áreas configuradas.
No exemplo, o campo Cidade se encontra como Linha, Mét. de Pagamento como Coluna e Valor Total se encontra como um Dado, portanto, ao visualizar o cubo, é nessa área em que eles se encontrarão, como mostrado na imagem abaixo.
Apesar do criador do Cubo poder definir uma configuração padrão dos campos exibidos em cada área, o usuário final pode montar diferentes visualizações das informações simplesmente movendo os campos disponíveis entre as áreas do cubo.
Esse é o conceito fundamental de um cubo multidimensional: permitir analisar informações sob diferentes ângulos (dimensões), inclusive com diferentes dados e múltiplas formas de agregação.
Para mais informações sobre a configuração de um cubo de dados, você pode assistir à vídeo-aula sobre o assunto clicando aqui.
Agregação de dados
Cada célula na área de dados de um cubo representa o resultado de uma agregação de valores. Esses valores são extraídos de um subconjunto de registros formado pelo cruzamento de cada linha e coluna do cubo.
No exemplo abaixo, cada valor representa a quantidade total de peças produzidas por mês de cada funcionário.
Como pode ser observado na figura acima, além do total de peças que cada funcionário produziu em cada mês, o cubo também exibe:
- Um totalizador para cada agrupamento de dados: no caso, o total de peças que cada funcionário produziu por trimestre;
- Um totalizador geral para cada linha: no caso, o total de peças que cada funcionário produziu ao longo de todo período;
- Um totalizador geral para cada coluna de dados: no caso, o total de peças que todos os funcionários produziram em cada mês e em cada trimestre;
- Um totalizador geral dos dados do cubo: no caso, o total de 2.505 peças produzidas por todos os funcionários ao longo de todo o período.
Tipos de cálculos
Um cubo de dados permite diversos tipos de cálculo para agregação dos valores disponíveis.
A imagem abaixo apresenta os diferentes tipos de cálculo que podem ser configurados em cada campo de um cubo no Ema DOX
- Soma: Realiza a soma dos valores disponíveis em cada cruzamento de linha/coluna. Exemplo: na figura abaixo podemos ver que o funcionário “Antônio da Rosa” produziu a soma total de 276 peças no 1º trimestre (81 em Janeiro + 108 em Fevereiro + 87 em Março, conforme detalhado na imagem "Produção mensal de peças por funcionário").
- Média: Calcula a média aritmética dos valores disponíveis em cada cruzamento de linha/coluna. Exemplo: na figura acima podemos ver que o mesmo funcionário “Antônio da Rosa” produziu uma média mensal de 92 peças no 1º trimestre (276 peças/3 meses).
- Contador: Apresenta a quantidade de registros englobados em cada cruzamento de linha/coluna. Exemplo: na figura acima podemos ver uma quantidade de 3 registros (Qt. meses) envolvidos na análise.
- Máximo: Apresenta o maior valor disponível em cada cruzamento de linha/coluna. Exemplo: na figura acima podemos ver que, no seu mês mais produtivo, o funcionário “Carlos dos Santos” conseguiu fazer 121 peças (no mês de Janeiro, conforme detalhamento na imagem "Produção mensal de peças por funcionário").
- Mínimo: Apresenta o menor valor disponível em cada cruzamento de linha/coluna. Exemplo: na Figura x.3 podemos ver que, no seu mês menos produtivo, o funcionário “Vilson de Assis” conseguiu fazer apenas 89 peças (no mês de Fevereiro, conforme detalhamento na imagem "Produção mensal de peças por funcionário").
- Variância amostral: Realiza o cálculo da variância (uma medida de dispersão que mostra quão distantes os valores estão da média) com base em uma amostra dos registros observados. O resultado é obtido através da soma dos quadrados da diferença entre cada valor e a média aritmética, dividida pela quantidade de registros observados menos um.
- Exemplo: na figura abaixo vemos uma variância amostral de 201 peças para o funcionário “Antônio da Rosa” no 1º trimestre. Considerando que esse funcionário produziu 81 peças em Janeiro, 108 em Fevereiro e 87 em Março, ele teve uma média de 92 peças produzidas por mês no 1º trimestre. Utilizando os dados de produção mensal desse funcionário, o cálculo da variância considerando uma amostra de 2 períodos (3 meses observados menos um) fica assim:
-
Variância populacional:
- Realiza o cálculo da variância com base em todos os registros observados. O resultado é obtido através da soma dos quadrados da diferença entre cada valor e a média aritmética (até aqui, idêntico à variação amostral), só que dividida pela quantidade total de registros observados. Exemplo: na figura acima vemos uma variância populacional de 134 peças para o funcionário “Antônio da Rosa” no 1º trimestre. Utilizando os mesmos dados de produção mensal desse funcionário, o cálculo da variância considerando todos os 3 períodos (meses) fica assim:
- Aplicação prática: Observando a figura acima, podemos concluir que a produção mensal do funcionário “João da Silva” é mais uniforme do que a dos demais funcionários (Variância populacional = 150,67). * Quanto maior for a variância, mais distantes da média estarão os valores, e quanto menor for a variância, mais próximos os valores estarão da média.
- Desvio padrão: Em certas análises, o cálculo da variância pode não ser suficiente, pois essa é uma medida de dispersão muito influenciada por valores que estão muito distantes da média. Além disso, o fato de a variância ser calculada “ao quadrado” pode causar uma certa camuflagem dos valores, dificultando sua interpretação. Uma alternativa para solucionar esse problema a aplicação de uma outra medida de dispersão: o desvio padrão. Na prática, o desvio padrão indica qual é o “erro” se quiséssemos substituir um dos valores coletados pelo valor da média. Para calcular o desvio padrão, basta obter o resultado positivo da raiz quadrada da variância amostral. Exemplo: na figura abaixo vemos um desvio padrão de 14,18 peças para o funcionário “Antônio da Rosa” no 1º trimestre. Considerando a variância amostral desse funcionário no mesmo período (201), o cálculo do desvio padrão fica simples, assim:
- Desvio padrão populacional: O desvio padrão populacional segue o conceito do desvio padrão, com a diferença de que é calculado com base na variância populacional. Exemplo: na figura acima vemos um desvio padrão populacional de 11,58 peças para o funcionário “Antônio da Rosa” no 1º trimestre. Considerando a variância populacional desse funcionário no mesmo período (134), o cálculo fica assim:
- Personalizado: Além dos cálculos automáticos descritos anteriormente, o Ema DOX permite montar seu próprio cálculo personalizado para cada campo disponível no cubo de dados. Abrindo o assistente para elaboração do cálculo personalizado (figura acima), é possível montar uma expressão que retorne o resultado desejado para o campo em questão, utilizando:
- Valores fixos: 0, 0.5, 100, 200, 5000, etc.
- Valores dos outros campos configurados no cubo: /*QTDPECAS*/, /*QTDMESES*/, /*MES*/, /*TRIMESTRE*/, etc.
- Expressões condicionais: seguindo o formato “Se ? Entao ? Senao”;
- Operadores matemáticos básicos: adição (+), subtração (-), multiplicação (*), divisão (/));
- Operadores comparativos: igual (=), diferente (<>), menor (<), maior(>).
Exemplo: na figura abaixo, vemos que o funcionário “Carlos dos Santos” produziu uma média de 5,5 peças por dia durante o mês de janeiro. Esse valor foi obtido através de um cálculo personalizado, dividindo o total de peças produzidas no mês (121) pela quantidade de dias trabalhados (22).
Variações dos cálculos
Além de poder configurar diferentes tipos de cálculo empregados sobre os dados de um cubo, é possível definir uma variação a ser aplicada sobre cada cálculo realizado. O Ema DOX contempla os seguintes tipos de variações de cálculos:
- Nenhum: Não aplica qualquer variação sobre o cálculo realizado, mantendo seu valor original.
- Absoluto: Apresenta a diferença absoluta entre o valor calculado da célula atual e o valor calculado para o mesmo campo na coluna imediatamente anterior. Na figura abaixo, Tipos de variações, vemos que o funcionário “Antônio da Rosa” produziu 32 peças a mais no 2º trimestre em comparação com o total de peças produzido no período anterior (1º trimestre). Essa diferença foi obtida da seguinte forma: Calculando a quantidade total de peças produzidas no segundo período (308); Pegando a quantidade total de peças produzidas já calculada no primeiro período (276); Subtraindo o total obtido no 1º período do total obtido no 2º período. Seguindo essa lógica, o cálculo da variação absoluta fica assim: 308 - 276 = 32
- Percentual: Apresenta a diferença percentual entre o valor calculado da célula atual e o valor calculado para o mesmo campo na coluna imediatamente anterior. Na figura abaixo, Tipos de variações, vemos que o funcionário “João da Silva” teve uma queda de produtividade de 10,26% no 2º trimestre em comparação com o total de peças produzido no período anterior (1º trimestre). Essa diferença foi obtida com o seguinte cálculo: ((315 – 351) / 351) * 100 = -10,26
- Percentual da coluna: Calcula o percentual que o valor da célula atual representa em relação ao valor total da coluna. Na figura abaixo, Tipos de variações, vemos que a produção do funcionário “Vilson de Assis” no 1º trimestre (333 peças) corresponde a 26,24% da produção somada de todos os funcionários nesse período (1.269 peças). Sendo assim, o cálculo empregado foi o seguinte: (333 / 1269) * 100 = 26,24
- Percentual da linha: Calcula o percentual que o valor da célula atual representa em relação ao valor total da linha. Na figura abaixo, Tipos de variações, vemos que a produção total do funcionário “Vilson de Assis” no período analisado (672 peças) corresponde a 26,83% da produção somada de todos os funcionários no período (2.505 peças). Sendo assim, o cálculo empregado foi o seguinte: (672 / 2505) * 100 = 26,83
Filtros de BI
Para realizar a criação de Filtros em um painel de indicadores, é necessário que sejam feitos alguns ajustes nos conectores dos gráficos utilizados no painel. Primeiro, devemos saber pelo o que será filtrado o nosso painel.
Como exemplo iremos utilizar um filtro por Filial que abrange a possibilidade de o usuário querer consultar uma relação contendo dados de todas as filiais ao mesmo tempo. Para isso, deve-se entrar no conector de SQL que traz essas informações. Nele, provavelmente você terá uma cláusula WHERE (se não tiver, a mesma deve ser criada). É aqui que será inserida a condição do filtro que será realizado.
O gráfico que estamos utilizando traz os dados de saldo em estoque por filial, portanto, em nosso SQL vamos montar o seguinte filtro:
Desse modo, iremos obter apenas os dados da Filial selecionada (ESTOQUE_FILIAL.IDFILIAL = 0/*IDFILIAL*/). Ou então, de todas as filiais caso nenhuma seja selecionada: (or (0 = 0/*IDFILIAL*/)). Sendo /*IDFILIAL*/ uma variável do tipo Inteiro.
Agora, para entender melhor a funcionalidade da variável /*IDFILIAL*/, vamos criar o filtro do nosso gráfico para que os usuários possam utilizá-lo. Com o botão direito no painel de Indicador, vamos selecionar a opção "Filtros". Feito isso, uma tela irá se abrir para que sejam preenchidas algumas informações sobre o filtro.
Atualmente, estão disponíveis os seguintes tipos de filtro para utilização nos Painéis de Indicadores:
- Lista de seleção: esse tipo de filtro permite que sejam selecionados mais de um registro para realizar o filtro. Poderíamos utilizar esse tipo de filtro para o nosso exemplo, desse modo nosso painel iria exibir dados de mais de uma filial simultaneamente. Com esse tipo de filtro selecionado, deve ser informado um conector de SQL no campo “Dados Filtros” trazendo uma relação de múltiplos registros que podem ser selecionados para filtragem.
- SQL: para Filtros do tipo Lista de seleção o SQL deve conter a condição in(0/*IDFILIAL*/) ao invés de = 0/*IDFILIAL*/
- Período: esse tipo deve ser selecionado para casos onde devem ser utilizados filtros de data. Em variável início e fim devem ser informadas as variáveis que armazenam as datas de início e fim que serão consideradas.
- SQL: para filtros do tipo Período, o SQL deve conter a condição between ‘/*DATAINICIO*/’ and ‘/*DATAFIM*/’
- Faixa de valor: esse tipo de filtro é semelhante ao de período, porém, com ele, serão utilizados campos do tipo Valor ao invés de Data. Sua condição no também será between 0/*VALORUM*/ and 0/*VALORDOIS*/
- FK: esse é o tipo que iremos utilizar em nosso exemplo.
- No campo Descrição deve-se informar uma identificação para o Filtro;
- No campo Nome Variável deve-se informar a variável que está sendo utilizada no SQL (IDFILIAL);
- No campo Tabela deve-se informar a tabela ou conector de Foreign Key que será utilizado para trazer os dados para seleção.
Feito isso, basta clicar em Ok e o filtro estará salvo em seu Painel de Indicadores para que você possa iniciar a utilização e filtragem dos dados!
Filtros de relatório
Aqui mostraremos como aplicar um filtro de IDPROCESSO em um relatório cadastrado.
Pense que: Você tem que imprimir o relatório em determinada atividade do processo, e sempre tem que mostrar para o usuário as informações do processo ATUAL, ou seja, o processo que esteja colaborando no momento.
Criar esse filtro de processo é bastante simples, basta que na sua consulta SQL dentro da aba Dados, você adicione uma condição na cláusula WHERE passando uma variável. Como exemplo, vamos utilizar um filtro pelo código da instância de processo, IDPROCESSO.
Como vemos, na consulta AVALIACAO temos na linha 54 um filtro pela variável /*IDPROCESSO*/. Agora, para passarmos um valor para essa variável, basta salvarmos a edição deste relatório pela aba Desenho. Com o modelo desse relatório salvo, na tela de edição do mesmo, deve-se clicar em Filtros.
Abrindo a tela de filtros, devem ser configurados os seguintes campos, demonstrados na imagem:
- Rótulo: deve ser informado o nome que será exibido ao usuário para o filtro;
- Controle: o tipo de campo que será trazido para que seja informado filtro. Pode ser um campo de Valor, Data, CheckBox, Multi-seleção, ou, no caso da imagem, um Edit normal apenas para entrada de informações;
- Pipe: aqui deve ser informado o nome da sua Pipe de Consulta presente na aba Dados. Nesse caso, o nome da Pipe é AVALIACAO;
- Campo: aqui é onde será feito o vínculo com a variável presente na sua consulta SQL.
- Operador: como você deseja que seja esse filtro? As opções disponíveis são:
- Igual: só trará as informações que sejam igual ao informado no filtro;
- Diferente: apenas o que é diferente do que foi informado;
- Contém: trará as informações que tenham em seu conteúdo o que foi passado no filtro;
- Maior: apenas o que for maior que o informado, geralmente utilizado para números;
- Maior/igual: apenas o que for maior ou igual ao número informado;
- Menor: apenas o que for menor que o informado;
- Menor/igual: apenas o que for menor ou igual ao número informado;
- Entre: geralmente usado para filtros do tipo Data, onde o usuário quer que são trazidas informações de acordo com determinado período de tempo.
- Hora: caso marcado esse parâmetro, o filtro virá configurado com um formato de hora; Obr.: marcando esse parâmetro, o filtro deverá ser preenchido obrigatoriamente pelo usuário;
- Nome FK: aqui poderá ser selecionada uma Tabela ou Conector de Foreign Key para que sejam trazidas informações diretamente do banco de dados, seja ele externo ou do próprio DOX;
- Mostrar: nesse parâmetro será definido se o filtro estará ou não visível quando o usuário visualizar o relatório.
- Pipe p/ cópia: serve para casos onde você tenha uma Pipe(consulta) que utiliza de um filtro em comum com outras, trabalha em conjunto com o campo a seguir:
- Campo p/ cópia: caso você tenha duas (ou mais) Pipes de consulta dentro da aba Dados, porém utiliza um filtro em comum entre essas Pipes, poderá utilizar esse campo para informar o seu filtro, dessa maneira, o usuário não precisará informá-lo duas vezes na visualização do relatório. Segue exemplo:
- Padrão: serve para informar um valor padrão para o filtro, caso necessário.
Feito isso, basta salvar os filtros clicando em Ok, e visualizar o seu relatório!
Filtros de relatório - Assistente
Acessar o Módulo de inteligência > Relatórios > Criar um novo.
Para aplicar filtros em um relatório a partir do Assistente de Consultas, basta na aba Dados, clicar em Novo.
Agora você passará por algumas etapas para a criação do seu SQL por meio do nosso assistente, escolhendo a tabela que deseja e os campos, etc. Vá acompanhando o assistente. Após finalizados esses passos, na consulta criada você poderá clicar no ícone de Lupa, ele será o responsável por configurar os filtros do relatório.
Para adicionar um campo como filtro no relatório, basta na pesquisa de campos da(s) tabela(s) selecionada(s), basta clicar duas vezes sobre o campo desejado, e marcar a opção Localização automática, desse modo, o filtro será solicitado ao usuário quando quiser visualizá-lo.
Importação de relatórios
Para fazer a importação de Relatórios do Sistema, existem dois métodos: a partir de arquivo XML, ou a partir de um arquivo RTM. Para importar de um arquivo XML, siga os passos listados neste conteúdo: Cliquei aqui.
Agora, para importar a partir de um arquivo RTM, é necessário criar e iniciar a edição de um relatório. No menu Arquivo, deve ser selecionada a opção Carregar de Arquivo... como mostrado na imagem abaixo:
Feito isso, é necessário escolher o arquivo .rtm que será importado, e o resultado final na tela de edição do relatório será com o layout do relatório que você importou:
Importar / Exportar (Painéis, gráficos, cubos de dados, relatórios)
Painéis de indicadores.
Acesse módulo de inteligência > Painéis de indicadores > Botão direito na tela> Importar ou exportar Painel.
- Para importar, basta clicar na opção e o selecionar o arquivo no formato .painel
- Para exportar, basta selecionar o painel em questão, clicar na opção e escolher o local no Windows para o sistema salvar.
Gráficos
Acesse módulo de inteligência > Gráficos > Botão direito na tela> Importar ou exportar Gráfico.
- Para importar, basta clicar na opção e o selecionar o arquivo no formato .grafico
- Para exportar, basta selecionar o gráfico em questão, clicar na opção e escolher o local no Windows para o sistema salvar.
Relatórios
Acesse módulo de inteligência > Relatórios > Botão direito na tela> Importar ou exportar.
- Para importar, basta clicar na opção e o selecionar o arquivo no formato .xml
- Para exportar, basta selecionar o gráfico em questão, clicar na opção e escolher o local no Windows para o sistema salvar.
Cubos de dados
Acesse módulo de inteligência > Cubos (OLAP)> Botão direito na tela> Importar ou exportar Cubo de decisão.
- Para importar, basta clicar na opção e o selecionar o arquivo no formato .ema
- Para exportar, basta selecionar o cubo em questão, clicar na opção e escolher o local no Windows para o sistema salvar.
*** IMPORTANTE: Lembrando que caso a base onde o cubo/gráfico está sendo importado não tenha as mesmas informações de movimentação da base de onde o cubo/grafico foi exportado, ele pode não trazer as informações que trazia na base de origem. Para isso, precisa ser configurado um conector de banco de dados na configuração do Cubo/Grafico, ou então adaptar o SQL também na configuração.
Painéis de indicadores / Gráficos
Painéis de indicadores
Painéis de indicadores são compostos por gráficos cujos dados apresentados são trazidos por meio de instruções SQL. A seguir será detalhado o processo de criação de um gráfico a partir do Ema DOX Estúdio, podendo esse tutorial ser replicado também para a criação no Ema ERP.
Pelo menu de Inteligência, entre no cadastro de Painéis de indicadores e clique em Novo. Informe os dados cadastrais conforme imagens abaixo.
- Informações do Painel:
- Descrição: Nome do Painel que será visualizado, também será o título da consulta no portal.
- Responsável: Pessoa responsável por toda edição do painel, geralmente o modelador/criador.
- Observação: Campo opcional a qual é informado algumas observações sobre o painel, descreva resumidamente o que este painel irá mostrar ao usuário que estará visualizando.
- Menu: Local a onde será mostrado o Painel, podendo ser tanto no Estúdio quando no Portal.
- Grupo de Indicadores : Grupo a qual o painel será mostrado, semelhante ao "Tipo de processo" BPM.
- Processo: Processo vinculado ao painel indicador, o mesmo é mostrado no processo;
- Mudar aba automaticamente: O Painel pode existir varias aba que podem ficar em transição entre elas;
- Tamanho dos rótulos: Tamanho dos rótulos, aplicado somente na visualização pelo Portal.
- Tempo: Tempo que permanece na aba atual até mudar para a proxima.
Na aba gráficos iremos adicionar todos os que desejamos mostrar no painel.
Na aba "Permissões" é onde devem ser selecionados os GRUPOS DE USUÁRIOS que tem acesso a este painel em específico.
Após isso, clique em Ok. Uma mensagem “Deseja editar visualmente este dashboard?” irá aparecer na tela, clique em Sim.
Nesta tela que se abriu, com o botão direito clique em “Novo gráfico”.
Graficos
É nessa tela que serão criados os gráficos propriamente ditos. Na parte de cima, ficam os tipos de gráficos disponíveis para seleção e criação.
Título: deve-se informar o título que aparecerá para o gráfico no painel de indicadores, o identificando;
*** Os campos de criação dos gráficos podem variar de acordo com o tipo de gráfico que for selecionado.
Agora em relação às abas de cima:
Dados da série
As séries podem ser definidas como diferentes visões de análise de determinado gráfico. Por exemplo, você quer comparar a produtividade de X colaboradores. Neste caso, poderia ser criada uma série para cada colaborador.
- Série: seleção da série que será criada/editada;
- Nova série: clique para adicionar uma nova série ao gráfico;
- Excluir: exclui a série selecionada no campo “Série”.
Aba - Informações adicionais
- Subtítulo: definir um subtítulo com informações breves adicionais para o gráfico;
- Criador: por padrão, pega o usuário logado e que criou o gráfico;
- Observação: observações adicionais e/ou detalhadas sobre o gráfico.
Aba - Configurações
- Ignora filtros do painel: utilizado para casos onde os gráficos independem de filtros configurados e informados nos painéis;
- Exibir legendas: a legenda de cada dado dimensionado no gráfico;
- Posição: posicionamento da legenda dentro do gráfico. Pode ficar na Esquerda, Direita, acima ou abaixo do gráfico;
- Cor de fundo: nesse campo deve-se selecionar a cor de fundo do gráfico;
- Exibir linhas horizontais: exibe ou não linhas horizontais no fundo do gráfico;
- Cor da linha: define a cor das linhas caso as mesmas sejam exibidas;
Agora em relação às abas de baixo:
Aba - Dados
- Título da série: título da série que está sendo criada;
- Cor: cor das informações do gráfico.
- Banco: fonte de dados do gráfico. Se mantido em branco, trará do banco de dados atual;
- SQL: conector de SQL que traz as informações que alimentam o gráfico;
Aba - Dimensão
- Dimensão: juntamente da Expressão definem a proporção do gráfico criado. É a dimensão horizontal do gráfico. Deve-se selecionar aqui um dos campos trazidos pelo SQL selecionado na Aba Dados.
Aba - Expressão
- Expressão: campo que representará a dimensão vertical do gráfico. Juntamente da Dimensão define a proporção dos dados apresentados no gráfico.
- Formato: formatação final que será apresentada para o dado, podendo escolher entre inteiro, monetário, percentual, decimal com uma ou duas casas, e personalizado. Se manter “Sem formatação” obedece a mesma formatação trazida pela consulta SQL.
- Máscara: campo onde o usuário definirá a própria formatação do campo, de acordo com a necessidade. Habilitado somente se selecionar a opção “Personalizado” no campo acima.
Aba - Marcador
- Exibe marcador: quando marcado, exibe um “identificador” para cada informação apresentada, conforme imagem abaixo:
- Mostrar: o que será mostrado nesse identificador. Podem ser mostrados Valor, Percentual, Texto e percentual, Texto e Valor, Legenda, Percentual do total, texto e percentual total;
- Cor da fonte: cor do texto.
Aba - Linha de tendência
- Exibir linha de tendência: quando marcado, traça uma linha de tendência baseada nos dados apresentados pelo gráfico;
- Tipo de linha: define se a linha será Linear ou Exponencial;
- Cor da linha: cor da linha que será traçada no gráfico.
Organizando gráficos em painéis de indicadores
Para redimensionar gráficos dentro de painéis de indicadores, basta posicionar o cursor do mouse nas bordas do gráfico até que o mesmo assuma um formato de medição. Após isso, arraste essa borda até o local desejado e solte. Assim que redimensionar o gráfico, clique com o botão direito sobre o mesmo, selecione a opção "Configurações painel" e dê um Ok.
Protocolos de processo
Protocolos de processo são criados para que mostrem informações preenchidas por um usuário em colaboração com uma instância de processo.
Como exemplo, podemos utilizar um processo de Registro de Reunião. A partir das informações preenchidas neste processo, é necessário que seja gerada uma Ata da Reunião realizada. Essa ata é o que podemos chamar de protocolo de processo.
Para criar protocolos de processo, basta na lista de Processos BPM, com o botão direito do mouse clicar sobre o processo desejado. Um menu irá aparecer com várias operações que podem ser executadas. A que deve ser escolhida para esse caso é: Assistente para monitorar processos -> Protocolo...
Após clicar na opção Protocolo, a tela inicial do construtor de relatórios (Report Builder) utilizado pela Plataforma DOX será aberta para que a modelagem do protocolo seja iniciada.
A partir do Assistente para Gerar Protocolos toda a consulta SQL (necessária para a busca de informação) é montada automaticamente assumindo o nome "Processo". Essa consulta traz todos os campos contidos no processo para que possam ser mostrados posteriormente na visualização do protocolo.
Caso seja necessário trazer informações além das que são trazidas automaticamente pelo assistente, é necessário que na aba Dados, seja editada a consulta atual ou criada uma nova consulta abrangendo as novas informações que precisam estar no protocolo.
Após ter todas as informações necessárias, a modelagem do protocolo pode ser iniciada, adicionando os campos (arrastar e soltar) ao layout de acordo com as informações que precisam ser exibidas.
**** Caso no processo que você esteja trabalhando existam campos de formulário do tipo Grade de Dados, é necessário que essas informações sejam trazidas a partir de funções e procedures de banco de dados. Essas serão utilizadas para trazer as informações desejadas por meio do SQL de consulta que foi gerado automaticamente, ou então criando uma nova consulta.
Após montado o layout do protocolo, basta utilizar o atalho do Ctrl + S para salvar o seu modelo e fechar a tela de edição do Report Builder. Para salvar o protocolo na sua plataforma, basta dar um Ok na tela que se abre (Cadastro de Relatório).
Com o Protocolo salvo no DOX, para vinculá-lo ao processo desejado basta selecioná-lo no campo Protocolo Personalizado na tela de Edição/Criação de Processo, e também no campo Protocolo, dentro da aba "Atividade".
Rastreio de dados (Drill down)
Esse recurso deve ser utilizado para filtrar os dados de um gráfico a partir da escolha de um dado de outro gráfico existente no painel. Para que isso seja possível é necessário a utilização de variáveis nos SQLs de consultas dos gráficos. No vídeo mostramos um exemplo da configuração necessária, somente em dois passos: Clique aqui.
O 1º passo é colocar no SQL do conector do gráfico que irá ser filtrado. No exemplo acima a variável criado foi /*IDCLIFOREMP*/:
select count(1) as cont,
to_char(data, 'MM/YYYY') as mes
from crm_tarefa
where data >= '2018-01-01'
and idresponsavel_atual = 0/*IDCLIFOREMP*/
group by to_char(data, 'MM/YYYY')
O 2º passo é no gráfico que irá filtrar, na aba Rastreio de dados (Drill down) informar o nome da variável que irá receber o valor da série selecionada.
Nos casos da grade será necessário informar também o campo da coluna que irá ser utilizado para filtrar, nos demais gráfico o campo a ser utilizado será o campo de dimensão.
Relatório - Alterando visível de campos via calculo
Neste conteúdo iremos abordar o assunto da aba Cálculo no Report Builder. Criamos uma condição que caso o SQL da pipe retorne um valor em especifico, irá mostrar um campo no relatório, caso for diferente, irá mostrar um outro campo.
Criando relatório e o SQL:
No modulo de Inteligência selecione a opção de Relatórios:
Logo após clique em Novo [F2] para criar um novo relatório:
Caso tiver um template já pronto você poderá informar no campo Template. Em seguida clique em Criar.
Logo após, o sistema irá abrir o Report Builder. Na aba Dados vamos criar o SQL que retornará os dados que desejamos usar para aplicar a condição de mostrar ou não um campo dependendo do seu valor retornado do SQL.
Clicando em Dados > Logo após clique em Arquivo > Novo
Depois selecione a opção de Construtor de Consultas
Assim irá abrir o construtor, vá na aba de Código SQL conforme a imagem abaixo :
Assim que abrir a Pipe para informar o comando SQL clique com o botão direito e clique em Editar SQL e logo após confirme o popup de autorização da edição.
Logo após de um nome a Pipe e insira o seguinte código SQL :
Nome da Pipe: DADOS
SELECT versaodb FROM VERSAOD
Clique em Ok para salvar o código.
Criando campos
Neste topíco iremos criar apenas dois campos para alterar sua propriedade de visível ou não, clicando na Aba Desenho > Clique no icone de Texto (" A ") > Clique no espaço do relatório aonde deseja que apareça os campos.
Agora vamos tirar a propriedade do campo para que ele mostre somente quando nos retornamos o valor do SQL, Selecionando o campo de texto criado, no menu Appearance desmarque a opção de Visible, faça isso para os dois campos:
Lógica aplicada:
O retorno do SQL que desenvolvemos irá retorna a versão do banco de dados do sistema, atualmente estamos na versão 570, logo isso, irá mostrar o campo "Se for igual a 570", caso não seja 570 o retorno irá mostrar o campo "Se for diferente de 570"
Configurando Evento:
Na aba de Calculo -> Clique com o botão direito e selecione a opção Evento -> Expanda a aba Detail e clique em um dos Label's criados anteriormente -> Selecione o Evento de OnPrint:
*** o Evento OnPrint é executado assim que o relatório é mostrado em tela.
Após selecionar o evento clique no espaço abaixo para o Report Builder trazer a sintaxe padrão, neste campo será aonde iremos aplicar toda a condição para mostrar ou não os campos.
Condição usada:
if (DADOS['VERSAODB'] = '570') then
begin
Label1.Visible := True
end
else
begin
Label2.Visible := True
end;
Usando dados da pipe para aplicar a na condição: No menu que se encontra no canto inferior direito, Selecione a opção Dados -> Clique na Pipe que foi criada ("DADOS") -> Arraste o campo que irá retorna para a condição
Alterando a propriedade do campo para visible: Selecione a aba Objetos > Clique no Label a qual deseja alterar a propriedade e logo após arraste a opção que deseja alterar para o editor.
*** Atribuímos True para que apareça o campo assim que mostrar o relatório. Aplicando todas essas configurações basta ir na aba desenho e salvar o relatório.
Demonstrando o Relatório:
**** Durante a demonstração é alterado a informação do banco para que o relatório imprima caia nas duas condições que criamos.
Condição simplificada:
Label1.Visible := (DADOS['VERSAODB'] = '570') ;
Label2.Visible := not (DADOS['VERSAODB'] = '570') ;
Não precisaria do If aplicando a condição como já foi citado, neste caso ele irá ver se o valor que retornou do SQL é o 570 então será True e para o segundo Label ele verificaria se caso o de cima fosse False então ele negaria essa condição passando a ser True, mostrando o segundo campo. Uma forma mais simples de aplica a mesma condição.
Relatório - Alterar nome do relatório via processo
Caso de uso: Ao gerar um novo protocolo o sistema traz por padrão o protocolo + o código do processo, porém existe situações aonde o relatório gerado necessita ter o nome de um colaborador/cliente para salvar no GED ou arquivar em alguma pasta específica.
Alterando o nome do protocolo:
- Na aba variáveis do processo
- No canto inferior esquerdo existe um botão com o nome "Usar variável sistema"
- Clicando nela abrirá uma nova opção de "Nome do arquivo de protocolo" ao clicar neste campo o sistema irá gerar uma nova variável, /*NOMEPROTOCOLOPROCESSO*/ nesta variável você pode alterar o valor padrão dela ou definir através do evento "definir valor na variável". Está variável é responsável pelo nome do protocolo gerado.
Variável:
Ao gerar o relatório:
Relatório - Buscar informações da grade de dados preenchida
Na ferramenta DOX é possível buscar as informações de uma grade de dados preenchida de uma instância, bem como gerar um relatório com essas informações. Isso é bem comum entre os clientes que utilizam esse sistema.
Criação do BPM
Neste exemplo, foi criado um processo onde seria adicionado uma Grade de Dados para informar o nome do produto, e o valor. Após o preenchimento, o usuário pode clicar no botão SALVAR e depois Imprimir para gerar um relatório que busca a informações do formulário.
*** O comportamento da grade de dados é: os dados inseridos só estarão salvos no banco, quando o usuário clicar em 'Salvar" ou "Próximo". A diferença desses dois botões é que o "Salvar" salva os dados e permanecesse na atividade, e o "Próximo" salva os dados e passa para a próxima atividade.
Inicialmente foi criado no processo uma única atividade contendo os campos da grade, como na imagem abaixo.
Colunas da grade:
Não esquecer também de criar um evento de "Definir valor variável" informando a variavel IDPROCESSO (que recebe o valor da variável de sistema):
Criação do relatório
Logo depois desta atividade, no módulo de Inteligência em Registros de operações e Painéis > Relatórios , foi criado um novo relatório que foi logo vinculado ao processo Inserir Produto, feito anteriormente.
Criar um novo relatório para trazer as informações do processo.
Na criação da pipe, temos que ter um SQL que retorne o valor que foi inserido na grade. Neste exemplo nós criamos de acordo com o banco PostgreSQL, caso seu banco seja diferente, altere o SQL:
select pkg_ema.retorna_coluna_grade_texto(x.idprocesso, x.idatividade, x.idformulario, 1, x.idvalor) as nome,
pkg_ema.retorna_coluna_grade_valor(x.idprocesso, x.idatividade, x.idformulario, 2, x.idvalor) as valor
from crm_processo_grade_valor x
where idprocesso = 0/*IDPROCESSO*/
and idatividade = 02/*IDATIVIDADE*/
and idformulario = 01/*IDFORMULARIO*/
and idrepeticao = (select max(idrepeticao)
from crm_processo_grade_valor
where idprocesso = x.idprocesso
and idatividade = x.idatividade)
and idgrade = 1 order by idvalor
Em seguida, foi desenhado o template (altere como achar melhor):
Criado os filtros de acordo:
Por fim, é vinculado o relatório na atividade do processo onde preenchemos a grade:
** LEMBRANDO QUE:
Como os valores inseridos na grade ainda não estão salvos, não basta preencher e em seguida imprimir o relatório. Ou é clicado em "Salvar" ou em "Proximo" e gerado o relatório em alguma outra atividade.
Resultado final:
Em anexo, BPM e relatório.
Relatório - Como fazer cálculos de valores
Neste conteúdo será abordado sobre como fazer cálculos (soma, divisão, multiplicação, etc) de valores no Report Builder e em seguida mostrar esse resultado.
Criando Relatório:
No módulo Inteligência vá em Relatórios, logo após clique em Novo(F2) para criar um novo relatório.
Cadastre as informações iniciais e clique em Criar.
Criando a Pipe para trazer os dados:
- Na aba Dados
- Clique em Arquivo e logo após em Novo (Ctrl + N)
- Selecione a opção de Construtor de Consultas
- Selecione a aba Código SQL e com o botão direito do mouse selecione a opção de Editar SQL
- Informe o seguinte código SQL e informe o nome da Pipe como Dados.
select FIRST 25 idnfs,
especie_embalagem,
replace(usuario,'GRASIANE','Fórum Ema'),
valortotalitens
from nfs
where especie_embalagem <> '.'
*** existe um replace no codigo para alterar o nome, para funcionar com os nomes corretamente deixe apenas usuario sem o replace.
Criando os campos de calculo:
Para criar o campo de cálculos vamos primeiramente criar um grupo sobre um dos dados retornados do SQL, Na opção de Relatório que se encontra no topo do Report Builder, selecione a opção de grupo ou pressione CTRL + G. Escolha o campo em que deseja somar todas as linhas retornadas.
Agora vamos criar o campo de cálculo, basta clicar no ícone de calculadora(Cálculo) e logo após clicar no espaço em que deseja.
- **** Existe duas opções, uma para fazer cálculos com dados retornado do SQL ou um campo de cálculo normal, para o valor total vamos escolher a opção do SQL.
Selecionando o campo basta vincular a ele o campo retornado do SQL:
Caso não esteja a opção de somar basta clicar com o botão direito e selecionar a opção de Cálculo -> e vincule o grupo e logo após selecione a opção de somar.
Agora para fazer subtração/Multiplicação/Divisão vamos criar o campo de cálculo normal: Selecione o campo e clique no local desejado.
Com o botão direito selecione a opção de cálculo:
Após clicar em cálculo, irá abrir uma nova janela com algumas opções. No canto inferior direito temos três opções:
- Dados.
- Objetos.
- Linguagem.
Em dados irá mostrar logo acima os campos retornados do SQL, Objetos irá mostrar os campos do relatório já criado, esses são os dois campos que iremos utilizar. Iremos selecionar o campo direito de objetos primeiramente.
Clicando na aba Objetos e selecionando o campo logo acima na parte de Caixa de ferramentas, Procure abaixo pela opção Value e arraste para a parte branca, e em seguida informe a soma/divisão ou multiplicação que deseja fazer.
Soma : Value := DBCalc1.Value + 500
Divisão : Value := DBCalc1.Value / 2
Subtração: Value := DBCalc1.Value - 500
Multiplicação: Value := DBCalc1.Value * 2
Você também consegue realizar cálculos entre campos, selecionando eles e arrastando para o campo por exemplo:
Value := DBCalc1.Value + Dados['VALORTOTALITENS']
Resultado final
Relatório - Como gerar QR Code através do componente
Este tópico serve para exemplificar como incluir um componente de QR code em seus relatórios, podendo assim utilizar em protocolos personalizados no portal.
- O primeiro passo é que você selecione o componente: DB2DBarCode em seu relatório, onde sua primeira forma será idêntica a do print.
- Após selecioná-lo, você deve ir em suas propriedades para alterar o campo "BarCodeType".,
- Assim que você alterar o campo para este destacado em vermelho, bcQRCode, seu Qr Code estará pronto visualmente.
- Após isso, configure o QR code para que puxe o link que você definir. Em sua pipe, você deve puxar um link no select para que ele esteja em seus dados, e você possa selecionar, como no print:
*** Sempre verificar se o link é acessível e liberado por acesso externo.
Relatório - Componente CheckBox
Este conteúdo serve para ensinar como fazer o uso do componente CheckBox nos relatórios de processo.
É importante lembrar que esse componente só trabalha com valores inteiros, e não funciona em resultados de lista, apenas no caso de ter um único valor selecionado.
Primeiro, você precisa ter um campo na pipe que chame por um valor inteiro. No teste a seguir, fizemos apenas uma consulta simples que puxa um valor de sim ou não (porém, puxando pelo id).
Retorno SQL:
select pkg_ema.retorna_valor_variavel_texto(idprocesso, 40) as checkbox
from crm_processo
where idprocesso = 465/*IDPROCESSO*/
Na configuração do CheckBox primeiro você deve selecionar o componente e deixá-lo em seu relatório:
Agora, para a configuração deste componente, você precisa selecioná-lo e fazer algumas alterações. A primeira configuração a ser feita é selecionar qual campo ele deve validar, dentro da opção "Data". Basta você selecionar a Pipe (tabela de consulta) e acima, o campo, conforme o print abaixo.
Em seguida, em BooleanTrue, você deve colocar qual valor faz com que o CheckBox seja marcado. Como nossa consulta retorna o "1", colocamos o componente para ficar marcado caso o valor seja 1.
Dessa forma, na visualização, ele retorna esse CheckBox marcado.
Relatório - Componente TableGrid
Nesse tópico iremos mostrar um pouco sobre como mexer com as propriedades do componente TableGrid, nos relatórios de processo. Basta seguir os passos abaixo:
Para adicionar mais quadrados nas laterais, deve ser mexido no parâmetro "ColCount", em Layout, para adicionar mais linhas, no "RowCount":
Se você já tiver redimensionado o componente antes de mexer nesses campos, então ele ficará desproporcional e você precisará ajeitar. Caso contrário, virá simétrico.
Após inserir a opção "10" em ColCount, ficou da seguinte forma:
Você pode então, inserir algum registro dentro dos quadrados da tabela:
Caso deseje mudar a cor do quadro, pode fazer tanto apenas na borda quanto no quadro inteiro. No print a seguir, mostra onde se altera a cor do quadro. Acima dele (Border), você muda apenas a borda.
Você pode também escolher vários tipos de estilo para a coloração, como deixar apenas linhas coloridas, entre outros.
Se quiser fazer um efeito, com mais de uma cor, embaçado, você pode utilizar a opção "Gradient" ao invés de "Brush". E se for realizar cálculos, o report vai guardar cada "quadrado" de sua grade com todos os campos de dentro, para que possa usá-los da forma que desejar.
Relatório - Criar colunas de dados retornados via SQL
Neste conteúdo, iremos abordar somente a parte de configuração de relatório. Caso queira saber como criar a pipe para inserir o comando SQL clique aqui.
Comando SQL usado:
*** note que colocamos o nome "DADOS" para a pipe.
Configurando Relatório:
Para configurar o relatório iremos criar um SubReport para que nele seja retornado o resultado da consulta e criar as colunas.
- Barra de ferramentas
- Canto superior, selecione a opção de SubReport:
Ao criar o SubReport você deve vincular a pipe criada a ele. Para isso acesse o sub no canto inferior esquerdo conforme a imagem abaixo:
Ao acessar ele no canto esquerdo irá ter uma opção de Data > DataPipeLine, neste campo vincule a pipe criada do SQL.
Logo após, na estrutura do relatório selecione Report e procure no Layout o campo Columns e preencha com a quantidade de colunas. Neste exemplo, usamos 2.
Logo após, no campo detalhe coloque os campos que foram retornados do SQL. Neste exemplo usamos apenas IDPROCESSO e ASSUNTO.
Salve e gere o relatório.
Resultado final:
Versão Homologada: 12.8.7
Relatório - Filtrar por período
Neste conteúdo veremos como filtrar os dados do relatório por período, informando o período de data e buscando as informaçóes dentro deste período.
SQL utilizado na Pipe do exemplo:
select IDPROCESSO,
DESCRICAO,
DATAHORA
from crm_processo //Data inicio padrão do sistema Data fim padrão do sistema
where datahora between to_date('1900-01-01','YYYY-MM-DD') AND to_date('2500-12-31','YYYY-MM-DD')
O sistema irá pegar as datas padrões informada no SQL como 1900-01-01 e 2500-12-31 e substituir pela data informada no filtro quando for via portal ou estúdio.
Após criar a pipe com o SQL e ajustar o relatório com as informações como no exemplo abaixo:
Iremos configurar em filtros os dados e campos necessários para o funcionamento.
- No campo Rótulo informe o nome que aparecerá como título do filtro.
- No campo Controle informe o tipo de filtro que deseja fazer, neste caso Data.
- No campo de Pipe informe o titulo da pipe criada dentro do Report builder.
- Na coluna Campo informe o nome PERIODO, o sistema irá interpretar que será um campo que substituirá as datas.
- No campo Operador deve ser informado o tipo 8 "Entre".
- Logo após confirme e teste o relatório, via portal ou estúdio.
Um outro exemplo de SQL, nesse caso estamos trazendo do processo o mês e ano que era preenchido:
(NOTA.EMISSAO BETWEEN
TO_DATE(CASE WHEN '/*MESANOINICIO*/' LIKE '%MESANOINICIO%' THEN '01/1900' END,'MM/YYYY') AND
LAST_DAY(TO_DATE(CASE WHEN '/*MESANOFIM*/' LIKE '%MESANOFIM%' THEN '12/2500' END,'MM/YYYY')))
Relatório - Linhas Zebradas
Vamos compartilhar uma dica relativamente simples mais que pode ajudar quem quer deixar seus relatórios um pouco mais bonitos e profissionais ou até mesmo que possui a demanda mais não sabe como fazer, vamos ver neste tópico como tornar as linhas do relatório zebradas, ou seja, uma branca e uma com cor.
Etapa 1
Criar o relatório e personalizar todo seu layout de exibição conforme imagem abaixo:
Etapa 2
Adicione o componente Shape/Poligono dentro do container Detalhe, após defina nas propiedades do componente, sub menu PEN, opções:
Color = clWhite / Style = psClear / Width = 0;
Removemos assim as bordas do componente.
Etapa 3
Conforme a imagem, defina a LARGURA e a ALTURA DO ANTECESSOR, assim o componente terá o tamanho total da linha, após utilize a opção RECUAR, até que o "Shape1" fique atrás de todos os dados que devem ser impressos no container detalhe.
Etapa 4
Acesse a aba CÁLCULO e selecione com o botão direito o menu EVENTOS.
Etapa 5
Já na opções EVENTOS, encontre e selecione o componente "Shape1".
Nos Eventos para o Shape1, selecione o evento OnPrint(ou seja, quando for exibido), assim vamos inserir o código conforme na imagem e disponibilizado a abaixo dela com a explicação.
Explicação:
Declarada "tag" do tipo inteiro para usarmos como verificação se a linha é impar ou par, sempre que encontra uma linha 1(impar) pinta o shape de clWhite(branco) e define que a próxima linha será 0(par), do mesmo modo ao encontrar uma linha 0(par) pinta o shape de cl3DLight(Cinza claro) e define que a próxima linha será 1(impar).
var
tag: integer;
begin
if Tag = 1 then
begin
Shape1.Brush.Color := clWhite;
Tag := 0;
end
else
begin
Shape1.Brush.Color := cl3DLight;
Tag := 1;
end;
end;
Resultado - Impressão do Relatório
Existem diversas cores que podem ser usadas em todos os componentes, segue abaixo para consulta e otimização de seus relatórios:
Dentre outras.
Relatório - Melhorando qualidade e imagens na exportação para PDF
Siga os passos abaixo:
- Abria o relatório que contem as imagens que deseja melhorar.
- Na canto esquerdo Estrutura do Relatório clique na opção Report.
- Logo após em Output - File procure pela opção PDFSettings e expanda esta opção.
- Depois de expandir procure pela opção ScaleImages e desmarque ela.
- Salvando o relatório é só testar.
Relatório - Mostrar assinatura de processo
Caso de uso: Em um processo BPM, foi solicitado a assinatura do gestor. Ao incluir a assinatura, é necessário trazer essa informação ao gerar o relatório. Para isso, siga os passos abaixo:
No Report builder primeiramente iremos retorna o valor da variável do tipo Assinatura do processo criando a pipe SQL.
Criando a PIPE:
Criação do SQL:
select valorblob
from crm_processo_variavel
where idvariavel = 1 // Nesta linha estamos pegando o codigo da variavel do processo
and idprocesso = 0/*IDPROCESSO*/ // Nesta linha estamos setando o codigo do processo que irá gerar o relatório, lembrando que o processo deve ter a variavel.
Salve e clique em "Ok".
Inserindo o campo de assinatura ao relatório:
- Selecione o campo DBImage(componente de imagem), logo após clique no local em que deseja mostrar a assinatura.
- Ao inserir ele ao relatório clique no campo e selecione a pipe e coluna do SQL conforme a imagem abaixo.:
Para que o tamanho da assinatura fique do tamanho do campo que você colocou basta seguir a seguinte ordem:
1. Selecione o campo.
2. Marque a opção que se encontra a esquerda MaintainAspectRatio
3. Marque a opção Stretch para que a visualização do PDF seja a melhor possível.
Segue a imagem abaixo:
Feito isso só salvar o relatório e vincular ele na atividade no processo em que deseja.
Relatório - Mostrar filtros na visualização
Em algumas situações, precisamos mostrar os valores inseridos/selecionados no filtro do relatório na própria visualização do mesmo para que o usuário saiba os parâmetros inseridos/selecionados dos filtros dos dados gerados.
Neste exemplo, este é um relatório que mostra apenas os dados inseridos nos diversos tipos de campos da tela de filtros, e como cada tipo pode ser tratado para a visualização ideal no relatório gerado.
Na configuração da Pipe, devemos utilizar na consulta SQL, as descrições das variáveis que serão usadas no filtro (Ex: '/*NOMEVARIAVEL*/').
Configuramos os campos da Pipe na edição do template do relatório.
Finalizando, criamos os filtros vinculados à Pipe criada anteriormente e com as mesmas descrições de variáveis.
Relatório - Mostrar todos os dados caso nada seja selecionado no filtro
Ao gerar um relatório com filtro, em algumas situações, é necessário que, se o usuário não selecionar nenhuma informação, o sistema gera os dados da consulta sem utilizar a condição do filtro.
Preste atenção neste exemplo que mostraremos a seguir:
Na configuração da Pipe, há o SQL com a condição que será inserida para filtrar os resultados por filial:
Na edição do template do relatório, as configurações foram feitas como na imagem a baixo:
Para finalizar a criação deste relatório, na imagem abaixo está o filtro que será vinculado á Pipe criada anteriormente, com as mesmas descrições das variáveis.
Resultado:
Relatório - Report Builder
Sabemos que relatórios e protocolos de processo são muito importantes para o acompanhamento e gestão de toda a informação que percorre uma empresa. Mas, como são criados esses relatórios?
Temos integrada à Plataforma DOX o Report Builder, um dos Gerenciadores de Relatórios mais utilizados mundialmente. Para acessá-lo e iniciar a criação de relatórios, você poderá entrar no Módulo de Inteligência e na guia de operações clicar em Relatórios.
Criação
Para criar um relatório, acesse essa tela e clique no botão "Novo[F2]".Nessa tela de criação que será aberta, alguns campos de configuração e identificação devem ser preenchidos:
- Descrição: nome que será exibido para o relatório na lista de relatórios;
- Título menu: nome que será exibido ao usuário no menu do sistema ou no Portal;
- Menu: menu do sistema ou portal onde o relatório será exibido;
- Grupo de Indicadores: agrupador que serve para uma maior organização dos documentos de cada setor. Comumente usado para agrupar os relatórios, painéis de indicadores e cubos de decisão dos setores da empresa, facilitando a visualização no portal.
- Observação: informações adicionais e/ou específicas sobre o relatório que está sendo criado;
- Responsável: responsável pela manutenção do relatório;
- Banco de dados: banco de dados de onde virão as informações do relatório. Caso mantido em branco trará do banco de dados conectado por padrão no software;
- Template: não é necessário informar esse campo em um primeiro momento. O mesmo será preenchido automaticamente após clicar no botão Criar e salvar o layout montado do relatório.
Ao clicar em Criar, você será redirecionado para a tela de criação de relatórios do Report Builder. Nela, encontrará alguns recursos que irão auxiliar na criação do seu relatório para que o mesmo apresente informações precisas.
Componentes:
Conforme imagem abaixo, podemos notar que o Report Builder é composto por partes essenciais para a modelagem de um relatório. Essas serão detalhadas abaixo de acordo com seu número representado na imagem.
- Label: campo do tipo texto plano que receberá um valor fixo, imutável;
- Variável do sistema: campo que armazena por padrão valores como data e/ou hora, número de páginas, número da página atual, entre outros;
- Campo utilizado para inserir imagens em relatórios. Uma dica para utilização desse componente é que os parâmetros “Ajustar” e “Manter Proporções” estejam marcados ao clicar com o botão direito sobre o mesmo;
- SubReport: como o próprio nome já diz, são “sub-relatórios”. Esse componente é utilizado geralmente para agrupar informações em um relatório quando o mesmo apresenta uma grande variedade de informações. Para cada “tipo” de informação pode ser criado um subreport.
Ainda na barra de ferramentas, você poderá utilizar de alguns recursos de alinhamento, tamanho, formato, e muitos outros. Você pode habilitar ou desabilitar esses recursos entrando no menu Visualizar -> Barra de ferramentas -> Desmarcar/marcar as opções abaixo de “Alinhamento ou espaçamento”.
Estrutura do Relatório
Nessa parte da tela ficarão todos os componentes presentes na barra de ferramentas que foram adicionados ao relatório, clicando com o botão direito sobre eles você terá acesso a algumas propriedades do componente.
Ex: Criado um campo Texto. Clicando com o botão direito sob ele, algumas opções aparecem:
Propriedades dos componentes
Todos os componentes disponíveis para utilização no Report Builder possuem propriedades, como: cor, tamanho, altura, largura, entre outros. É nessa área do relatório que você poderá manipular as propriedades de um componente para que ele fique do jeito que você precisa. Para isso, você precisa dar um clique simples sobre o componente desejado, seja na área Estrutura do Relatório ou pela área de modelagem.
Estrutura de Dados
Aqui ficarão todas as Pipes criadas no relatório. Caso não saiba o que é e para que são utilizadas Pipes, consulte o item Pipes mais abaixo.
Campos da Pipe
Mostra os campos presentes na Pipe selecionada acima. Usando como exemplo a imagem acima, em TemplatePipe temos campos como descrição, usuário, datahora, idtemplate, entre outros, porém, em uma Pipe “Processo” poderíamos ter os campos idprocesso, responsável, objetivo, entre outros.
Área de modelagem do relatório
Aqui é onde poderão ser inseridos os componentes disponibilizados pelo Report Builder. Por padrão essa área é separada em três partes, sendo elas:
- Cabeçalho: componentes inseridos aqui se repetirão em todo o relatório. Geralmente utilizado para descrever os títulos das colunas que serão exibidas no relatório, para inserção de imagens, quantidade de páginas, entre outros;
- Detalhe: aqui serão inseridas as informações que devem ser exibidas no seu relatório. Geralmente serão informados aqui campos que tenham interação com banco de dados, como o DBText ou Texto Formatado.
- Rodapé: assim como o cabeçalho, componentes que inseridos nessa parte do relatório serão exibidos em todas as páginas do mesmo.
Além das opções citadas acima, podem ser utilizadas também:
- Título: nesta área é possível configurar as informações para serem impressas antes do cabeçalho na visualização do relatório, são comumente utilizados nessa área imagens com a logomarca da empresa e textos padrão de identificação do relatório.
- Sumário: nesta etapa é possível configurar totalizadores, esses irão gerar resultados com base nos dados que foram apresentados no Detalhe do relatório.
Pipes
As pipes são parte importante da criação de um relatório. São elas as responsáveis por trazer dados para o relatório por meio de consultas SQL. A criação de uma Pipe é feita diretamente pela Aba Dados do relatório clicando no menu de Arquivo -> Novo…
Criar um novo:
Construtor de consultas:
Na tel "Código SQL":
Em seguida, criar o SQL que trará os dados para o relatório. Ex: (SELECT IDUSUARIO, USERNAME FROM USUARIO):
Imprimir nome de usuário que emitiu o relatório
Utilizando o exemplo de imagem acima, pode-se perceber que na área "Rodapé" encontra-se o seguinte texto: "Emitido por: " sem nenhum dado complementar a essa informação.
Para adicionar o nome de usuário que está visualizado determinado relatório ou protocolo de processo, é necessário que um componente de Texto seja adicionado ao relatório. Como em nosso rodapé já temos uma área dedicada a mostrar o usuário que está emitindo o relatório, vamos posicionar o componente de texto logo ao lado dos dizeres "Emitido por: ".
Evento para Label2, selecionar o evento "OnGetText". Feito isso, basta informar entre o Begin e End o seguinte script:
Text := UsuarioLogado;
Essa linha irá informar ao sistema que o texto que será exibido no relatório para o componente de texto é o nome do usuário logado, e, consequentemente, quem está visualizando o relatório. Após isso, deve-se voltar para a aba Desenho e salvar o template utilizando a tecla de atalho Ctrl + S ou então no menu Arquivo selecionar a opção Salvar.
Com o relatório salvo, basta visualizá-lo nos menus do sistema ou lista de relatórios para que o nome do usuário logado seja exibido ao lado do texto "Emitido por: " no rodapé do relatório.
Visualizar relatório no portal
Neste tópico veremos a mudança realizada na impressão dos relatórios via portal, este recurso está disponível a partir da versão : 12.14.0
Oque foi mudado:
- Ao abrir o relatório caso não tenha filtro já irá carregar o mesmo na pagina do Portal, e caso queria abrir em uma nova guia terá um botão no canto superior direito para realizar tal função
- Caso o relatório tenha filtro ao abrir a tela do relatório aparecera uma barra no canto direito solicitando os filtros, e caso queria aplicar novos filtros para visualizar no portal, terá um botão de filtro identifico ao do Colaborar
Obs: Neste demonstração não havia filtros no relatório logo o botão de filtro não aparece.