Página 1 de 1
Filtrar registros
Enviado: 27 Dez 2006 13:25
por PITERGALDIANO
Bom dia a todos
qual a maneira mais fácil para filtrar registros em um DBF e exibilos em um TBrowse?
Obs.: se um campo com opção de filtro não for especificado (empty), o mesmo não deve ser filtrado
Obrigado a todos.
Enviado: 27 Dez 2006 16:25
por momente
Amigo,
Usando uma função do amigo Dudu (senão estiver enganado), dou um seek e uso assim:
Código: Selecionar todos
oMybrowser:SKIPBLOCK := {|x| SKIPWHIL(x, {||FATABELA->Cod_Clie==mCod_Clie})}
oMybrowser:GOTOPBLOCK := {| | SKIPWHIL((LASTREC()* -1),{||FATABELA->Cod_Clie==mCod_Clie})}
oMybrowser:GOBOTTOMBLOCK := {| | SKIPWHIL((LASTREC()* 1), {||FATABELA->Cod_Clie==mCod_Clie})}
//---------------
*
* SKIPWHIL ()
*
* Esta funcao 'e auxiliar dos browsers, e serve para fazer filtros...
* Dudu_Xbase : 23/05/1997 fununcionou... *:)
*
**********/
function SKIPWHIL (x,key_val)
local i := 0
if lastkey() == 0
return i
endif
if (x > 0 .and. recno() <> lastrec()+1)
do while (i < x)
DBSKIP(1)
if eof() .or. !(eval(key_val))
DBSKIP(-1)
exit
endif
i++
enddo
elseif (x < 0)
do while (i > x)
DBSKIP(-1)
if bof()
exit
endif
if !(eval(key_val))
DBSKIP(1)
exit
endif
i--
enddo
endif
return i
Faça as adaptações para seu caso e veja se resolve!
Valeu!!
Feliz ano novo!!! :)Pos