Imprimir un Reporte Especifico VFP

Ya había terminado todo estaba bien, quedo a a las mil maravillas, y resulto que no que gran desilusión, cuando hago una búsqueda de un usuario por ide que así los tengo asignados los visualizo pero cuando quiero imprimir un reporte me muestra el primer reporte de toda la base de datos como puedo hacer para que me visualice el reporte del usuario que seleccione el código que ocupo es el siguiente

report form C:\Recursos_Humanos\informe_externo.frx preview noconsole

Antes lo hacia bien no se que rayos moví o que hice pero si me muestra mi reporte solo que me muestra el primero y no el que busque o seleccione me podrían ayudar por favor ya es lo ultimo...

1 respuesta

Respuesta
1

prueba hacer...

report form C:\Recursos_Humanos\informe_externo.frx preview noconsole FOR <campo>=<ValorABuscar>

Así pido visualizar el reporte en el form uso una búsqueda selecciono al usuario en una grid y ejecuto el comando que te envíe cuando ejecuto el que me enviaste me dice que falta expresión

No entiendo, por favor muéstrame como lo escribes por que el FOR que debes poner al final de REPORT FORM.. debe filtrar solo aquello que quieres ver.

Mira más o menos hago esto

Y cuando lo ejecuto en text1 coloco mi búsqueda de ahí cualquiera de ambas opciones me lo visualiza en la consola para imprimir

El mensaje de error que te envía al dar al comando SET REPORT de "falta expresión", porsiblemente no indicas correctamente el filtro FOR.

Suponiendo que el campo que usas de filtro sea ID, pues el modo de hacer el FOR de SET REPORT equivale a por Ej.:

report form ..externo.frx preview noconsole FOR ID=alltrim(thisform.text1)

perdona, me corrijo...

report form ..externo.frx preview noconsole FOR ID=alltrim(thisform.text1.value)

Ya corrí el fomr con la línea que enviaste y funciona solo que ahora por ejemplo si tengo en la búsqueda por nombre a seis gentes con el mismo nombre y quiero elegir a la segunda sigue sacando a la primera que se genera en esa lista

Y quiero a la tercera o quinta por así decirlo cuando la seleccino y ejecuto la vista previa sigue apareciendo la primera de esa lista ya no la primera de la base de datos

Cuando te posas en alguna celda de la grilla el cursor se mueve en la tabla a esa misma posición, por lo tanto, podrías hacer lo siguiente:

Suponiendo que tu tabla se llama AFILIADO y posiblemente el nombre del campo único es el que denominas SOCIO haces:

cSocio = Alltrim(Afiliado.Socio)
report form ..externo.frx preview noconsole FOR cSocio=Afiliados.Socio

Lo coloque y cuando ejecuto el reporte como que intenta abrirlo y se cierra y modificando la variable de socio por ide que es la búsqueda que estoy realizando en ese momento o en ese form hace los mismo no lo abre

Hazme una captura de pantalla con un Browse de la tabla (supongo que se llama Afiliados), me gustaría ver los datos registrados y nombre de los campos para poder darte una mejor respuesta.

Así esta la tabla de captura de datos tengo más de 40 campos

Tengo búsquedas por Ide, Socio, Apellidos, Nombre, Área y Centro o tu que me aconsejas para generar las busqeudas y la impresión de los reportes...

Entiendo que el reporte que deseas hacer es por socio que al margen de la búsqueda al darle a mostrar el reporte debe mostar el reporte de un socio elegido de la lista (grilla), por lo tanto y de acuerdo a la tabla que me muestras, debería funcionar ésto...

Select Planilla
m.cSocio = Planilla.Socio
report form <Reporte> preview noconsole FOR m.cSocio=Planilla.Socio
** Reemplaza <Reporte> por la ruta+el nombre del reporte a mostrar.

Recuerda que debes escoger un registro de la grilla antes de presionar reporte.

La consulta de los métodos de búsqueda está bien, depende siempre de las preferencias del usuario; podrías incluir número de documento en la búsqueda aunque para mostrar el reporte el comando será el mismo que el que te he escrito.

Regresamos al principio cuando hago las búsquedas me presenta el primer ingreso en la tabla osea al usuario 0001 y selecciono al usuario antes de seleccionar el tipo de reporte

Eso sucede por que la grilla posiblemente no esté abriendo la tabla diréctamente sino que usas opción SQL u otro modo; entonces al moverte dentro de la grilla el cursor no se mueve en la tabla... para que eso sucede debería verse algo así la propiedad de la grilla...

Sin embargo de otro modo de hacerlo podría ser con el comando LOCATE o SEEK que se mueva a la posición del registro seleccionado, y luego lees el reporte:

Prueba lo siguiente:

Usando SEEK

Supongamos que tienes un INDEX sobre el campo socio y que el indice también se llama Socio.

** Primero debes leer el dato que necesitas buscar diréctamente de la grilla.
** No lo copies literal ya que es ejemplo debido a que no se como definiste 
** los nombres tanto de grilla como de columnas...
m.cSocio = thisform.grid1.column1.text1.value && esto te leerá el numero de socio.
Select Planilla
Set order to Socio
Seek m.cSocio
If found()
   **Aqui va el comando REPORT FORM... tal y como te envié el último ejemplo
Endif

Usando LOCATE

** Primero debes leer el dato que necesitas buscar diréctamente de la grilla.
** No lo copies literal ya que es ejemplo debido a que no se como definiste 
** los nombres tanto de grilla como de columnas...
m.cSocio = thisform.grid1.column1.text1.value && esto te leerá el numero de socio.
Select Planilla
Locate for m.cSocio=Planilla.Socio
If found()
   **Aqui va el comando REPORT FORM... tal y como te envié el último ejemplo
Endif

Esto podrías ponerlo al inicio del método clic de los botones de crear Reporte...

Lo que haría cualquiera de los 2 es primero buscar dentro de la tabla planilla el dato buscado y se posiciona en la tabla Planilla sobre el registro correspondiente y luego haces el reporte.

Si en cambio decides cambiar la propiedad RecordSourceType de la grilla el sistema solo se posaría sobre el dato correspondiente cuando haces clic en la grilla.

Por otro lado, si no vas a hacer cambios en los datos usando la grilla, cambia la propiedad de la misma grilla AllowCellSelection=.F.

¡Gracias! Ocupe la información que me enviaste y la que jalo sin problemas fue la del SEEK sobre la opción de la grilla del alias ya lo tenia seleccionado y seguía dando lata pero ya con eso quedo probado en todos los reportes, Gracias al fin acabe ahora a capturar datos para entregarla eres grande tendrás mi gratitud siempre mil gracias

Exitos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas