Disparidad de registros con Vista Previa e Impresion en Listener VFP9

320 views
Skip to first unread message

Angel Ferreira

unread,
Jan 4, 2012, 9:07:14 PM1/4/12
to Comunidad de Visual Foxpro en Español
Buenas noches,

Amigos, en esta oportunidad les escribo, porque la verdad es que ya
no tengo mas nada que pueda probar :(

Resulta que tengo un Listener de VFP9 para los reportes el cual fue
creado por nosotros. Dicho listener lo que hace es presentar los
reportes de VFP en Formularios que no sean modales para permitir la
emision multiple de Reportes, pero, despues de usarlo por casi un
anio y no presentar fallas, un cliente me llamo indicandome que
cuando emite el reporte por pantalla, se muestran mas lineas de
detalle que cuando se manda a imprimir el reporte.

Esto trae como consecuencia lo siguiente:

1. Lo que usuario ve en pantalla no es lo mismo que sale por la
impresora.
2. En el preview el reporte muestra por ejemplo: Pagina 10 de 20 y si
el usuario manda a imprimir la pagina 10, en el reporte dice: Pagina
10 de 24 ( Es mayor en el reporte, porque en el preview se muestran
mas lineas de detalle y esto hace que el preview tenga menos
paginas ).

Lo cumbre de todo, es que como les digo, ningun cliente habia
reportado antes la falla. La verdad es que el cliente que lo
reporto, esta mandando por vista previa un reporte que tiene 200
paginas (No se si este dato pueda ayudar).

Espero que a alguien tenga alguna idea de porqué está ocurriendo esto.

Saludos y Feliz Anio 2012 para todos lleno de muchos exitos!!!!

Irlandes 1960

unread,
Jan 4, 2012, 9:34:40 PM1/4/12
to publice...@googlegroups.com
¿podrá incidir en algo la impresora? ¿un seteo del área de impresión?
Antes de la vista previa ¿tiene asignada la misma impresora que después va a usar? 

Fabricio

unread,
Jan 4, 2012, 10:40:39 PM1/4/12
to Comunidad de Visual Foxpro en Español
Debes limpiar la información de la impresora en el reporte, de esta
forma al presentarle la vista previa tomará el formato con las
especificaciones de la impresora predeterminada.

Saludos

Fabricio

Angel Ferreira

unread,
Jan 4, 2012, 11:07:49 PM1/4/12
to Comunidad de Visual Foxpro en Español
En primer lugar gracias por ayudar.

Irlandes, a que seteos te refieres?

Por ejemplo, yo antes de enviar por por pantalla e impresora hago
esto:

Set Printer to Default

Fabricio, siempre antes de emitir el reporte (Tanto por pantalla,
como por impresora) yo limpio el contenido de los campos Tags del FRX
y en el campo Expr dejo solo la Orientacion y el PaperSize.


Si tienen algunos ejemplos de codigo para ver si en algo puede
ayudar, se los agradeceria.

Saludos,
AF

Angel Ferreira

unread,
Jan 5, 2012, 9:33:50 AM1/5/12
to Comunidad de Visual Foxpro en Español
Buenos dias,

Efectivamente, revisé y justo ejecuto un Metodo de una clase antes de
imprimir un reporte:



Parameters pcRep

&& pcRep = Nombre Fisico del Reporte

Use (pcRep) In 0 Alias Reporte
Select Reporte

lcExpr=Alltrim(Expr)

lcExpr=Iif("ORIENTATION=0" $ lcExpr,"ORIENTATION=0","ORIENTATION=1")
lcExpr=lcExpr + Iif("PAPERSIZE" $ Expr,;
"Chr(13)+Chr(10) + Substr(Expr,At('PAPERSIZE',Expr),11)","")


Replace Expr With lcExpr,;
Tag With [],;
Tag2 With []

Use In (pcRep)

Set Printer to Default

y luego aca viene el Report Form....


Tambien revise las impresoras seleccionadas antes de la Vista Previa y
antes de la Impresion y son las mismas. Para lo anterior utilice:

Set("Printer",2) && Impresora Predeterminada de Windows
Set("Printer",3) && Impresora Predeterminada de VFP


Saludos,
AF

Irlandes 1960

unread,
Jan 5, 2012, 9:43:26 AM1/5/12
to publice...@googlegroups.com
Siendo así, ¿no deberías ejecutar el mismo procedimiento antes de la vista previa? veo que justamente estas tocando la longitud del papel.

Angel Ferreira

unread,
Jan 5, 2012, 9:59:25 AM1/5/12
to Comunidad de Visual Foxpro en Español
Irlandes,

Ciertamente ese codigo se ejecuta antes de la Vista Previa y tambien
antes de la Impresión.

Saludos,
AF

GeoSys Diseño de Software

unread,
Jan 5, 2012, 10:29:52 AM1/5/12
to publice...@googlegroups.com
El FXR y FRT  de ese reporte ¿no los compilaste incluido al exe?, si vas a modificar un reporte en modo de ejecución tienes que sacarlos de tu exe, ya que aunque modifiques el reporte la aplicación va a tomar el que tiene incluido dentro de el.

Saludos

Anthony Contreras Peralta

Costa Rica.

GeoSys Diseño de Software

unread,
Jan 5, 2012, 10:32:11 AM1/5/12
to publice...@googlegroups.com
El FRX y FRT  de ese reporte ¿no los compilaste incluido al exe?, si vas a modificar un reporte en modo de ejecución tienes que sacarlos de tu exe, ya que aunque modifiques el reporte la aplicación va a tomar el que tiene incluido dentro de el.

Angel Ferreira

unread,
Jan 5, 2012, 10:39:13 AM1/5/12
to Comunidad de Visual Foxpro en Español
Hola GeoSys,

Si amigo, todos mis reportes estan fuera del EXE para poder
modificarlos en tiempo de ejecucion.

Saludos,
AF

On 5 ene, 11:29, GeoSys Diseño de Software <geosy...@gmail.com> wrote:
> El FXR y FRT  de ese reporte ¿no los compilaste incluido al exe?, si vas a
> modificar un reporte en modo de ejecución tienes que sacarlos de tu exe, ya
> que aunque modifiques el reporte la aplicación va a tomar el que tiene
> incluido dentro de el.
>
> *Saludos*
> *
> *
> *Anthony Contreras Peralta*
> *
> *
> *Costa Rica.
> *

GeoSys Diseño de Software

unread,
Jan 5, 2012, 11:03:04 AM1/5/12
to publice...@googlegroups.com
Está interesante el asunto y lo ha probado con todas la impresoras instaladas y pasa lo mismo?, o sea, con cualquier impresora que defina al reportar por pantalla salen menos paginas que las que se imprimirían.


Saludos

Anthony Contreras Peralta

Costa Rica.

Irlandes 1960

unread,
Jan 5, 2012, 7:42:13 PM1/5/12
to publice...@googlegroups.com
¿Probaste con exorcismos y curanderos?

Ricardo Pina

unread,
Jan 5, 2012, 8:30:46 PM1/5/12
to publice...@googlegroups.com
Hola Angel
 
Imprimes desde la vista previa o vuelven a generar el reporte para impresora ?
Ocurre con cualquier impresora o con alguna impresora en particular
Hay impresoras que tienen la opción de impresión tipo encuadernación, hojas pares e impares
no será algo de eso ?
bueno, otra cosa no se me ocurre
 
Saludos
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 


Angel Ferreira

unread,
Jan 5, 2012, 9:56:43 PM1/5/12
to Comunidad de Visual Foxpro en Español
Saludos a todos,

El dia de hoy estuve en el cliente y sucedieron los siguientes
eventos:

1. Cuatro Impresoras tienen el mismo comportamiento :(
2. Super certificado que justo antes de Imprimir (Tanto por vista
previa, como por impresora) mando a limpiar el FRX en sus campos
Expr, Tag y Tag2.
3. Adicional al punto anterior, se realiza un Set Printer to Default


Aun con todo lo anterior, el Preview muestra 1 registro mas que el
reporte impreso. Esto realmente ocurre en el siguiente contexto:

a.) Reportes de mucha informacion, donde el cliente la solicita
primero por pantalla.
b.) Normalmente son reportes de mas de 100 páginas.
c.) Cuando el cliente analiza una información, visualiza la página en
la que se encuentra y posteriormente manda a imprimir esa sóla página.
d.) Sólo me está ocurriendo en un cliente de varios que tengo, lo que
me hace pensar que sea alguna condición en la base instalada del
cliente, pero, hasta que no se demuestre lo contrario, el error
seguirá siendo la aplicación. También puede ocurrir que el resto de
los clientes no hagan este manejo. Voy a visitar un cliente la
próxima semana y realizaré la prueba. También haré la prueba en una
impresora personal a ver si el comportamiento es el mismo.

