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.