xBrowse - Busqueda Incremental

xBrowse - Busqueda Incremental

Postby MarioG » Thu Dec 01, 2011 3:42 pm

Estimados;
Alguien que me pueda brindar un ej. de esta funcion para un xBrowse en el que despliego el resultado de un Query (uso MariaDB)

muchas gracias
Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Busqueda Incremental

Postby Raymundo Islas M. » Fri Dec 02, 2011 2:18 pm

Mario,

Si los datos que vas a desplegar son semi-estaticos, a mi me ha funcionado muuuy bien mostrar el contenido del recordset en el xbrowse y despues aplicar un filtro al mismo dependiendo lo que estes buscando.
Yo uso MySQL pero quiero pensar que debe ser muy similar al motor que tu usas.

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: xBrowse - Busqueda Incremental

Postby jbrita » Fri Dec 02, 2011 2:30 pm

Amigo prueba asi
Local cbusca:=""
LOCAL cSelect:="ma_arti,ma_des1,ma_fami,ma_pcom,ma_flet,ma_comp,ma_desc1,ma_desc2,ma_desc3,sto_ok,bod_ini1,bod_ent1,bod_sal1,ma_con_com,ma_bloqueo"


REDEFINE GET oGet VAR cBusca ID 101 OF oDlg UPDATE FONT oVentPrinc:oFont COLOR CLR_BLUE when .f.

oLbx:bKeyDown := {|nKey| iif( nKey=13,(cKey:=SQLField(cExi_Suc,"ma_arti"),oDlg:End() ),(PlisBuscar(nKey,@cExi_Suc,"exi_suc",nIndex[cVar],oLbx,@cbusca,cSelect),oLbx:Refresh(),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.

con tienes para ser una busqueda

ojala te sirva

saludos
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: xBrowse - Busqueda Incremental

Postby MarioG » Fri Dec 02, 2011 2:37 pm

Raymundo;
gracias por tu respeusta.
Te cuento: MariaDB es el nuevo motor desarrollado por Michael "Monty" Widenius http://es.wikipedia.org/wiki/MariaDB.
El proyecto de Monty surge en represalia a la politica de Oracle. Y como podrás leer, del enlace de arriba, es compatible con MySQL
Para conectarme con la DB uso Eagle1, que tiene metodos como :Find() y :FindNext(), que es con lo que estoy desarrollando actualmente.
Pero para un browse me resulta mas atractivo la búsqueda incremental y a eso apunta mi consulta.

Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Busqueda Incremental

Postby MarioG » Fri Dec 02, 2011 2:39 pm

jbrita;
probaré tu propuesta, muchas gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Busqueda Incremental

Postby Raymundo Islas M. » Fri Dec 02, 2011 9:43 pm

Mario,
Por eso te preguntaba acerca de los datos a localizar y mostrar.

Si es un catalogo de clientes que se le hacen muy pocos ajustes ( insert,delete,update) genero el recordset y despues le aplico el filtro de la busqueda.
Si los datos son variables ( historico operaciones, diferentes condiciones, etc ) al estar haciendo el select se usa mucho mas el trafico de datos al server, ahora en caso que sea asi la necesidad, en vez de usar LIKE yo usaria REGEXP ya que me busca y devuelve el valor a buscar en cualquier parte del campo.

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: xBrowse - Busqueda Incremental

Postby MarioG » Mon Dec 05, 2011 11:31 am

Raymundo;
gracias por tu aporte.
La Tabla prinicipal es de insumos hospitalario, por lo que estimo que las ALTAS/MODIFICACIONES no serán de considerables ajustes.
Por lo que el uso de LIKE sería interesante, de cualquier manera me llama la atención REGEXP, funcion que no conozco y la estudiaré

Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Busqueda Incremental

Postby MarioG » Tue Dec 06, 2011 12:34 pm

(O.T.) Una cosa mas
Si esto esta SOLUCIONADO, como lo pongo en el texto del Asunto :oops: . Ya que le agrego, pero luego muestra el orignal sin la palabara agregada(?)

gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 34 guests