Problemas Con Reporte

Hola Expertos... Tengo un pequeño proyecto que controla excusas de alumnos de in instituto educativo... Tengo un formulario de consulta. Tengo un index llamado nexcusa (numero de excusa)... Ingreso ese numero y filtro los datos de la excusa. Ejemplo.
tengo 3 excusas: N°=1 Alumno=Jose, N°=2 Alumno=Marcos, N°=3 Alumno=Pedro.
Si pongo numero 2 me da los datos de marcos... Bueno asta acá todo bien... El problema es en el botón imprimir... Doy clic y me imprime la primera excusa aunque yo filtre para la 2.
Como puedo hacer. Aquí esta la programación de el botón consultar:
SET FILTER TO nexcusa=(alltrim(thisform.text1.value))
    thisform.text2.Value=rnp
    thisform.text3.Value=nombre
    thisform.text4.Value=seccion
    thisform.text5.Value=motivoex
Aqui esta la programacion de el boton imprimir:
REPORT FORM excusas TO PRINTER PREVIEW..
Donde esta el problema... Espero su ayuda, Gracias.

1 respuesta

Respuesta
1
Debes verificar que el indice del numero de la escusa sea carácter de lo contrario deberás hacerle un val al text1.
En lo personal el set filter to no es de mi agrado ya que cuando te encuentras con muchos registros es mortal en términos de eficiencia, te recomendaría que hicieras una consulta SQL pero en fin.
Debes hacer un set filter to antes de mandar el set filter to con tu filtro, ya que esto ayudará a que el filtro inmediatamente anterior se elimine y cree el que estas enviando.
Ojala te sirva...
Hola... mi indice es carácter... Hice lo que dices con el set filter así.
SET FILTER TO SET FILTER TO nexcusa=(alltrim(thisform.text1.value))
y no funciono tambien probe
SET FILTER TO
SET FILTER TO nexcusa=(alltrim(thisform.text1.value))
tampoco funciono y tambien
SET FILTER TO nexcusa=(alltrim(thisform.text1.value))
SET FILTER TO nexcusa=(alltrim(thisform.text1.value))
y aun nada... ¿Qué puedo Hacer?
Agradecería una respuesta rápida y clara.. Gracias de Antemano experto.
Es que lo estas haciendo mal
SET FILTER TO &&esto quita el filtro anteriro
SET FILTER TO nexcusa=(alltrim(thisform.text1.value)) && y esto ejecuta el nuevo filtro
debe ser uno debajo del otro, ahora lo que veo es que estas filtrando por un indice, recuerda que los indicen nos dan es ORDENAMIENTO!! prueba de la siguiente forma
select mitabla
set filter to && quita indice anterior
set filter to nicampoafiltrar = (alltrim(thisform.text1.value))
Con eso fijo te funciona sino me avisas
Hola Experto... he intentado lo que me dices de todas maneras y nada funciona esta es la programación completa del botón imprimir... Si encuentras aquí el error me lo indicas... Y si tienes una mejor solución también te lo agradecería.
IF empty (alltrim(thisform.text1.Value))
MESSAGEBOX("Ingrese Un Numero de Excusa",64,"Control de Excusas")
    thisform.text1.Value=""
    thisform.text1.setfocus
  ELSE     
IF !SEEK(alltrim(thisform.text1.Value))
    MESSAGEBOX("La Excusa No Existe. Asegurece de Ingresar el numero de Su Excusa Correctamente",64,"Control de Excusas")
    thisform.text1.Value=""
    thisform.text1.setfocus
