Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Numero total de hojas en quick report

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Numero total de hojas en quick report Responder citando

Buen dia Todos:

Estoy buscando la instruccion de como obtener el numero total de paginas de un reporte en quickreport.

Gracias por su ayuda.

Pako.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Me temo que el número total de páginas hasta que no se generar el informe completo no se puede saber.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Tambien puedes declarar una variable tipo entero para tomar el numero de paginas desde la impresora antes de previsualizarlo, por ejemplo este fragmento de codigo establece el formato de páginas de la siguiente manera "Pág x de xx"

Como esto es un poco largo trataré de hacerlo lo mas sencillo.

1.- dentro del formulario del Reporte Declara una variable entera, esta variable será la encargada de almacenar el numero de Páginas que tiene el reporte. (voy a sacar la información de un proyecto que tengo a la mano, asi que no me preguntes mucho sobre las demas variables jeje)

Código:

{...}
public:      // User declarations
   __fastcall TFReporte_Producto_Designe(TComponent* Owner);
   int NumeroPaginas;
{...}


2.- En el mismo Formulario del reporte donde quieres que aparezca el formato anterior, debes insertar un componente TQRExpr, y modificar su propiedad Expression = PAGENUMBER, este componente va a darnos el numero de página donde se encuentre actualmente el usuario,

3.- Dentro de este mismo componente (paso 2), ve a la parte de eventos y en OnPrint establece el codigo siguiente,

Código:
void __fastcall TFReporte_Producto_Designe::QRExpr1Print(TObject *sender,
      AnsiString &Value)
{
   Value = "Pág "+Value+" de "+IntToStr(this->NumeroPaginas);
}
//---------------------------------------------------------------------------


esto permite que cada vez que se imprima una pagina en la etiqueta TQREXrp (paso 2) nos va a dar el numero de pagina impresa asi como tambien el numero de paginas del Reporte, pues como se ha establecido dentro del encabezado del reporte (debo suponer que ahi lo quieres).

Bien ahora dentro del formulario donde "generas el reporte" es decir mandas a llamar al formulario donde has diseñado tu reporte, puedes hacer lo siguiente dentro de algun botón o donde mas quieras

Código:
// si vas a usar std::auto_ptr incluye en las cabeceras #include <memory>
std::auto_ptr<TFReporte_Producto_Designe> pRP(new TFReporte_Producto_Designe(this));

// preparamos el reporte
pRP->ReporteProductos->Prepare();

// ponemos el numero de páginas en la variable del reporte (paso 3)
pRP->NumeroPaginas = pRP->ReporteProductos->Printer->PageCount;

// algun titulo
pRP->ReporteProductos->ReportTitle = "Ejemplo Reporte - Foro Club Builder - ccsg";

pRP->ReporteProductos->PreviewModal(); // previsualizamos y presto!!



y el ejemplo
[/img]
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: numero de hojas Responder citando

Muchas por su respuesta compañeros, voy a implementar el codigo y les comento de los resultados.

Pako.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

César que mas, como estas?
una pregunta...

si deseo q en el repoRTE aparezcan las lineas de división o en su defecto las filas de un color intercalado... es posible? ya intenté y nada.

gracias de antemano. Rolling Eyes
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

En el evento BeforePrint dela banda detalle
Código:

void __fastcall TfrmTuFrom::qrDetalleBeforePrint(TQRCustomBand *Sender,
      bool &PrintBand)
{
PrintBand=true;

if (Sender->Color == clWhite)
   Sender->Color = clSilver;
   else
   Sender->Color = clWhite;

}
//---------------------------------------------------------------------------

_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Código:
void __fastcall TForm6::QuickRep2BeforePrint(TCustomQuickRep *Sender,
      bool &PrintReport)
{

//PrintBand=true;
[color=red]PrintReport[/color]=true;

if (Sender->[color=red]Font[/color]->Color == clWhite)
   Sender->[color=red]Font[/color]->Color = clSilver;
   else
   Sender->[color=red]Font[/color]->Color = clWhite;

}


q diferencia hay.. ?? como tu me dices me sale error...
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Yo uso otro método. A lo mejor es más complejo, pero me da buen resultado:
    1. Pongo en todos los elementos de la línea la propiedad Transparent a true.
    2. En el evento OnBeforePrint pogo este código:
    Código:
    if (QRBand1->Color == clWhite)
         QRBand1->Color = clSilver;
    else
         QRBand1->Color = clWhite;

De esta manera no me hace falta declarar variables. El resultado es este:

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Re: Numero total de hojas en quick report Responder citando

francisco rocha escribió:
Buen dia Todos:

Estoy buscando la instruccion de como obtener el numero total de paginas de un reporte en quickreport.

Gracias por su ayuda.

Pako.

Estaba yo rumiando esta pregunta porque me sonaba que había visto algo por el foro, et volia!: Como puedo saber el numero de paginas de un Report, de hace ya unos años. Como podía ser de otra forma de nuestro buen amigo Leo. Funciona a la perfección.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Angel.... un poco tarde respondo por aquí..
Gracias tu solución es perfecta..

Touchsoftwares siempre me salio error... = gracias también a ti.
saludos...
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.