![]() |
![]() |
| 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
|
|||
|
|||
|
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. |
|
#2
|
|||
|
|||
|
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. |
|
#3
|
|||
|
|||
|
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:
|
|
#4
|
|||
|
|||
|
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. |
|
#5
|
|||
|
|||
|
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. |
|
#6
|
||||
|
||||
|
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.... |
|
#7
|
|||
|
|||
|
Hola que tal, soy Jorge y soy nuevo en este foro, mas bien nunca he estado en uno, soy mexicano y tengo un problema bastante serio.
Tengo un sistema que diario imprime hasta 1000 folios a 1/3 de carta y lo hacia bastante bien con QR y con la impresora en tamaño del papel CUSTOM, hasta que por necesidades de la empresa actualizan equipos y estos traen instalados XP, ahí mi problema, no puedo personalizar el tamaño del papel, me encontre con tu articulo y me parecio bastante logico y muy bueno, pero hice todo hasta que llegue a probarlo con word y no me funciono, configuro la pagina con un formato llamado ABONO que mide 1/2 carta y si me muestra ese tamaño en la pantalla, pero al momoemtnode mandar imprimir se salta hacia la otra hoja, no se detiene al finalizar el documento. saludos espero y puedas ayudarme. |
|
#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
|
|||
|
|||
|
Hola JODELSA:
Perdona el retraso en contestar, pero es que como ya dije tengo muy poco tiempo y mis entradas al foro suceden de tarde en tarde. Antes de seguir, recuerda que es necesario que tengas la versión profesional que es la que trae los fuentes. Normalmente los tendras en un subdirectorio de Delphi7. El nombre por defecto es quickrpt. Cargas Delphi, y ante de nada, borras todo lo que tengas. ( Menu File y luego Close All). Así se queda "limpio" el Ide de Delphi. Luego, otra vez con el mismo menu : File, Open y te dirijes al directorio quickrpt. Veras que los paquetes ( Packages) aparecen con iconos distintos. Para la version de Qreport 4 son QR4RunD7 y QR4DesignD7. Para la version 3 son qrpt70.bpl y dclqr70.bpl. Si remarcas el package qrpt70 ( y tienes los fuentes ) te aparecerá en una ventana Package qrpt70, las unidades y las que requiere. El aspecto es el clásico de un TreeView o arbol como el del explorador de windows. Otra vez doble click sobre el fuente que quieras retocar y despues de escribir el nuevo código, terminas dandole al menú install. Tu nuevo paquete retocado, habrá sustituido al antiguo. Acuerdate de sacar unas buenas copias de seguridad antes de empezar. Cualquier duda que tengas, me la comunicas y prometo contestarla antes de fin de año.Saludos. |
|
#10
|
|||
|
|||
|
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 |
|
#11
|
||||
|
||||
|
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. |
|
#12
|
|||
|
|||
|
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 |
|
#13
|
||||
|
||||
|
Como ya dije, tu duda no tiene nada que ver con impresoras matriciales, así que continuamos aquí. Por favor, responde en ese hilo.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|