FoxPro/Visual FoxPro - Comportamiento de reporte.

   
Vista:

Comportamiento de reporte.

Publicado por Dr. Casabe (134 intervenciones) el 21/11/2009 21:34:42
Tengo el siguiente codigo en un metodo de un formulario previo a un reporte:

SELECT Empleados.codemp, Empleados.nombempl, Empleados.apelempl,;
Empleados.fechingr, Empleados.sueldo;
FROM bomba!empleados;
WHERE Empleados.nombempl = ThisForm.Combo2.Value INTO CURSOR emp

IF RECCOUNT()=0

Titulo="Mi Compañia."
Texto="No hay registros para"+" "+ALLTRIM(ThisForm.Combo2.Value)
Dialogo=0+16+0
Resp=MESSAGEBOX(Texto,Dialogo,Titulo)

DO CASE
CASE Resp=1
ThisForm.Combo2.SetFocus
ENDCASE

ELSE
REPORT FORM repoemp PREVIEW &&windows "Salida"
USE
ENDIF

Pero, no me funciona nada, puesto que me da todos los registros de la tabla que consulto para llenar el reporte, segun el criterio seleccionado en un combo.

Pero si pongo un dato que no existe en el combo, simplemente me tira el reporte con todos los registros, pasando por alto la condicion de que debe decirme "no hay registros para este criterio".

Deseo que me diga ese mensaje al consultar por un criterio inexistente, y que no me de el relampagueazo del reporte.

Gracias por sus consejos.
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
Imágen de perfil de Mauricio

Comportamiento de reporte.

Publicado por Mauricio (1367 intervenciones) el 21/11/2009 23:14:41
Prueba con este codigo:

SELECT codigo, nombre, apellido, fec_ing, sueldo;
FROM empleados;
WHERE Empleados.nombre = ThisForm.text1.Value INTO CURSOR tempo
IF _TALLY = 0
=MESSAGEBOX('No hay registros....',0+16+0,'Mi Compañia')
ELSE
WAIT WIND 'Presento REPORTE' TIME 3
ENDIF
ThisForm.text1.Value = ''
ThisForm.text1.SETFOCUS()
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:Comportamiento de reporte.

Publicado por Juan Carlos (179 intervenciones) el 22/11/2009 15:54:53
Mira puedes usar algo como eso y debe de funcionar.

SELECT Empleados.codemp, Empleados.nombempl, Empleados.apelempl,;
Empleados.fechingr, Empleados.sueldo;
FROM bomba!empleados;
WHERE Empleados.nombempl = ThisForm.Combo2.Value INTO CURSOR emp

IF (EMP.CODEEMP <= 0
MESSAGEBOX("Producto Empleado no existencia ")

Else

Titulo="Mi Compañia."
Texto="No hay registros para"+" "+ALLTRIM(ThisForm.Combo2.Value)
Dialogo=0+16+0
Resp=MESSAGEBOX(Texto,Dialogo,Titulo)

DO CASE
CASE Resp=1
ThisForm.Combo2.SetFocus
ENDCASE

REPORT FORM repoemp PREVIEW &&windows "Salida"
USE
ENDIF
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:Comportamiento de reporte.

Publicado por Dr. Casabe (134 intervenciones) el 24/11/2009 00:13:46
Gracias par de mounstruos, lo intentare y creo de ante mano que funcionara.
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