![]() |
continuar una numeracion con Qreport
Saludos,
Alguien seria tan amable de darme una idea de como puedo lograr esto: Se debe imprimir un reporte de las operaciones diarias. Dicho reporte tiene un numero X de paginas. Cada reporte se anexa a los de los dias anteriores y de ese modo se va formando un libro por trimestres; Asi al final del trimestre se tiene un libro de las operaciones realizadas dia por dia, en orden ascendente. El caso es que cada pagina del libro debe ir numerada al estilo de los libros legales, por ejemplo: El primer reporte correspondiente al dia primero de enero consta de tres (03) paginas que se numerarian asi: pagina uno (01), la segunda pagina pagina dos (02) y la tercera: pagina tres (03)....... ..... de modo que al dia siguiente cuando se prepare el reporte, éste empiece por: pagina cuatro (04) y asi sucesivamente hasta completar las paginas de ese dia. El caso es que no logro que a cada nuevo reporte se le pueda inicar en que pagina debe comenzar la numeración. Trate de usar la variable PAGENUMBER del QR.. y resulta que es de solo lectura... paso dos: crear una propiedad llamada pagina que en su proceso de lectura solicitara sencilla y llanamente al usuario por un inputbox la pagina que viene, pero al poner la signacion de la propiedad en el evento beforeprint, al hacer el preview, me solicita la actualizacion de la propiedad por cada pagina :confused:. paso tres: cree una variable para el form, (llamada Vpagina), he hice las asignaciones asi:
No funciono. paso cuatro: deje las asignaciones como estaban y coloque una referencia a la propiedad "pagina" en distintos eventos tanto del form como del Quickrep y solo he pasado por una serie de errores y violaciones de acceso que hacen que me sienta mas hundido que el Titanic. Por favor, si tienen una idea, estoy a la expectativa, mientras continuo buscandole la vuelta.... Agradecido de antemano |
Usas un qrbanda_pagina, ¿es un qrBand?, ¿por qué no pones un qrlabel dentro?
Antes del listado, leerías el valor desde la base de datos, de un .ini, etc. Después se incrementa solo en el quickreport before print, y en ese mismo sitio aumentas la propiedad del form, de forma que al terminar de imprimir, tengas el valor en el form para poder guardarlo de nuevo en un .ini o en la base de datos. Usando el beforePrint de la banda o del qrlabel debe funcionar. Saludos |
Gracias Lepe, .... nombre raro, verdad?.....
Es un qrLabel que esta dentro del qrBand. presisamente la idea es como tu dices, la idea es almacenar en un tabla (Uso FB), en la que tengo almacenadas las fechas de cada reporte, y en un campo integer planeo guardar la pagina inicial. Pero estoy tratando de manejarlo primero asi y cuando este claro y operativo implementar la conexion.... lamentablemente no se mueve..... en un intento previo me cargo el valor en el qrlabel, pero no me aumentaba con la numeracion de las paginas.... sera que estoy accediendo mal? descubri que se podia acceder y asignarle valores a la PAGENUMBER, pero es asi: qrprev.pagenumber := x, a mi no me funciona.. me fije bien y es con un componente QrPreview, y yo estoy usando un QuickRep1, trate de ponerlo sobre el form y cae formando un cuadro. Luego entiendo que es que tengo que hacer un form previo a mi manera y no el que trae por defecto el quickreport. Si tengo que crearme mi propio reporte previo y asi soluciono, solo dimelo por favor y le meto el pecho, porque trate de seguir el ejemplo del manual del rinconcito delphi y se me hizo dificil..... Un millon |
Cuando tienes un QuickReport y le das la orden Quickreport1.PreviewModal, te aparece la presentación preliminar, que está formada por un panel con varios botones; abajo tienes el QRPreview que renderiza el folio actual. La propiedad a la que haces referencia: qrPreview1.pagenumber indica qué página es la que debe renderizarse.
Como ves esa propiedad no tiene nada que ver con lo que quieres hacer. Déjame probar y después te cuento. Tengo un lío tremendo entre delphi 6, 7 y BDS2006, ya que por motivos de trabajo tengo que alternar entre los 3 delphi's, cada uno con unos componentes distintos instalados. Saludos |
Probado con QuickReport que viene en Delphi 7 y funcionando:
Creamos una variable donde guardamos el número de página (number)
En el OnCreate de la ventana:
Yo he hecho todo por código delphi: - crear la banda - asignar propiedades - Crear un qrlabel y asignar su evento - dar sus coordenadas, etc Si tienes un QuickReport en tiempo de diseño: - coloca un qrLabel dentro del FooterBand. - Asegúrate de escribir algo en su propiedad Caption por ejemplo dos ceros '00' (si se deja vacía,QuickReport no ejecuta el evento OnPrint (nu sé por qué) - Asigna el evento OnPrint con el nombre que quieras (doble clic en el inspector de objetos y corriendo que es gerundio). Debe quedar más o menos así:
Queda guardar el valor de Number en la Base de datos, supongo que podrás hacerlo en el evento OnAfterPrint del quickReport. Edito: Por cierto, mi nombre no es raro, es el nombre de mi ciudad. El tuyo si que es raro :p :p Saludos |
Cita:
Jajajajajaja,,,, No mi estimado amigo, no me referia a tu nombre, o el de tu ciudad en tal caso, sino al nombre que le puse a el RqLabel, que en vez de ponerle algo como rqLabelPagina, le puse rqBand_pagina y obiamente no contribuye a que se entienda el planteamiento..... Bueno he estado con la conexion a internet medio intermitente y asta ahora pude ver tu respuesta, lo que te agradezco enormemente y voy a probar ahorita mismo. En todo caso logre el cometido precisamente creando mi propio "Preview", bastante basico, pero funcional. Sin embargo me intereza mucho su solución porque resulta que ahora tengo que diferenciar entre los pares e impares, pues en las paginas impares la numeración debe ir asi: "Página doce (12)" -lo que me obliga a tener que convertir numeros a letras- y en las paginas pares: "vuelto página 12", y creo que mediante tu formulación lo puedo abordar mejor... Un millon y luego posteo el avance...:) |
Resuelto
Ok..
Para LEPE: Super agradecido con tu sugerencia, me sirvio de más...:D, porque yo trate de implementar lo de la variable pero no estaba claro de como funcionaban las cosas... Al final como comente antes cree mi propio preview, como el que pude trabajar sin problemas el QrLabel que cambiaria la paginación; pude montar todo sobre el preview que el Qreport trae por defecto, pero me gustaron las personalizaciones que hice. Lo siguiente fue agregar otra variable que controlaria las paginas pares e impares. Para cualquier otro despistado como yo que quiera usar la guia de Freire de como personalizar el Preview de Qreport, le aclaro que los identificadores no declarados que da como error el compilador, son los nombres que el autor le dio a los componentes que añadio al que seria el form del preview, llamado form3, sobre un panel alineado al top, o sea: sbFirstPage: TSpeedButton sbPreviousPage: TSpeedBut sbNextPage: TSpeedButton; sbLastPage: TSpeedButton; StBar: TStatusBar; printsetup: TSpeedButton; print: TSpeedButton; exit: TSpeedButton; sepage: TSpinEdit; ETC.... Lo otro es que recuerden hacer esto : donde muestra es el procedimiento que inicializa los valores pero sobre todo contiene esta linea: QRPrev.QRPrinter := TQRPrinter(Sender) por su puesto todo esto despues de crear la form3 (mi caso), pues en el ejemplo, el amigo Freire simplifica el ejemplo al mantener la form creada. Un saludo a todos. |
En cuanto a pasar de números a letras en el foro tienes el componente ATexto, no sé si lo conoces.
Saludos |
La franja horaria es GMT +2. Ahora son las 13:23:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi