Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2007
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Thumbs up 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 .

paso tres: cree una variable para el form, (llamada Vpagina), he hice las asignaciones asi:

Código Delphi [-]
 qrBanda_pagina.Caption := inttostr(vPagina);
             vpagina := vpagina + 1;

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
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #2  
Antiguo 22-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 22-10-2007
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
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
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #4  
Antiguo 22-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 22-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Probado con QuickReport que viene en Delphi 7 y funcionando:

Creamos una variable donde guardamos el número de página (number)
Código Delphi [-]
class TfrmQR3Demo = Class(TForm);
...
  private
    { Private declarations }
    Number : integer;
    procedure Myprint(Sender:TObject; var Value:string);
    procedure FormCreate(Sender: TObject);
end;

En el OnCreate de la ventana:
Código Delphi [-]
procedure TfrmQR3Demo.FormCreate(Sender: TObject);
var i: integer;
begin
// rescatar el valor inicial de la base de datos 
// y asignarlo a la variable Number

  Number := 3;
end;

Yo he hecho todo por código delphi:
- crear la banda
- asignar propiedades
- Crear un qrlabel y asignar su evento
- dar sus coordenadas, etc
Código Delphi [-]
aReport.Bands.HasPageFooter := true;
aReport.Bands.PageFooterBand.Enabled:= True;
aReport.Bands.PageFooterBand.Visible:= true;
aReport.Bands.PageFooterBand.Height:= 90;
aReport.Bands.PageFooterBand.Color := clCream;
with TQRLabel(aReport.Bands.PageFooterBand.AddPrintable(TQRLabel)) do
begin
  Left := 20;
  top := 40;
  AutoSize:= False;
  width := 300;
  Enabled:= true;
  Caption := '00'; // si se omite esta línea no sale nada ¿cosas del QuickReport?
  OnPrint := MyPrint;

end;
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í:
Código Delphi [-]
procedure TfrmQR3Demo.Myprint(Sender: TObject; var Value: string);
begin
  Inc(Number,1); 
  Value := IntToStr(Number);
end;

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

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 22-10-2007
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
Edito: Por cierto, mi nombre no es raro, es el nombre de mi ciudad. El tuyo si que es raro

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...
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #7  
Antiguo 23-10-2007
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Resuelto

Ok..
Para LEPE: Super agradecido con tu sugerencia, me sirvio de más..., 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 :
Código Delphi [-]
         form3.QuickRep1.OnPreview := form2.muestra;
         form3.QuickRep1.Preview;
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.
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #8  
Antiguo 23-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En cuanto a pasar de números a letras en el foro tienes el componente ATexto, no sé si lo conoces.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Key violation. Continuar con siguiente registro CHiCoLiTa Conexión con bases de datos 11 14-02-2007 21:48:37
Continuar numeracion en impresion !! Help RJF Impresión 2 07-11-2006 04:43:17
Reiniciar numeración en DB SQLServer Alexander Conexión con bases de datos 5 03-09-2004 00:36:22
Numeracion y viñetas en Word maurogambo Servers 1 27-07-2004 10:18:26
No se continuar pepelu1975 Varios 1 19-02-2004 11:02:22


La franja horaria es GMT +2. Ahora son las 01:28:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi