BI

Módulo de inteligência (Painéis de indicadores, Gráficos, Relatórios, Cubos de decisões)

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): 

image-1638379317135.png

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.

Para a construção do Drill Down usaremos gráficos do tipo:
  • Grade;
  • Rosca;
  • Texto.
Grupos de indicadores: 

Antes de criar os gráficos crie um grupo de indicadores chamado Administrativo.

image-1638386715612.png

Painéis de indicadores

image-1638386764340.png

Gráfico 1: Top 15 Usuários
ORACLE POSTGRESQL
select * 
from (select USUARIO,
count(1) ACESSOS
from acesso_sistema
group by usuario
order by 2 desc) dados
where rownum <= 15
union
select 'Total' USUARIO,
count(1) ACESSOS
from acesso_sistema
select * 
from (select USUARIO,
count(1) ACESSOS
from acesso_sistema
group by usuario
order by 2 desc limit 15) dados
union
select 'Total' USUARIO,
count(1) ACESSOS
from acesso_sistema

image-1638387093393.png

Configurações Painel
Acesse as Configurações Painel clicando sobre o gráfico com o botão direito do mouse  e preencha os campos:
Gráfico 2: Acessos Mês/Ano:
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)
Configurações Painel:

image-1638387301869.png

Gráfico 3: Total Acessos:
select count(1) acessos 
from acesso_sistema
where usuario = '/*USU*/' or 'USU' = substr('/*USU*/', 3, 3) or '/*USU*/' = 'Total'

image-1638387385283.png

Connfigurações painel:
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: 

image-1638283783792.png

Com o novo recurso: 

image-1638283807623.png

Como configurar: 

image-1638283864956.png

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

image-1638379796077.png

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.

Criando gráfico

Gráfico: Saldo em Estoque

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
Configurações Painel
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.

image-1638379829051.png

image-1638379863459.png

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.

image-1638379904245.png

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
Para inicar, vá até o cadastro de Painés de Indicadores, no módulo inteligência, e preencha os campos de acordo com as informações abaixo

image-1638386094396.png

Gráfico: Contas à Receber
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
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:

Gráfico: Contas à Pagar
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
Configurações Painel
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:

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)

image-1638185300290.png

Logo após aperte no botão Novo(F2) e insira as informações necessárias e o SQL da View:

image-1638185402948.png

*** 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:

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.

image-1638185528116.png


No exemplo, o campo Cidade se encontra como LinhaMé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.

image-1638185565680.png

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.

image-1638191400808.png

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:

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

image-1638191497278.png

 

image-1638192070686.png

image-1638192152197.png

image-1638192204104.png

image-1638192244422.png

  1. Valores fixos: 0, 0.5, 100, 200, 5000, etc.
  2. Valores dos outros campos configurados no cubo: /*QTDPECAS*/, /*QTDMESES*/, /*MES*/, /*TRIMESTRE*/, etc.
  3. Expressões condicionais: seguindo o formato “Se ? Entao ? Senao”;
  4. Operadores matemáticos básicos: adição (+), subtração (-), multiplicação (*), divisão (/));
  5. 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:

 

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:

image-1637960350661.png

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:

image-1637960512649.png

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.

image-1638203424640.png

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.

image-1638203475669.png

Abrindo a tela de filtros, devem ser configurados os seguintes campos, demonstrados na imagem:

image-1638203498439.png

image-1638203727286.png

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.

image-1638203953590.png

image-1638204058948.png

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.

image-1638205104810.png

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.

image-1638205140757.png

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:

image-1638205875298.png

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:

image-1638205899816.png

 

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. 

image-1638184205205.png

 

Gráficos

Acesse módulo de inteligência > Gráficos > Botão direito na tela> Importar ou exportar Gráfico. 

image-1638184478901.png

Relatórios

Acesse módulo de inteligência > Relatórios > Botão direito na tela> Importar ou exportar. 

