FoxPro/Visual FoxPro - busqueda de una clave

 
Vista:

busqueda de una clave

Publicado por ismael mtz (5 intervenciones) el 06/11/2002 20:06:09
que puedo hacer si quiero que realizar una busqueda de una clave desde un formulario,en un campo al teclear la clave precione un boton que me despliegue varios daots que contiene esa clave.
tengo tres campos en el formularios:text1,text2 y text3 y un boton.
quisiera que al teclear la clave en text1 presionar despues un boton y que este despliegue datos de esa clave en los campos text2 y text3.
usando la tabla a:\articulos.dbf
esta tabla tiene los campos:
clave_articulo(numerico) indice principal
descricion(caracter)
cantidad(numerico)
precio_u(numerico)
precio_venta(numerico)
fecha(caracter)

el controlsource de text1,text2 y text3 no tengo nada.

esta es la codificacion que yo he usado pero no me ha funcionado:
xcodigo=thisform.text1.value
select articulos
locate all for clave_articulo=xcodigo
thisform.text2.value=descripcion
thisform.text3.value=precio_u

la codificacion esta declara en el boton(click)
con esta codificacion marca error "incompatibilidad en el tipo de operador u operando",si marco ignorar me despliega los datos del primer registro de la tabla.

xcodigo=thisform.text1.value
select articulos
seek (xcodigo)
thisform.text2.value=descripcion
thisform.text3.value=precio_u

en esta codificacion me marca error de que no reconoce el objeto "SELECT articulos" o que la tabla no tiene indice o que el indice no esta ordenado.si marco que ignore eso solo despliega los datos del primer registro(1).

por favor alguien me podria orientar en esto,gracias.
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
sin imagen de perfil
Val: 147
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:busqueda de una clave

Publicado por Luis S. (97 intervenciones) el 06/11/2002 20:21:32
Pudiera ser que en tu segundo ejemplo:

select nombre_tabla && para selecionar tu tabla
sele order to nombre_indice && para seleccionar tu indice

xcodigo=thisform.text1.value
seek (xcodigo)
thisform.text2.value=descripcion
thisform.text3.value=precio_u

thisform.refresh

Aviso que paso
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

ya medio me salio

Publicado por ismael martinez (5 intervenciones) el 07/11/2002 23:33:31
Use este codigo y me funciona,solo que en algunos formularios que ya tenia hechos me marcaba que la tabla ya estaba en uso y no agregaba los datos,tenia que hacer otra vez los formularios para que no me marcara error,solo que 1 nuevo que hice a veces marca error no se por que.

USE a:\articulos ORDER clave_articulo

SET EXACT OFF
clave_articulo=clave1
SEEK clave1

IF FOUND( )
thisform.descripcion1.value=descripcion
thisform.precio1.value=precio_U
ENDIF

gracias por su ayuda.
voy a checar las codificaciones que han puesto aqui para ver si me funcionan.
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:busqueda de una clave

Publicado por Marcelo (6 intervenciones) el 06/11/2002 21:07:41
En el primer caso tenes que definir la variable xcodigo como numérico, por te lo está tomando como character y cuando haces el locate busca un character en un numerico y te sale el error incompatibilidad en el tipo de operador u operando"

y si vas a usar SEEK aparte de definir xcodigo como numérico tenes que agregarle un indice a la tabla por clave_articulo ordenarlo "SET ORDER TO nombreindice" y despues haces el SEEK

Espero que te sirva.
Marcelo
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:busqueda de una clave

Publicado por upliftmofopartyplan (265 intervenciones) el 07/11/2002 14:52:49
bueno... no sé para que escribo si lo que te dijeron está bien...
para usar el locate debería ser:
select articulos
xcodigo=VAL(thisform.text1.value) && porue el campo es numérico
locate all for.... todo lo demás está bien
con el SEEK es lo mismo, pero la tabla debe estar ordenada por el campo que vas a buscar.
saludos.

uplift
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