Ir para o conteúdo principal

PEX - Usando coluna (Verdadeiro / Falso) da grade

Neste fórum faremos um exemplo de selecionar um registro da grade de dados usando uma coluna de verdadeiro/falso, e na próxima atividade mostrar em tela as informações da linha selecionada.
Verifique o passo a passo abaixo:

  • Criamos a atividade 1 com um formulário do tipo grade de dados; (Variável /*G_REGISTROS*/)
  •  As colunas criadas foram:
    • CHECK - Tipo "Verdadeiro/Falso" (Visível e obrigatório)
    • FANTASIA - Tipo "Texto"  (Visível e somente leitura)
    • EMAIL - Tipo "Texto" (Visível e somente leitura)
  • Criamos um evento de "Estrutura de repetição - carregar" na primeira atividade para trazer as informações na grade de dados. (Colunas "Fantasia" e "email" da tabela CLIFOREMP). Dessa forma, sempre que for iniciado o processo irá aparecer na grade os registros para selecionar.
  • Criamos um evento PEX ao sair da primeira atividade para validar a quantidade de registros selecionados e atribuir o valor do email para uma variável do processo.

image-1640627901228.png

Código: 

const
cs_grade = '1';
var
  liIdRegistro, Contador: Integer;
  loRegistro: TJSONObject;
begin   
  Contador := 0;      
   
  for liIdRegistro := 0 to Pred(aoFormularios.GetJSON(cs_grade).GetArrayJSON('DADOS').Count) do
  begin
    loRegistro := aoFormularios.GetJSON(cs_grade).GetArrayJSON('DADOS').GetItemAsJson(liIdRegistro);  // Aqui percorremos a grade

    if loRegistro.GetBol('CHECK') then  // Se o campo "Check" estiver marcado
    begin
        Contador:= Contador + 1; // Passa pelo contador
    end;
    
    if Contador > 1 then   // Se houver mais de um registro marcado
    begin
       aoMensagem.SetStr('MENSAGEM', 'Selecione apenas um registro!');  // Mensagem de informação e aborte caso a condição for verdadeira   
       aoMensagem.SetStr('TIPO', 'INFO');
       aoMensagem.SetBol('ABORTA', True);
    end;
    
    if ((Contador = 1) and (loRegistro.GetBol('CHECK'))) then // Se for apenas um registro marcado e a coluna "Check" estiver selecionada
    begin
          aoVariaveis.SetStr('/*EMAIL*/', loRegistro.GetStr('EMAIL')); // Atribui o email selecionado da grade para a variável EMAIL
    end;
  end;                           
end;
  • Por fim, na atividade 2 apenas criamos um formulário dissertativo contendo a variável com o valor do email.

image-1640628986818.png

image-1640629010965.gif