PEX - Filtrando dados por data
Neste tópico iremos mostrar como criar uma grade de dados filtrando os dados pela data inserida em dois formulários.
Iremos retorna os dados via SQL no PEX filtrando a data utilizando dois campos com variáveis do tipo data, e ao clicar o botão a grade será carregada com os dados já filtrados.
Resultado final:
Criação dos formulários de data e grade de dados:
Inserindo o PEX ao sair do botão:
Codígo PEX:
const
cs_Dtinicio = '1';
cs_Dtfim = '2';
cs_grade = '3';
var
locds : TLibCDS;
lsSQL : string;
liIdRegistro: Integer;
loNovoRegistro: TJSONObject;
begin
lsSQL := 'select usuario,observacao,data,valortotalitens from pedido where data between '+TSTR.Aspa(FormatDateTime('dd.mm.yyyy',aoFormularios.GetJSON('1').GetDt('TEXTO')))+' and '+TSTR.Aspa(FormatDateTime('dd.mm.yyyy',aoFormularios.GetJSON('2').GetDt('TEXTO')))+' and observacao <> ''.''';
loCDS := of_CriaCDSporSQL(lsSQL);
try
if locds.of_TemDados() then
begin
loCDS.of_IniciaWhile;
try
loCDS.of_Primeiro;
while not loCDS.of_FimDS do
begin
loNovoRegistro := TJSONObject.Create;
loNovoRegistro.AddPair('USUARIO', locds.GetStr(['USUARIO']));
loNovoRegistro.AddPair('OBSERVACAO', locds.GetStr(['OBSERVACAO']));
loNovoRegistro.AddPair('DATA', locds.GetDt(['DATA']));
loNovoRegistro.AddPair('VALORTOTALITENS', Currtostr(locds.GetCurr(['VALORTOTALITENS'])));
aoFormularios.GetJSON(cs_grade).GetArrayJSON('DADOS').Add(loNovoRegistro);
loCDS.of_ProxReg;
end;
finally
loCDS.of_FinalizaWhile;
end;
end;
finally
loCDS.Free;
end;
end;