PEX - SELECT
Em certas regras, é necessário fazer uma consulta no banco de dados ao sair de um campo. Por exemplo, ao informar um CEP, o sistema verifica se o CEP está cadastrado nas tabelas locais e retorna uma mensagem para o usuário caso já esteja.
Uma opção para facilitar um pouco a digitação do código é utilizar o assistente como na imagem abaixo. Clicando com o botão direito do mouse acima da tela do PEX, em Modelo de código, clicar em Criar DataSet por SQL.
Isto é criado automático:
A variável loCDS terá que ser declarada acima do begin. (loCDS : TlibCDS;) Abaixo, o exemplo de verificação de CEP descrito neste tópico.
Use a estrutura abaixo e modifique o SQL como desejar, só não esqueça de NÃO tirar o loCDS.free, ele é responsável por "destruir" o objeto criado, uma boa prática.
const
csCEP = '2';
csEndereco = '3';
var
loCDS : TlibCDS;
lsSQL : String;
begin
lsSQL := 'SELECT ENDERECO FROM CLIFOREMP WHERE CEP = ' + TSTR.Aspa(aoFormularios.GetJSON(csCEP).GetStr('TEXTO'));
loCDS := of_CriaCDSporSQL(lsSQL);
try
if loCDS.of_TemDados() then
begin
aoFormularios.GetJSON(csEndereco).SetStr('TEXTO', loCDS.GetStr('ENDERECO'));
end
else
begin
aoMensagem.SetStr('MENSAGEM', 'Endereço não encontrado em nossa base!');
aoMensagem.SetStr('TIPO', 'ERRO');
aoMensagem.SetInt('TIMEOUT', 5000);
aoFormularios.GetJSON(csEndereco).SetStr('TEXTO', '');
end;
finally
loCDS.Free;
end;
end;