ELSE
SELECT controlexcusas
SET filter to
set filter to nexcusa= (alltrim(thisform.text1.value)) AND
REPORT FORM excusas TO PRINTER PREVIEW
Endif
Endif
Cuando ejecuto el reporte (Osea que esta en vista previa), aparecen unos controles que incluyen los siguientes botones: First page, Previus page, go to page, next page, last page.
Quisiera saber si se puede programar en el botón imprimir una linea de comando que diga a que página ir... Tal como lo hace el botón "go to page".. Creo que si eso se pudiera se solucionaría mi problema... Gracias nuevamente y disculpa las molestias experto.
Parece que esto no funcionara nunca... Lo hice como dices y me da un error en la linea que dice: SET FILTER TO alltrim(thisform.text1.value)... El Error dice:"You must use a logical expression with Filter."... Creo que mejor lo dejo así... Gracias por la ayuda.
Una ultima, no me dejo tan fácil,
Veo que siguen con el mismo problem de nombrar el campo en el filter, pruébalo así
IF empty (alltrim(thisform.text1.Value))
MESSAGEBOX("Ingrese Un Numero de Excusa",64,"Control de Excusas")
    thisform.text1.Value=""
    thisform.text1.setfocus
  ELSE     
IF !SEEK(alltrim(thisform.text1.Value))
    MESSAGEBOX("La Excusa No Existe. Asegurece de Ingresar el numero de Su Excusa Correctamente",64,"Control de Excusas")
    thisform.text1.Value=""
    thisform.text1.setfocus
ELSE
SELECT controlexcusas
set order to nexcusa
SET filter to
set filter to  MICAMPOFILTRO=alltrim(thisform.text1.value)
REPORT FORM excusas TO PRINTER PREVIEW
Endif
Endif
Amigo el problema persiste... Ahora un mensaje de error en la linea:
set filter to  MICAMPOFILTRO=alltrim(thisform.text1.value)
El mensaje dice variable "micampofiltro" is not fund.
Ya me estoy desesperando...!
No se desepere... que de esto vas a sacar mucho
no le pongas MICAMPOFILTRO ya que yo lo pongo por que no se por cual campo quieres filtrar, debe colocar el campo de la tabla por el cual deseas filtrar
no se como se llamame imagino que nexcusa, intentalo de nuevo.
En el tiempo seco de la crisis es donde florecen los cambios revolucionarios!
Ok así lo entendí... y si, mi campo es nexcusa... Pero eso sigue sin funcionar... Aquí va la programación para que me indiques si tengo algún error.
IF empty (alltrim(thisform.text1.Value))
MESSAGEBOX("Ingrese Un Numero de Excusa",64,"Control de Excusas")
    thisform.text1.Value=""
    thisform.text1.setfocus
  ELSE     
IF !SEEK(alltrim(thisform.text1.Value))
    MESSAGEBOX("La Excusa No Existe. Asegurece de Ingresar el numero de Su Excusa Correctamente",64,"Control de Excusas")
    thisform.text1.Value=""
    thisform.text1.setfocus
ELSE
SELECT controlexcusas
set order to nexcusa
SET filter to
set filter to  nexcusa=alltrim(thisform.text1.value)
REPORT FORM excusas TO PRINTER PREVIEW
Endif
Endif
no entiendo cual es el problema... ¿Crees qué si hago de nuevo el reporte funcione?
Por que no hacemos algo enviame al mail el código yo lo verifico y te lo devuelvo funcionando o te devuelvo el dinero! Jejej no mentiras
Pero seria de más ayuda ver y hacer una traza al código, [email protected]
Ok... Ya te mande el formulario, la tabla y el reporte al mail... Gracias por tu ayuda... Aaaaahh no se si finalizar ya la pregunta o si necesitas que quede abierta para tu respuesta... Es que soy nuevo en el foro... Gracias de nuevo.
Pues is quieres finalízala y nos seguimos entendiendo vía mail
Amigo no he recibo tu mail... verifica la dirección [email protected]
Pues si, ya lo envíe a ese correo... Pero por si las dudas lo reenviare... mi correo es (xxxxxx)...
Na no lo veo si quieres envialo al [email protected]
Ya lo envíe al link que me diste... ojala llegue..
Comprime todo en un rar y lo envías nuevamente el sct nolo deja descargar.
Ahhh y si quieres finaliza la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas