/* --------------------------------------------------------------------------------------------------
Funcion para hacer busquedas estilo LIKE de SQL
-------------------------------------------------------------------------------------------------- */
STATIC Function BuscaLike(t,m)
local oDlg, oBtns[2], oSay[2], oGets[3], aGets[3], oBrw, xFind:='',;
lContinuar:=.F.,aDatos:={{"","","","",0}}, n:=0
aGets[1]:=Space(40)
DEFINE DIALOG oDlg RESOURCE "BUSQUEDAS" TITLE "Busquedas de Articulos"
oDlg:lHelpIcon:=.F.
REDEFINE GET oGets[01] VAR aGets[1] ID 101 OF oDlg UPDATE ;
PICTURE "@!K" ;
ON CHANGE ( oGets[01]:Assign() ,;
xFind:=Alltrim(aGets[1]),;
aDatos:=SacaInf(t , SubStr( aGets[1],1,Len(xFind) ) ),;
Eval(oBrw:bGotFocus),;
oBrw:Refresh() )
oGets[01]:cToolTip := "Digite el Id, Código de barras, Nombre, Modelo"
REDEFINE LISTBOX oBrw FIELDS ;
aDatos[oBrw:nAt,01],;
aDatos[oBrw:nAt,02],;
aDatos[oBrw:nAt,03],;
aDatos[oBrw:nAt,04] ;
HEADERS "Id","Nombre","RFC","Teléfono" ;
SIZES 60,230,100,90;
ID 300 OF oDlg UPDATE
oBrw:SetArray( aDatos )
oBrw:bGotFocus := { || oBrw:SetArray( aDatos ),oBrw:Refresh() }
oBrw:nLineStyle := 6
oBrw:aJustify:={.F.,.F.,.F.,.F. }
REDEFINE BUTTON ID 400 OF oDlg CANCEL;
ACTION (lContinuar:=.T.,;
n:=aDatos[oBrw:nAt,5],oDlg:End() );
WHEN !Empty(aDatos[1,1])
REDEFINE BUTTON ID 401 OF oDlg CANCEL;
ACTION (oDlg:End() )
ACTIVATE DIALOG oDlg CENTERED
If lContinuar
If n>0
(t:nArea)->(OrdSetFocus(2))
(t:nArea)->(dbgoto(n))
t:load()
_mClientes(t,1,.T.,m)
EndIf
Endif
Return Nil
Static Function SacaInf(t,cCadena)
local xDatos:={}, aTemp:={},xCadena:=Alltrim(cCadena), EmptyDatos:={{"","","","",0}}
(t:cAlias)->(dbGoTop())
(t:cAlias)->(OrdSetFocus("portodo"))
WHILE (t:cAlias)->(OrdWildSeek("*"+(xCadena)+"*", .T.))
t:Blank()
t:Load()
aTemp:={}
Aadd(aTemp,t:Id)
Aadd(aTemp,t:Nombre)
Aadd(aTemp,t:Rfc)
Aadd(aTemp,t:Telefono1)
Aadd(aTemp,(t:cAlias)->(Recno()))
Aadd(xDatos,aTemp)
ENDDO
If Len(xDatos) = 0
Return EmptyDatos
EndIf
Return xDatos