GARANTIR DESCONTO

Fórum Filtro com DateTimePicker (Solução) #197937

29/11/2003

0

Resolvi abrir um novo tópico para esclarecer alguns pequenos detalhes.

1 - Para que o código que segue funcione de maneira apropriada, a propriedade FILTERED do componente TABLE deve estar setada para FALSE.

2 - A propriedade [b:839e318c37]Filtered[/b:839e318c37] deve vir após a [b:839e318c37]Filter[/b:839e318c37] no código, pois, atribuir valor a propriedade Filter em RunTime desativa a propriedade Filtered (se esta estiver antes de Filter).
ex.:[b:839e318c37]
Filter:=´[CAMPODATA]=´ + DatetoStr(DateTimePicker.Date);
Filtered := true;[/b:839e318c37]

3 - Para utilizar o evento OnFilterRecord da Tabela você deve utilizar este código ou algo parecido:

procedure DataModule.TABELAFilterRecord(DataSet: TDataSet; var Accept: Boolean); var Dia, Mes, Ano: word; begin Accept := false; DecodeDate(Date,Ano,Mes,Dia); if DataModule.TABELA[´CAMPODATA´] = DATE then //campodata = data do sistema Accept := True; end;


4 - Segue o código para FILTRAR registros ao clicar em um DateTimePicker...

(* código que executa o FILTRO no evento OnShow do Form. Neste caso, filtra pela data atual. Para filtrar por outras datas implementar de acordo com a necessidade. *) procedure Formulario.FormShow(Sender: TObject); var ... begin DateTimePiker.Date := Date; //DTP recebe data do sistema(data atual) with TABELA do begin Filter:=´[CAMPODATA]=´ + DatetoStr(DateTimePicker.Date); Filtered := true; end;


(* Código associado ao evento OnChange do DateTimePicker. Quando selecionar a data o filtro é executado e o resultado aparece no dbgrid associado a tabela. Escolhi um dbgrid por atender as minhas necessidades, mas pode ser qualquer outro componente de saída. *) procedure Formulario.DateTimePickerChange(Sender: TObject); begin with TABELA do begin Filter:=´[CAMPODATA]=´ + DatetoStr(DateTimePicker.Date); Filtered := true; end;


[b:839e318c37]
Estes códigos não funcionam desta maneira com QUERY, e sim com TABLE.
[/b:839e318c37]

Obrigado a todos pela ajuda
[]s

Douglas.


Douglas Bitencourt

Douglas Bitencourt

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar