error en búsqueda incremental en textbox

206 views
Skip to first unread message

leonardo trujillo

unread,
Dec 14, 2012, 2:36:09 PM12/14/12
to grupo google vfp
gente, en un textbox tengo el siguiente código que funciona perfecto cuando el campo a buscar en la tabla es de tipo carácter
el problema es que no encuentro la forma de hacer la misma búsqueda cuando el campo es numérico

en el interactivechange del textbox va esto
thisform.lista.rowsourcetype = 3

origen = "select apellidos, nombres, documento, estitular, iddelegado, d.idorganismo, comision, fecha_nac, ingreso, sexo from ndelegados d inner join norganismos o on (d.idorganismo = o.idorganismo) where o.nombreorganismo like '"+trim(thisform.text14.value)+"%' order by d.apellidos into cursor temp"
THISFORM.lista.rowSource =origen

lo anterior anda perfecto

el problema es cuando quiero hacer la búsqueda incremental por documento que es numérico, he intentado con convertir con str(thisform.text14.value) para convertir el val numérico a string pero no funciona

¿me podrán decir cómo solucionarlo?
gracias

Luis Maria Guayan

unread,
Dec 14, 2012, 2:36:30 PM12/14/12
to publice...@googlegroups.com
Cambia por TRANSFORM(thisform.text14.value)

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 

Irwin Rodriguez

unread,
Dec 14, 2012, 2:44:43 PM12/14/12
to publice...@googlegroups.com

Saludos Leonardo,

Intenta colocando este código antes del query.

IF VARTYPE(THISFORM.TEXT14.VALUE)='N'
     THISFORM.TEXT14.VALUE=ALLTRIM(STR(THISFORM.TEXT14.VALUE))
ELSE
ENDIF

con eso aseguras que el valor sea siempre caracter.

Espero te sirva.



--
 
 

leonardo trujillo

unread,
Dec 14, 2012, 3:30:06 PM12/14/12
to grupo google vfp
lamentablemente no funcionó con transform, luis maría;
la sol de irwin no me salta error pero no se reducen los resultados en el listbox.

estoy trabajando con vfp6, supongo que no tenga que ver???


--
 
 

Víctor Hugo Espínola Domínguez

unread,
Dec 14, 2012, 4:06:36 PM12/14/12
to publicesvfoxpro
Hola Leonardo

Prueba esto:

where TRANSFORM( Documento )  like '"+TRANSFORM(thisform.textnn.value)+"%' order by d.apellidos into cursor temp"

Saludos.
Víctor.

Luis Maria Guayan

unread,
Dec 14, 2012, 6:31:07 PM12/14/12
to publice...@googlegroups.com
No funciona así?


origen = [select apellidos, nombres, documento, estitular, iddelegado, d.idorganismo, comision, fecha_nac, ingreso, sexo from ndelegados d inner join norganismos o on (d.idorganismo = o.idorganismo) where o.nombreorganismo like " ] +alltrim(transform(thisform.text14.value)) + [%" order by d.apellidos into cursor temp]




Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Dec 14, 2012, 6:36:39 PM12/14/12
to publice...@googlegroups.com
En mi blog encontraras un ejemplo de búsqueda incremental esta con el código fuente.

Pd.: Descargate mi grilla que tiene multiples funciones como filtrar, multiseleccion, búsqueda, etc del siguiente link http://www.developervfp.blogspot.com/p/gridlibre-v35.html. Ahora también puedes bajarte mi ultima herramienta Busqueda Incremental con un TEXTBOX http://developervfp.blogspot.mx/p/busqueda-incremental-con-un-textbox.html  las herramientas viene con código fuente, ojo no hacer mal uso por favor. 


Saludos; 


Ing. Russvell Jesus Soto Gamarra 
San Juan del Rio - Queretaro - Mexico 
Nextel.: 52*133750*16
skype. : rycjesus 
rycjesusrj @ hotmail.com 


leonardo trujillo

unread,
Dec 14, 2012, 10:12:34 PM12/14/12
to grupo google vfp
pido disculpas porque no me he explicado bien.

quiero filtrar un listbox mientras se escribe en un textbox, el problema es que el campo de la tabla por el que quiero filtrar es numérico.
así tengo:
thisform.lista.rowsourcetype = 3

origen = "select apellidos, nombres, documento, estitular, iddelegado, idorganismo,comision,fecha_nac,ingreso,sexo from ndelegados where documento like '"+trim(thisform.text14.value)+"%' order by apellidos into cursor temp"

THISFORM.lista.rowSource = origen

entonces si ingreso en el textbox 1, me tiene que listar los registros cuyos documentos empiezan con 1;
si luego digito el 6, en el textbox tendré 16 y me tiene que listar los registros cuyos documentos empiezan con 16; y así sucesivamente.

no tengo tiempo de cambiar a un grid, debo hacerlo sobre la lista.
para el caso de buscar por apellidos funciona bien porque es carácter: origen = "select apellidos, nombres, documento, estitular, iddelegado, idorganismo,comision,fecha_nac,ingreso,sexo from ndelegados where apellidos like '"+trim(thisform.text14.value)+"%' order by apellidos into cursor temp"

pero al ser el campo numérico no me anda, poniendo los transform en cualquiera de los dos o en los dos.
¿se entiende?




--
 
 

Message has been deleted

FidelJ

unread,
Dec 15, 2012, 6:31:31 AM12/15/12
to publice...@googlegroups.com
' ...  where ltrim(str(documento)) like '"+trim(thisform.text14.value)+"%'  (será? )

Víctor Hugo Espínola Domínguez

unread,
Dec 15, 2012, 7:10:04 AM12/15/12
to publicesvfoxpro
Hola Leonardo

Prueba esto:

where TRANSFORM( Documento )  like '"+TRANSFORM(ALLTRIM(thisform.textnn.value))+"%' order by d.apellidos into cursor temp"

Saludos.
Víctor.


--
 
 

Reply all
Reply to author
Forward
0 new messages