Ir para o conteúdo principal

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.