image-1638205457765.png

Cubos de dados

Acesse módulo de inteligência > Cubos (OLAP)> Botão direito na tela> Importar ou exportar Cubo de decisão. 

image-1638184747487.png

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

image-1637958287821.png

 

image-1637958320546.png

 

image-1637958384070.png

Na aba gráficos iremos adicionar todos os que desejamos mostrar no painel.

image-1638208666625.png

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;

image-1637958727623.png

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

image-1637959356878.png


Aba - Informações adicionais

image-1637959480162.png


Aba - Configurações

image-1637959597816.png

image-1637959630399.png

 
 
Agora em relação às abas de baixo:

Aba - Dados

image-1637959728034.png


Aba - Dimensão

image-1637959862843.png


Aba - Expressão

image-1637959889434.png


Aba - Marcador

 

image-1637960002784.png


Aba - Linha de tendência

image-1637960073596.png

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

image-1638196609757.png

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.

image-1638196659707.png

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.

image-1638196721845.png

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

image-1638197452687.png

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: 

image-1638212248581.png

Logo após clique em Novo [F2] para criar um novo relatório: 

image-1638212345392.png

image-1638212318223.png

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

image-1638213822792.png

Depois selecione a opção de Construtor de Consultas

image-1638213852556.png

Assim irá abrir o construtor, vá na aba de Código SQL conforme a imagem abaixo :

image-1638213878963.png

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.

image-1638213967362.png

image-1638213985830.png

Logo após de um nome  a Pipe e insira o seguinte código SQL :
Nome da Pipe: DADOS

SELECT versaodb FROM VERSAOD

image-1638214027467.png

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.

image-1638214163616.png

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: 

image-1638214240686.png

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: 

image-1638214508765.png

image-1638214606652.png

*** 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

image-1638214810984.png

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.

image-1638214898128.png

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

image-1638215010837.png

 

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: 

image-1638219219310.png

Variável:

image-1638219266855.png

Ao gerar o relatório: 

image-1638219391951.png

 

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.

image-1638364401261.png

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

image-1638365560683.png

Inicialmente foi criado no processo uma única atividade contendo os campos da grade, como na imagem abaixo.

 

image-1638365730074.png

Colunas da grade:

image-1638365767812.png

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): 

image-1638366102970.png

 

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.

image-1638365951293.png

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):

image-1638366340531.png

Criado os filtros de acordo:

image-1638366685232.png

Por fim, é vinculado o relatório na atividade do processo onde preenchemos a grade: 

image-1638366405267.png

** 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: 

image-1638366588583.png

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.

image-1638216020231.png

Cadastre as informações iniciais e clique em Criar


Criando a Pipe para trazer os 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.

image-1638216434672.png

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.

image-1638216514541.png

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.

image-1638216586890.png

Selecionando o campo basta vincular a ele o campo retornado do SQL:

image-1638216630639.png

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.

image-1638216717319.png

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.

image-1638216948998.png

Com o botão direito selecione a opção de cálculo:

image-1638216984749.png

Após clicar em cálculo, irá abrir uma nova janela com algumas opções. No canto inferior direito temos três opções:

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

image-1638217144211.png

Você também consegue realizar cálculos entre campos, selecionando eles e arrastando para o campo por exemplo:  
  Value := DBCalc1.Value + Dados['VALORTOTALITENS'] 

image-1638217318246.png

 

Resultado final 

 

image-1638217366432.png

 

 

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.

image-1638283405119.png

image-1638283451794.png

image-1638283484642.png

image-1638283523211.png

*** 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*/

image-1638290458167.png

Na configuração do CheckBox primeiro você deve selecionar o componente e deixá-lo em seu relatório: 

image-1638290540754.png

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.

image-1638290618978.png

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.

image-1638290671882.png

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: 

image-1638290968090.png

Para adicionar mais quadrados nas laterais, deve ser mexido no parâmetro "ColCount", em Layout, para adicionar mais linhas, no "RowCount":