En relación a tu pregunta Ricardo, yo como utilizo un listener propio
donde hago lo siguiente:

1. Ejecuto la(s) consulta(s) que anteceden al reporte.
2. Guardo el o los Cursores en un Collections de Arrays.
3. Ejecuto el Print Preview.
4. Desde el formulario del Print Preview, tengo opciones en un
Toolbar para Imprimir, Enviar a Excel, por email, etc...
5. Al pulsar imprimir, creo nuevamente los cursores desde el
Collections de Arrays y mando a la impresión del mismo.
6. También el formulario tiene la opción de imprimir sin necesidad de
pasar por el Preview ( Donde no se generan collections de Arrays ) e
igualmente falla desde ese lugar en el código.

La verdad es que no sé que más realizar. El día de manana estaré en
el cliente y les enviaré un ScreenShot del Print Preview y si puedo un
Scanner del Reporte impreso para ver si ustedes logran ver algo que no
veo yo.

Lo cierto, es que esto nunca había ocurrido antes de utilizar un
Listener. Siempre en mis mas de 12 anios programando en Fox, un
Preview de un reporte, se imprimía sin mayor problema. En algunos
casos tuve algún probrema con los márgenes, pero no recuerdo haber
tenido una situación donde las líneas de detalle de un Preview fuesen
diferentes en la impresión, lo que me hace sospechar del nuevo
entorno gráfico del Listener.

