PDA

Ver la Versión Completa : Problemas Apertura Cajon Fastreport+epson tm-t88iv


hibero
08-04-2010, 21:13:43
Estoy utilizando la última version de fastreports y una impresora térmica epson tm-t88iv con interfax USB. Los informes van de lujo.
El problema viene cuando quiero que al final del informe se me abra el cajon del dinero que está conectado a la impresora. Para conseguir abrir el cajón
1. He agregado una banda ReportSummary al final
2. He agregado un FrxMemoView dentro de esta banda
3. He escrito dentro del FrxMemoView una "A"
4. Le he puesto al FrxMemoView el tipo de letra "control".
( El tipo de letra control es una fuente que se instala junto con el controlador para la impresora de epson.
Se puede hacer una prueba sencilla con el wordpad, creando un nuevo documento añadiendo una "A" con el tipo de letra "control". Luego se imprime y se abre el cajon, perfectamente)

Con FastReports(utilizando el método anterior), consigo que se abra el cajón, el problema es que se envía la señal al cajon para que se abra antes de empezar a imprimir y no al final. Además el cajón se abre y a continuación sigue enviando la señál repetidas veces

¿Alguna idea?

Salu2

Lepe
08-04-2010, 21:49:58
Si usas la doble pasada, es posible que el ReportSummary se ejecute en la primera pasada, de ahí que salga antes de lo previsto. De hecho, esperaría que se abriera 2 veces el cajón, o incluso 4 si tienes una presentación preliminar del informe.

Como sabes la doble pasada se usa para saber el total de páginas en el primer folio (el típico texto: "página 1 de 5")

hibero
08-04-2010, 22:45:56
tendría lógica que fuera eso, pero no, en el menu informe >> Opciones la casilla Doble Pasada no está Marcada.

Investigando he encontrado otra solución "chapucera" que si me funciona es utilizar la variable Printer de la unidad Printers

1. Incluyo en el uses la unidad "printer"
2. creo una función como la que sigue y la llamo después de imprimir el informe


function AbrirCajon; //Suponiendo que la impresora que me interese esté por defecto, sino hay que añadir codigo para seleccionarla por su nombre
begin
Printer.BeginDoc; //Inicio el trabajo
Printer.Canvas.Font.Name:='Control'; //Fuente "control"
Printer.Canvas.TextOut(0,0,'A'); //Imprimo el código A que Abre el cajón
Printer.EndDoc //finalizo el trabajo
end;


Gracias

darkerbyte
09-04-2010, 03:10:08
Yo he utilizado estas 2 opciones y me ha funcionado bien sin importar el tipo de impresora y ni el cajón.

1. En la ficha de propiedades de la impresora (panel de control -> impresoras y faxes -> epsonxxxx) debe mostrar en la configuración avanzada la opcion de cajón de dinero y adicionalmente con la opcion de hacerlo antes de imprimir y despues de imprimir el documento. Cuando la activas. Listo! El cajon se abre cuando mandes a imprimir un documento, sin impotar de donde lo mandes (tu programa, word, excel, paint, etc). Al terminar de imprimir el documento, abre el cajón.

2. Escribir directamente al puerto enviando la cadena := #27+#....
Si das una búsqueda por el foro encontrarás la cadena que abre el cajón y el método para escribir directamente al puerto.

Obviamente la opción 1 es la más facil y efectiva.
Buena suerte.