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