![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Vamos ahora a crear un driver para nuestra impresora. Como los trabajos que normalmente realizaremos con una matricial son muy simples, instalaremos la impresora "Generico/Solo Texto". Los dibujitos y otras lindezas, se las dejamos a las impresoras de chorro de tintas. Son maravillosas para esos trabajos.
Podemos iniciar el asistente para instalar la impresora. El solo la instalará, utilizando los driver que el propio Windows trae por defecto. La impresora genérica tiene la ventaja de que admite todos los papeles definidos en el servidor, mientras que si instalamos los especificos de nuestra impresora, es mas que probable que no admita todos los tamaños definidos y mucho menos nuestra definición de cheque. Si todo ha ido bien, al terminar, tendremos definida nuestra impresora. Yo aconsejo cambiarle el nombre. Eso de generico, es ( valga la redundancia) muy genérico. Además, seguro que a nuestros clientes les inspira mas confianza si ven un nombre mas explicito. Por ejemplo, si hemos definido la impresora para hacer cheques, porque no llamarla "Cheques del Banco Pepito". Si mas adelante, en el momento de imprimir, el programa le da a elegir varias impresoras, no dudará en señalar al Banco Pepito, si lo que quiere es imprimir sus cheques. Hay que ponerse al nivel del cliente y facilitarle la vida ( Cosa que desde luego el no hace, al pedirte el "mas dificil todavía"). Bien, cuando aparezca el icono de nuestra impresora, la remarcamos con el botón derecho del ratón. En la pestaña Presentación, Preferencias de Impresión, Papel/Salida: Ponemos Cheque. En la pestaña Papel/Calidad:Alimentación Contínua: Sin pausa. Si ahora remarcamos para que aprezcan las Propiedades, en la pestaña General, sale por defecto A4. Hemos de conseguir que aparezca "Cheque". Para ello, vamos a la pestaña Configuración de dispositivo: Alimentación contínua: En todo lo que aparezca ponemos cheque. Pulsamos aplicar y así en la pestaña General, en papel disponible deberá aparecer la palabra Cheque. Una vez definido el driver, deberemos comprobar que funciona. Cargamos Word, selecionamos esa impresora y en el menu de configurar pagina , en tamaño de papel buscamos cheque. Como prueba, podemos escribir unos 3 o 4 cheques e imprimirlos aunque sea en una hoja A4. El caso es comprobar que el driver funciona perfectamente. Si esto no sucede, repasar lo expuesto, pero antes de seguir adelante, hay que estar seguros de que la impresora reconoce el papel definido por nosotros. Hasta ahora, hemos retocado a Windows, definiendo el papel en el Servidor y en la impresora. Saludos y mañana ya nos meteremos con el tercer culpable.QReport. |
|
#2
|
|||
|
|||
|
Como lo prometido es deuda, vamos a "destripar" a QReport. La primera pregunta es ¿ y porque QReport ?.
Mi respuesta es: ¿ Y por qué no ?. Hasta la versión 7 de Delphi, Borland ha dado soporte a este generador de informes. Se compenetra muy bien con Delphi ( solo faltaba, esta escrito en Delphi) y puede hacer casi lo mismo que cualquier otro. He trabajado con Cristal Report y no lo cambio por Qreport. Por lo menos en ambiente Delphi. Una de los inconvenientes que mas se oye, es que no permite al usuario final diseñar sus informes, pero esto no es cierto... por lo menos en la versión profesional. Ocurre que ( lo mismo con TeeChart) que la versión ofrecida gratis con Delphi es la versión light. Supongo que será un problema de costos y de no querer encarecer Borland su producto. Politicas comerciales a parte, si se quiere hacer algo mas serio, yo recomiendo que se adquiera la versión profesional. Trae los fuentes o lo que es lo mismo, nos da la oportunidad de "retocarlo" a nuestro gusto. De paso, podemos apreciar lo bien que programan los de QSoft. Como profesional, me quito el sombrero ante ellos y les digo "chapeau". Es una delicia leer sus fuentes. Las definiciones de clases, como utilizan la herencia, etc. Si te gusta la OOP, solo por eso, deberias adquirir la versión profesional. Las siguientes explicaciones se refieren a la versión Qrepor Pro 3.6.2. Como siempre, espero que funciones en otras versiones pero no lo puedo asegurar porque no lo he probado. saludos. |
|
#3
|
|||
|
|||
|
Para cada papel, Qreport debe terner definido su nombre y sus dimensiones. Por ejemplo: A4 tiene por dimensiones 210 por 297 mm.
Además a cada papel, le asigna un numero o código que es el que le pasa a la impresora, para que esta lo utilice. En todo este proceso, estamos asumiendo que la impresora reconoce el tamaño de papel que queremos usar. Por eso, al principio, construimos un driver de impresora genérico y comprobamos, por medio de Word u otro procesador de texto, que funcionaba, esto es, que nuestra impresora reconocía ese tamaño. El problema esta en que no conocemos de antemano que codigo tiene ese tamaño de papel. En la pagina web de qsoft www.qusoft.com, puedes ver a la izquierda una columna con el titulo DIY Fixes. Pulsando te aparecen una serie de respuestas a problemas. Localiza "Adding new paper formats". Prácticamente te explica todo el proceso. Debes comenzar por bajarte el programa printercheck. Una vez descomprimido, te aparecerá PRDrive.exe. Esta utilidad, mediante llamadas al API de Windows te indica el codigo del papel que queremos usar. De paso, puedes leerte los fuentes y aprenderás mucho sobre el manejo de impresoras, etc. Lo recomiendo. Para el papel que hemos definido, llamado cheque, en mi impresora matricial y con el driver genérico/solo texto, obtuve el código 123. Naturalmente, este código variará en función de la impresora, driver y tipo de papel. Con este dato, ya podemos retocar los fuentes. Saludos. |
|
#4
|
|||
|
|||
|
No hace falta decir, que antes de retocar ningún fuente, debemos hacer unas buenas copias de seguridad por aquello de la Ley de Murphy.
Abrimos Delphi y cargamos el paquete qrpt70.bpl. Me estoy refiriendo a la versión de Delphi 7.0 y a Qreport Pro 3.6.2. Debo suponer, que será igual o muy parecido con otras versiones, pero yo no lo he hecho. Desde el cuadro package, cargamos qr3const.pas Al principio de la unidad podemos encontrar: Código PHP:
|
|
#5
|
|||
|
|||
|
Mas complejos son los cambios a realizar en la unidad QRPrntr.pas, pero también secillos.
Código PHP:
Posteriormente definimos esta constante: Código PHP:
Código PHP:
Código PHP:
Código PHP:
Recompilamos la libreria y la instalamos como de costumbre. |
|
#6
|
|||
|
|||
|
Si todo el trabajo se ha hecho bién, al diseñar un informe, usando la clase TQuickRep, en el inspector de objetos, en el apartado Page, podremos seleccionar el tamaño de papel definido por nosotros ( cheque en nuestro ejemplo).
Deberá tener las dimensiones definidas a nuestro gusto y además, un código que será entendido por nuestra impresora matricial. Con ello, ya podremos usar tamaños de papel definidos por el usuario. Saludos. |
|
#7
|
||||
|
||||
|
mi más sincera felicitación...!!!
una de las explicaciones mas simples y entendibles de las que he ledido aqui y en otros foros y sitios de programacion... siempre he lidiado con escribir directamente al puerto por que no le hallaba por donde atacar el problema... he llegado apenas a la definición del papel (excepcional por lo sencillo), y espero, el fin de semana completar los pasos y tener asi, la opcion de mejorar mis viejos y proximos proyectos... gracias por la ayuda.... |
|
#8
|
|||
|
|||
|
Como modificar los fuentes de Qreport
Eres la persona que mas domina este tema y mira que he luchado mucho con este problema hasta el punto que me siente desesperado.
Yo pude crear la impresora y el formulario con las medida que necesito, tambien lo probé en Word y todo funiciono perfecto. lo que no he podido hacer es retocar los fuentes de QReport. Si no es mucha molestia me podria explicar mejor como cargo el paquete qrpt70.bpl Nota: Uso delphi 7.0 y la version de Qreport que viene con este. Cita:
|
|
#9
|
|||
|
|||
|
nesesito ayuda para imprimir
oye nesesito una pequeña ayuda mira es que no se como imprimir en delphi tan solo serian unos campos en donde podria desplazarme facilmente para ingresar datos y luego imprimirlos no se si pasarlos a un dbgrid primeramente y despues imprimirlo pues ya que como me di cuenta desde el qreport se puede imprimir me darias una idea o me ayudarias por favor ya que vi que tu si te la sabes y pues seria chido que me ayudaras.. gracias
estare en contacto |
|
#10
|
||||
|
||||
|
Hola, Bienvenido a ClubDelphi, como a todos, te recomiendo leas la guia de estilo, te ayudará a redactar tus preguntas.
-En delphi, File New -> Other -> QReport -Necesitas un TQuery (TIBQuery, TMdoQuery, etc) para extraer los datos. -En el quickreport, tienes su propiedad Bands, pon a true en el inspector de objetos el HasDetail. - Enlaza el QuickReport con la query. -Añade varios qrDBText, configura el dataset y el FieldName - boton derecho y pulsa sobre Preview. Podrás ver los resultados. Si tienes dudas, abre un hilo nuevo, ya que aquí no va muy bien este tema. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#11
|
|||
|
|||
|
otra duda
oye no me funciono ese procedimiento porque no tengo tquery o los otros objetos que me señalaste tal vezs porque tengo deplhi 5.0 o nada que ver
espero respuesta |
|
#12
|
|||
|
|||
|
Hola, me acabo de unir al Foro, muy interesante el tema, he seguido todos los pasos correctamente, pero tuve un problema con el driver generico: al imprimir sale todo pero no con la fuente deseada, y ademas no respecta los espacios en donde debe imprimirse el texto
![]() Ayudenme porfis si? Gracias anteladamente. |
|
#13
|
|||
|
|||
|
Segun decias "gatita" el problema surge cuando cambias los tipos de fuentes, algunos drivers genericos no soportan todas las fuentes, pero si es matricial deberias de imprimir con alguna courier o con otra similar.
El tema de los espacios supongo que sera porque al imprimir estaras indicando las posiciones en una medida diferente de la que esta cogiendo el QuickReport. Yo siempre lo paso a mm y nunca he tenido problemas Visita pronto http://www.miranos.es aqui tendreis ejemplos mios y mucha información sobre delphi. Gracias a club delphi por seguir aqui. ![]() Última edición por josejm fecha: 17-08-2007 a las 16:35:48. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|