Yo perdí la pista de Cersar (el creador de FoxyPreview), si alguno lo
tiene, por favor haganlo llegar para preguntarle directamente.
Quizás el ya se ha enfrentado a esta situación, aunque escribí en
Foxite y aún no recibo ninguna sugerencia.

Gracias anticipadamente por todo el apoyo y seguimos tras la pista.


On 5 ene, 21:30, Ricardo Pina <ricp...@gmail.com> wrote:
> Hola Angel
>
> Imprimes desde la vista previa o vuelven a generar el reporte para
> impresora ?
> Ocurre con cualquier impresora o con alguna impresora en particular
> Hay impresoras que tienen la opción de impresión tipo encuadernación, hojas
> pares e impares
> no será algo de eso ?
> bueno, otra cosa no se me ocurre
>
> Saludos
>
> * *
>
> *                   Ricardo Pina*
>
> *Desarrollo y Servicios Informáticos*
>
> *                  Profesionales
>                www.dsip.com.ar*
>
> **

Angel Ferreira

unread,
Jan 5, 2012, 10:03:40 PM1/5/12
to Comunidad de Visual Foxpro en Español
Jajaja, creo que algo de eso para este caso no vendría mal!!!

Saludos ;)

GeoSys Diseño de Software

unread,
Jan 5, 2012, 11:00:20 PM1/5/12
to publice...@googlegroups.com
Sí, es algo curioso, lo que si he notado que por ejemplo, cuando uno envía un reporte con preview, la impresora por defaul es de inyección y tiene la configuración de imprimir en texto económico pasa eso que difiere lo de la pantalla a lo impreso, en el reporte se visualiza XXX líneas y luego al imprimir es otro.

Algo así he notado, pero yo supongo que es por lo de la configuración de la impresora que está en económica y no en texto normal.

Por aquello de las dudas puedes mirar si las impresoras están en modo normal de impresión o en modo económico.

Digo hay que ver en esas impresoras bien la configuración en ellas, si el reporte lo confeccionaste en modo de diseño en tipo de papel carta y luego las impresoras tienen el tipo de papel A4 o otro tipo de papel que no es carta por ejemplo.

Saludos

Anthony Contreras Peralta

Costa Rica.

Fabricio

unread,
Jan 6, 2012, 12:15:10 AM1/6/12
to Comunidad de Visual Foxpro en Español
Ya revisaste en la configuración de la impresora que tenga por defecto
el papel que tiene fisicamente? a veces usan tamaño carta y tiene
configurado por defecto el A4, esto ocasionaria esta situación.

Saludos

Fabricio

Irlandes 1960

unread,
Jan 6, 2012, 2:22:25 PM1/6/12
to publice...@googlegroups.com
La verdad que nunca me paso algo parecido. Acabo de probar por las dudas, previsualizando e imprimiendo las paginas 323 y 324 de un informe de varios miles, y sale perfecto. 
No entiendo mucho eso que mencionas de guardar el resultado de las consultas previas al informe en un colecction array  
2. Guardo el o los Cursores en un Collections de Arrays.
3. Ejecuto el Print Preview.
4. Desde el formulario del Print Preview,  tengo opciones en un
Toolbar para Imprimir, Enviar a Excel, por email, etc...
5. Al pulsar imprimir,  creo nuevamente los cursores desde el
Collections de Arrays y mando a la impresión del mismo. 
En mi caso los generadores de informes generan la consulta de los datos que sean necesarios (un select con mas o menos complejidad)  en un DBF en disco local, y luego el usuario selecciona que quiere hacer con el resultado (imprimir todo o parte, vista previa, excel, y un par de etc más) pero el cursor siempre es el mismo que generó en el primer paso, y no se toca para nada.
¿no podrá el problema venir por ese lado? 

Angel Ferreira

unread,
Jan 24, 2012, 11:24:58 PM1/24/12
to Comunidad de Visual Foxpro en Español
Hola Irlandes,

Ya revisé el código que guarda los cursores y esto lo hago porque al
ejecutar un reporte y enviar la vista previa usando un listener,
necesito que la session de datos de ese listener sea privada,
porque? bueno, porque asi puedo imprimir el reporte por vista previa
varias veces y no se ve afectado por la vista previa anterior. Esta
es una de las ventajas de poder emitir un reporte varias veces con
fechas diferentes (por ejemplo) y luego puedes comparar. En versiones
de VFP anteriores a la 9, la vista previa de un reporte siempre era
Modal, esto cambio un poco en VFP9 con la llegada de los listener.

Lo que yo hago entonces, es ejecutar el codigo previo al reporte y
ese codigo seguramente me genera uno o varios cursores, estos
cursores son los que guardo en Arrays y luego esos Arrays son los que
paso al Listener para ser cargados pero en una session de datos
privada. De esta forma puedo obtener la funcionalidad explicada sin
que el movimiento por un cursor pueda afectar la visualización de un
reporte emitido varias veces.

Aun así, es válida tu acotación, pero ya revisé y se generan la
misma cantidad de registros para la vista previa y para la impresión.

Lo raro está que en la Vista previa la cantidad de registros mostrada
es mayor a la impresa :s

Seguiré investigando sobre lo que ocurre y cuando logre dar con la
causa del problema, les estaré comentando.

Saludos y gracias por la ayuda.

Cesar VfpImaging

unread,
Feb 2, 2012, 5:42:34 AM2/2/12
to publice...@googlegroups.com
>>Yo perdí la pista de Cersar (el creador de FoxyPreview),  si alguno lo
tiene,  por favor haganlo llegar para preguntarle directamente.
Quizás el ya se ha enfrentado a esta situación,  aunque escribí en
Foxite y aún no recibo ninguna sugerencia.
Hola Angel,
 
Nunca tuve este problema.
Intente crear de nuevo tu reporte, con las mismas caracteristicas, pero DESDE EL INICIO. Ya se paso conmigo un comportamiento loco, y solo cree todo de nuevo y funciono :-D
 
Saludos
 

 
2012/1/25 Angel Ferreira <ange...@gmail.com>

Cesar VfpImaging

unread,
Feb 2, 2012, 5:43:19 AM2/2/12
to publice...@googlegroups.com
Otra cosa, intente con SET REPORTBEHAVIOR 80 y con SET REPORTBEHAVIOR 90, y mire se hay cambios


 
2012/2/2 Cesar VfpImaging <cch...@gmail.com>
Reply all
Reply to author
Forward
0 new messages