Skip to main content

PEX - Utilizar Campo Adicional da FK

Neste tópico iremos adicionar, por meio de uma evento ao sair do campo (PEX), uma informação do campo adicional de uma FK em um formulário dissertativo.

Campo adicional são os demais campos da tabela (ou view) fora o código ou descrição que o modelador deseja utilizar no procedimento. Atualmente o sistema mostrar apenas o ID + DESCRIÇÃO para o usuário na FK, com os campos adicionais as demais informações que a tabela puxa podem ser utilizados no procedimento.

Pode-se utilizar uma tabela sem problemas, mas neste exemplo vamos criar a view colaboradores para a FK.

CREATE OR REPLACE VIEW PUBLIC.VW_COLABORADORES AS SELECT C.IDCLIFOREMP AS ID, C.RAZAO AS NOME, U.IDUSUARIO AS USERID, U.USERNAME, U.IDPAPELFUNCAOPRINCIPAL AS IDPAPELPRINCIPAL, F.DESCRICAO AS BPM_DESCRICAO FROM USUARIO U JOIN CLIFOREMP C ON C.IDCLIFOREMP = U.IDCLIFOREMP JOIN BPM_FUNCAO F ON F.IDBPMFUNCAO = U.IDPAPELFUNCAOPRINCIPAL WHERE U.INATIVO = 'N'::BPCHAR;

Este exemplo foi feito em um banco de dados PostgreSQL. Se necessário, personalize o SQL para o seu respectivo banco.

Crie um conector do tipo FK onde puxa as informações dessa view, de acordo com a imagem abaixo:


Processo de Criação de Formulários

Agora no processo, crie quatro formulários para serem preenchidos de acordo com o campo adicional.

  • Colaborador com a variável /COLABORADOR/
  • Username com a variável /USERNAME/
  • Bpm descrição com a variável /BPM_DESCRICAO/
  • Userid com variável /USERID/

Configure o tamanho dos campos como achar melhor

No primeiro formulário (colaborador) vincule a Fk que criamos (Fk_vw_colaboradores) e salve o processo. Volte para o formulário e vamos criar nosso evento PEX ao sair.

const cs_username = '2'; // Aqui nós declaramos as constantes cs_userid = '3'; cs_bpm = '4'; begin // Aqui nós modificamos os formulários do processo aoFormularios.GetJSON(cs_username).SetStr('TEXTO', aoValoresFK.GetStr('USERNAME')); aoFormularios.GetJSON(cs_userid).SetInt('TEXTO', aoValoresFK.GetInt('USERID')); aoFormularios.GetJSON(cs_bpm).SetStr('TEXTO', aoValoresFK.GetStr('BPM_DESCRICAO')); end;

Copie esse código ou use o assistente:

Com este PEX, os valores que estão no campo adicional da FK, serão preenchidos nos demais formulários.