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