image-1638291043864.png

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:

image-1638291082183.png

Você pode então, inserir algum registro dentro dos quadrados da tabela: 

image-1638291169033.png

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.

image-1638291229557.png

Você pode também escolher vários tipos de estilo para a coloração, como deixar apenas linhas coloridas, entre outros.

image-1638291281274.png           image-1638291300679.png

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.

image-1638291345792.png

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: 

image-1638282702640.png

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

image-1638282458457.png

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:

image-1638282526748.png

Ao acessar ele no canto esquerdo irá ter uma opção de Data DataPipeLine, neste campo vincule a pipe criada do SQL.

image-1638282576873.png

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.

image-1638273208246.png

Logo após, no campo detalhe coloque os campos que foram retornados do SQL. Neste exemplo usamos apenas IDPROCESSO e ASSUNTO.

image-1638273316699.png

Salve e gere o relatório. 

Resultado final: 

image-1638282824550.png


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:

image-1638561741925.png

Iremos configurar em filtros os dados e campos necessários para o funcionamento.

image-1638561821547.png

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:

image-1638209865629.png

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.

image-1638210011984.png

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.

image-1638210305781.png

Etapa 4

Acesse a aba CÁLCULO e selecione com o botão direito o menu EVENTOS.

image-1638210398564.png

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.

image-1638210547863.png

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

image-1638210874334.png

Existem diversas cores que podem ser usadas em todos os componentes, segue abaixo para consulta e otimização de seus relatórios:

image-1638210920551.png

Dentre outras.

 

 

 

 

Relatório - Melhorando qualidade e imagens na exportação para PDF

Siga os passos abaixo: 

image-1638218364044.png

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: 

image-1638219987889.png

image-1638220065999.png

image-1638220108186.png

image-1638220144909.png

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:

image-1638220361778.png


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: 

image-1638220406425.png

Feito isso só salvar o relatório e vincular ele na atividade no processo em que deseja.

image-1638220446466.png

 

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.

image-1638303845680.png

Na configuração da Pipe, devemos utilizar na consulta SQL, as descrições das variáveis que serão usadas no filtro (Ex: '/*NOMEVARIAVEL*/').

image-1638305974695.png

Configuramos os campos da Pipe na edição do template do relatório.

image-1638306005757.png

Finalizando, criamos os filtros vinculados à Pipe criada anteriormente e com as mesmas descrições de variáveis.

image-1638306209975.png

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: 

image-1638362227886.png

Na edição do template do relatório, as configurações foram feitas como na imagem a baixo:

image-1638362679001.png

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.

image-1638362711993.png

Resultado: 

image-1638362968395.png

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.

image-1638193786627.png

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:

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.

image-1638193945003.png

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.

image-1638194332228.png

 

  1. Label: campo do tipo texto plano que receberá um valor fixo, imutável;
  2. 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; 
  3. 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;
  4. 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”.

image-1638194450041.png

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:

image-1638194636302.png

 

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.

image-1638194872253.png

 

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.

image-1638194959396.png

 

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.

image-1638195068829.png

Á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:

Além das opções citadas acima, podem ser utilizadas também:

image-1638195376388.png

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…

image-1638195443131.png

Criar um novo:

image-1638195458025.png

Construtor de consultas:

image-1638195495209.png

Na tel "Código SQL":

image-1638195591125.png

 

Em seguida, criar o SQL que trará os dados para o relatório. Ex: (SELECT IDUSUARIO, USERNAME FROM USUARIO):

image-1638195693226.png

image-1638195783881.png

 

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: ".

image-1638195955780.png

Evento para Label2, selecionar o evento "OnGetText". Feito isso, basta informar entre o Begin e End o seguinte script:

Text := UsuarioLogado;

image-1638196214444.png

 

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.

image-1638196271274.png

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:

  1.  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
  2. 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.

image-1640633096801.gif