by jbrita » Mon Apr 02, 2012 12:15 pm
ahi va un ejemplo:
Local cbusca :=""
@ 0.30,50 SAY "Buscar :" OF oBar FONT oVentPrinc:oFont SIZE 40, 15 COLORS CLR_BLUE, nRGB( 207, 221, 239 )
@0.35,46 GET oGet VAR cbusca OF oBar PICTURE "@S60!" SIZE 200,22 FONT oVentPrinc:oFont COLOR CLR_BLUE when .f.
oLbx := TXBrowse():New( oWChld )
Setxbrowse(oLbx, oExi_Suc ) // importante para la navegacion
oLbx:bKeyDown := {|nKey| ( PlisBuscar(nKey,@oExi_Suc,"exi_suc",nIndex[cVar],oLbx,@cBusca,cSelect),oLbx:Refresh(),oGet:Refresh() )}
FUNCTION PlisBuscar(nKey,oDatos,oTabla,oOrden,oLbx,cbusca,cSelect)
*-----------------------------------------------------
Local cQuery,campo
DEFAULT cSelect := "*"
If nKey=8
cbusca:= SubStr(cbusca,1,Len(cbusca)-1)
cQuery:="SELECT "+ cSelect + " FROM "+oTabla+" WHERE "+oOrden+" LIKE '"+UPPER(cBusca)+"%' ORDER BY "+oOrden+" LIMIT 100"
oDatos:=oServer:Query(cQuery,.T.)
Else
If nKey=190
cbusca :=cbusca + "."
Else
cbusca :=cbusca + Upper(chr(nkey))
Endif
cQuery:="SELECT "+ cSelect +" FROM "+oTabla+" WHERE "+oOrden+" LIKE '"+UPPER(cBusca)+"%' ORDER BY "+oOrden+" LIMIT 100"
oDatos:=oServer:Query(cQuery,.T.)
If oDatos:Reccount() == 0
cbusca:=left(cbusca,len(cbusca)-1)
cQuery:="SELECT "+ cSelect +" FROM "+oTabla+" WHERE "+oOrden+" LIKE '"+UPPER(cBusca)+"%' ORDER BY "+oOrden+" LIMIT 100"
oDatos:=oServer:Query(cQuery,.T.)
Endif
Endif
Setxbrowse(oLbx, oDatos ) // importante para la navegacion
oDatos:Refresh()
oLbx:Refresh(.t.)
oLbx:SetFocus()
oDatos:GOTOP()
return .t.
Saludos
Last edited by
jbrita on Mon Apr 02, 2012 1:58 pm, edited 1 time in total.