Impresoras de Matríz Vrs Object Assisted

Hola respetado experto. Te comento lo siguiente:
Recién estoy utilizando el Set Reportbehavior 90 (object assisted) con el nuevo motor de reportes de VFP 9. Diseño los reportes, utilizo el reportlistener para el preview y las impresiones son correctas en impresoras de inyección o laser.
Estoy utilizando el siguiente código:
Do (_ReportPreview) With loPreview
With loPreview
        .CurrentPage = 1
        .ToolbarIsVisible = .T.
        .CanvasCount = 1
        .ZoomLevel = 1
        .TopForm = .T.
        .Width = _Screen.Width
        .Height = _Screen.Height
        .AllowPrintFromPreview = .T.
        .Caption = "Conciliación Bancaria"
Endwith
loListener = Createobject("ReportListener")
loListener.ListenerType = 1
loListener.OutputType = 1
loListener.PreviewContainer = loPreview
loListener.PrintJobName = "SCI - Conciliación"
Report Form Concilia To Printer Prompt Preview Object loListener
Release loPreview, loListener
************************
Todo bien hasta aquí, al oprimir el botón imprimir en la vista previa, me pide seleccionar la impresora. Si no es de matriz, imprime excelente, si es de matriz muestra la impresión muy pequeña y borrosa. Me da la impresión de que lo que está imprimiendo es como una imagen del reporte.
Si lo hago con el siguiente código todo se imprime bien:
Set Reportbehavior 80
Report Form Concilia To Printer Prompt NoConsole
El informe sale perfecto en la impresora de matriz. Lógicamente no quiero hacer esto para aprovechar las características del nuevo reporteador.
¿Puedes ayudarme a solucionar este problema?
Gracias de antemano.

1 respuesta

Respuesta
1
Lo que sucede es que el report Form genera un reporte gráfico y la impresora matriz esta diseñada para imprimr solo texto, no obstante puede imprimir gráficos, pero de muy baja calidad y demora demasiado en imprimirlos.
Si el reporte a emitir exige una impresora matriz, como por ejemplo la emison de facturas pre impresas o emisión de inventarios que son demasiado extensos, lo recomendable es generar el reporte mediante un prg tipo DOS, con la opción de vista previa o impresión directa, así no hago sufrir a la impresora y el reporte se imprime rapido.
Gracias experto. Sin embargo, existe alguna posibilidad de utilizar el nuevo reporteador de manera que cuando elija una impresora, tenga la posibilidad de cambiar el tipo de reporte a enviar a la impresora. Algo así como interceptar el click del botón imprimir y (mediante algún checkbox o alguna función Sys()) detectar el tipo de impresora, si es de matriz enviarlo de la forma anterior, de lo contrario, imprimirlo normalmente.
Aún es común el uso de impresoras de matriz y no precisamente para facturas preimpresas, sino por el sólo hecho de ser más económico el mantenimiento de la cinta.
Gracias.
Puedes usar la Función Aprinters() crea un array con los nombres y tipo de impresoras,
Prtinfo() te devuelve la información de la impresora seleccionada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas