FoxPro/Visual FoxPro - Buscar en partes un numerico

   
Vista:

Buscar en partes un numerico

Publicado por Pablo (Argentina) (433 intervenciones) el 18/06/2009 16:23:45
Hola Amigos, de nuevo, estoy todavia dando vueltas con el boton buscar. Muchas Gracias Amigo Victor, tal vez eso me sirva pero no creo que para esto, a Mauricio y Andy hice mas o menos lo que me dice Es_Binario. Pero en fin, les cuento bien con que me arreglo.

Tengo un campo numero con 15 digitos como maximo, SIEMPRE son 15 ni mas ni menos, bueno lo que yo quiero hacer en el boton buscar es que no tenga que poner los 15 numeros para que me lo encuentre ¿me explico?, que ponga cierta cantidad y me busquee la coincidencia.
Por Ejemplo, tengo 123456789132498 no cierto, bueno si yo tipeo en el textbos 132498 en el ejemplo que me busque solo eso, y si pongo 3456 busque eso. es como lo que hace en el PICBTNS el buscar con la opcion Contiene ¿ahora se entiende?

Es un poco complicado o no se, estoy probando con SUBSTR pero tengo que poner varias lineas y creo que funcionaria.
Uds saben de otra forma en la que lea el text con los digitos que pongo y me devuelva el registro.

yo estoy haciendo asi por ahora

locate for esn = substr(thisform.text1.value,1,6) esto me busca los primero 6 digitos desde el principio, no)

ahora si yo pongo

locate for esn = substr(thisform.text1.value,6) no funciona, cuando esto indicaria que busque los ultimos 6 digitos ¿no?

y si pongo que el substr(thisform.text1.value,5,6) o sea para que arranque a buscar a partir del quinto digito NO lo hace,

Que estoy haciendo mal? o que otra forma hay de buscar que no sea poniendo los 15 digitos.

Pablo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Buscar en partes un numerico

Publicado por Jose Gamboa (33 intervenciones) el 18/06/2009 16:43:01
Hola Pablo!
Lo que necesitas es muy simple, en lugar de usar las funciones de extraxion de texto usa la funcion ATC
Ejemplo
select tabladondebuscar
Locate for atc("valorbuscado", str(tabladondebuscar.indice))

hay que aplicar str al campo indice ya que es numerico y la funcion atc funciona solo con caracteres. El unico detalle es el siguiente, cuando usas un comando como este te va a devolver solo el primer registro que encuentre, estoy hablando del locate, si lo que quieres es que te devuelva todos los registros que coincidan con tu busqueda necesitas usar un select de sql y poner en la condicion where la condicion atc o bien usar un set filter, para cualquiera de los casos anteriores necesitas un formulario o un espacio donde mostrar los resultados.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar en partes un numerico

Publicado por Pablo (argentina) (433 intervenciones) el 18/06/2009 19:17:57
Muchas Gracias Amigo, lo voya probar y te aviso, si tengo que usar SQL ya se mas o menos como seria, por ahora se supone que el valor es unico asi que veremos que pasa.

Muchas Gracias

Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar en partes un numerico

Publicado por Pablo (argentina) (433 intervenciones) el 18/06/2009 19:37:29
Amigo Jose, no se que estoy haciendo mal pero me da este error y obviamente se debe a la mala utilizacion del Str o Val
Recorda que el campo de la tabla es numerico de 15 digitos.

Me dice: el valor, numero de argumentos no es valido para la funcion

te explico lo que hago

esn (es el campo numerico en la tabla)

despues tengo un text1 donde tengo que introducir el numero a buscar, que eso despues en el atc del locate tengo la duda de bien como va tu me diras

hago esto

select almacenequipos
locate for atc("thisform.text1.value", str(almacenequipos.esn))

ya proble sin las "" del text1 dentro del atc, pero me da ese error, que hago mal?

Muchas Gracias
pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

Buscar en partes un numerico

Publicado por Mauricio (1368 intervenciones) el 18/06/2009 21:20:56
locate for esn = substr(thisform.text1.value,6) no funciona, cuando esto indicaria que busque los ultimos 6 digitos ¿no?

y si pongo que el substr(thisform.text1.value,5,6) o sea para que arranque a buscar a partir del quinto digito NO lo hace,
*
Que estoy haciendo mal?
Es sencillo, para empezar lee en la ayuda la sintaxis de SUBSTR(,,)
Puedes hacer eso? Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CONSEPTO O DEFINICION

Publicado por vanessa (1 intervención) el 10/07/2009 00:22:26
NECESITO SABER QUE ES UESE. DE. IF. FOR. DO. WHILE. CASE DE FOX PRO GRACIAS!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar en partes un numerico

Publicado por Ernesto Hernandez (4632 intervenciones) el 18/06/2009 21:57:50
locate for atc("thisform.text1.value"+ str(almacenequipos.esn))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar en partes un numerico

Publicado por Jose Gamboa (33 intervenciones) el 19/06/2009 16:38:57
Que tal pablo
Disculpas por nocontestar antes, ya que solo puedo entrar al foro basicamente solo por las mañanas ya luego se me complica.
Me falto algo en la instruccion ATC, te eplico, la funcion ATC devuelve un resultado numerico asi que para la condicion logica dentro de un where o locate necesitas agregar esto o mas bien la instruccion debe ir asi
locate for atc(thisform.text1.value, str(tabla.campo))>0
para que no surja ningun error el formato del text1 debe ser numerico y si te fijaste hay que ponerle >0 para que ya sea una condicion logica.
Si surge algo mas, o quieres ayuda mas directa me puedes contactar a mi correo es admin_lepetitparis@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar