FoxPro/Visual FoxPro - Error en la busqueda

   
Vista:

Error en la busqueda

Publicado por Melisa (22 intervenciones) el 10/12/2013 21:55:58
hola!!! hice un programa para buscar por numero (en mi caso es numero de orden) en una tabla y luego imprimir los datos cargados como ese numero de registro,,, pero tengo un problema en la busqueda porque solo me muestra el numero 1. Yo en la tabla tengo cargados mas registros y no se porque no los encuentra.. alguien que me pueda ayudar??
ahi va el programa:

SELECT 1
USE ORDEN INDEX nroorden,idxn,ape,dom
SELECT 2
USE UNIDADES INDEX dom1,NRO1
@0,0 SAY 'C:\dibujo' BITMAP
NRO=0
DO WHILE .T.
SELECT 1
@ 2,2 say 'C:\IO' BITMAP
@ 10,2 SAY "INGRESE EL NRO. DE ORDEN <0> SALIR:" FONT 'VERDANA',10 STYLE "B" GET NRO PICTURE "9999999999" FONT 'VERDANA',10 STYLE "B"
READ

IF NRO=0
@0,0 SAY 'C:\dibujo' BITMAP
EXIT
@0,0 SAY 'C:\dibujo' BITMAP
ENDIF

SELECT 1
LOCATE FOR NRO_ORDEN=NRO
IF FOUND()
BROWSE
*FIELDS NRO_ORDEN,FE_INGRESO,DOMINIO,MOTIVO,APELLIDO,NOMBRE,FE_SALIDA
WAIT "..DESEA IMPRIMIR ESTA ORDEN? S/N.." TO R WINDOW
IF UPPER (R)= "S"
@0,0 SAY 'C:\dibujo' BITMAP
SET CONSOLE OFF
SET PRINTER ON
REPORT FORM REPORTE1
SET PRINTER OFF
SET CONSOLE ON
CLOSE ALL
RETURN
ELSE
WAIT"NADA PARA IMPRIMIR"WINDOW
CLOSE ALL
RETURN
ENDIF
ELSE
WAIT ".....LA ORDEN NO EXISTE...." window
ENDIF
SELECT 1
NRO=0
@0,0 SAY 'C:\dibujo' BITMAP

ENDDO
RETURN
@0,0 SAY 'C:\dibujo' BITMAP
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

Error en la busqueda

Publicado por deysi (17 intervenciones) el 10/12/2013 23:56:38
hola..
creo que tu problema esta el el
CLOSE ALL
RETURN
que estas haciendo cuando encuentra
una ocurrencia y hace la impresion

Saludos..
DEYSI..
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

Error en la busqueda

Publicado por Melisa (22 intervenciones) el 11/12/2013 00:20:34
muchas gracias por tu respuesta...
probé, pero no es eso! =(
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

Error en la busqueda

Publicado por Mauricio (1367 intervenciones) el 11/12/2013 15:18:50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
*
CLOSE TABLE ALL
USE ORDEN IN 0
USE UNIDADES IN 0 ORDER nro1
SELE ORDEN
SET RELATION TO Orden.nroorden INTO Unidades ADDITIVE	&& Esto es para no abrir esta tabla, revisa en la ayuda
*
nro = 0
*
DO WHILE .T.
	@ 10,2 SAY "INGRESE EL NRO. DE ORDEN <0> SALIR:" FONT 'VERDANA',10 STYLE "B" GET NRO PICTURE "9999999999" FONT 'VERDANA',10 STYLE "B"
	READ
*
	IF nro = 0
		EXIT
	ENDIF
*
	LOCATE FOR nroorden = nro
	IF FOUND()
		BROWSE
*FIELDS NRO_ORDEN,FE_INGRESO,DOMINIO,MOTIVO,APELLIDO,NOMBRE,FE_SALIDA
		WAIT "..DESEA IMPRIMIR ESTA ORDEN? S/N.." TO R WINDOW
		IF UPPER (R)= "S"
*			SET CONSOLE OFF
*			SET PRINTER ON
*			REPORT FORM REPORTE1
*			SET PRINTER OFF
*			SET CONSOLE ON
			RETURN
		ELSE
			WAIT "NADA PARA IMPRIMIR" WINDOW
		ENDIF
	ELSE
		WAIT ".....LA ORDEN NO EXISTE...." window
	ENDIF
*
	NRO=0
*
ENDDO
close tables all
CLEA
RETURN
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

Error en la busqueda

Publicado por Melisa (22 intervenciones) el 12/12/2013 00:52:44
Pede hacer la busqueda borrando y creando nuevamente los indices, pero me imprime siempre el nro 1, porq puede ser eso?
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

Error en la busqueda

Publicado por Mauricio (1367 intervenciones) el 12/12/2013 01:10:49
No entiendo lo que trataste de escribir!!!!!!
Melissa, lo he probado antes de postearlo.
Solo borra el indice de unidades y vuelve a crearlo, dejalo "NORMAL O CANDIDATO"
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

Error en la busqueda

Publicado por Melisa (22 intervenciones) el 12/12/2013 01:23:28
mauricio:
voy a tratar de explicarlo mejor... yo tengo una tabla, que se llama orden, todos los campos cargados que necesito, ordenados por el NUMERO DE ORDEN...
lo que quise hacer en este programa es imprimir las ordenes, pero siempre me imprime el registro 1.
cuando ejecuto el programa yo escribo el numero que necesito imprimir y lo muestro, hasta ahi va todo bien, me muestra en la tabla el numero que yo escribi marcado en celeste, pero cuando me pregunta para imprimir y pongo que si, me imprime el primer registro!!!
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

Error en la busqueda

Publicado por Mauricio (1367 intervenciones) el 12/12/2013 14:01:55
Melissa, entonces me parece que el problema esta en el reporte de impresion y ese no lo tengo para revisarlo!!
Puedes subirlo o enviarlo?
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

Error en la busqueda

Publicado por Jóse (3 intervenciones) el 12/12/2013 05:34:45
Prueba con estás opciones:

REPORT FORM REPORTE1 FOR ORDEN.NRO_ORDEN=M.NRO

O

lnRecord=RECNO("ORDEN")

REPORT FORM REPORTE1 RECORD lnRecord

IMPORTANTE VERIFICAR EL ENTORNO DE DATOS DE REPORTE1

Saludos, espero sea la solución que requieres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Error en la busqueda

Publicado por MELISA (22 intervenciones) el 12/12/2013 14:45:03
perdon... que seria M.NRO?
Asi tengo que escribir en el programa?
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

Error en la busqueda

Publicado por Melisa (22 intervenciones) el 12/12/2013 17:30:40
así si anda!!!!!!
mil gracias Jose!!!!!!!! sos un genio!!!!!!!!!!
que haria estas sentencias entonces?

lnRecord=RECNO("ORDEN")

REPORT FORM REPORTE1 RECORD lnRecord

esto fue lo que me funcionó... así lo sé para la próxima!
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