Série da semana: Seja um mestre SQL, padawan!

Veja mais

Delphi com Unigui GridFilter

13/01/2018

Boa tarde pessoal,
Estou iniciando as aplicações com UNIGUI e queria saber se alguém chegou a fazer o GridFilter (que contém na demo) usando o FireDac, estou me batendo um pouco pois no demo está com o ADO. Se alguém puder ajudar no Filter agradeço.
Tentei desta maneira mas não deu certo
procedure TframeClientes.UniDBGrid1ColumnFilter(Sender: TUniDBGrid;
const Column: TUniDBGridColumn; const Value: Variant);
begin
if DMConexao.FDCLientes.Active then
begin
DMConexao.FDCLientes.Params.ParamByName(Column.FieldName).Value := ''''''''%''''''''+Value+''''''''%'''''''';
DMConexao.FDCLientes.Refresh;
end;
end;

Luis Eduardo

Melhor resposta

14/01/2018

Você pode usar filtros também se quiser.
if DMConexao.FDCLientes.Filtered then
  begin
    DMConexao.FDCLientes.Filtered := False;
    DMConexao.FDCLientes.Filter := Column.FieldName + 'like' +  QuotedStr('%'+Value+'%');
    DMConexao.FDCLientes.Filtered := True;
  end
else
  begin
    DMConexao.FDCLientes.Filter := Column.FieldName + 'like' +  QuotedStr('%'+Value+'%');
    DMConexao.FDCLientes.Filtered := True;  
  end


Você pode usar o '=' ao invés do 'like' se preferir.
Se ainda sim optar por usar parâmetros verifique o seu tdfquery no seu datamodule, pode ser que o parametro não foi passado dentro da query.
Para conferir se ele esta criado certinha olha o object inspector no campo Params. Vê se ele está com input, ou sei lá se está do tipo que você precisa mesmo.

Vinícius

Currículo
Responder Citar

Outras Respostas

14/01/2018

Vinícius Currículo

Já tentou ?
DMConexao.FDCLientes.Params.ParamByName(Column.FieldName).Value := QuotedStr('%'+Value+'%');

Espero ter ajudado.
Responder Citar

14/01/2018

Vinícius Currículo

Outra sugestão !
DMConexao.FDCLientes.Params.ParamByName(Column.FieldName).Value := QuotedStr('%'+Value+'%');
DMConexao.FDCLientes.Close;
DMConexao.FDCLientes.Open; // Ao inves do Refresh

Responder Citar

14/01/2018

Luis Eduardo

Obrigado pela ajuda Vinicius, mas ainda sim não está filtrando.
Ele só da um refresh.
Responder Citar

14/01/2018

Luis Eduardo

Agora foi Vinicius, quebrou um galho .<br />
Obrigado pela ajuda parceiro, tudo de bom pra ti.
Responder Citar