| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
francisco rocha Ens

Registrado: 21 May 2008Mensajes: 26
|
Publicado: Sab 21 Jun, 2008 7:52 pm Asunto: Numero total de hojas en quick report |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Lun 23 Jun, 2008 11:44 pm Asunto: |
|
|
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] _________________
 |
|
| Volver arriba |
|
 |
francisco rocha Ens

Registrado: 21 May 2008Mensajes: 26
|
Publicado: Mar 24 Jun, 2008 6:23 pm Asunto: numero de hojas |
|
|
Muchas por su respuesta compañeros, voy a implementar el codigo y les comento de los resultados.
Pako. |
|
| Volver arriba |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Vie 22 Ago, 2008 10:39 pm Asunto: |
|
|
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.  _________________ ><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________ |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Sab 23 Ago, 2008 3:29 am Asunto: |
|
|
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 |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Sab 23 Ago, 2008 3:38 am Asunto: |
|
|
| 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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 25 Ago, 2008 7:15 am Asunto: |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Dom 15 Feb, 2009 9:52 am Asunto: Re: Numero total de hojas en quick report |
|
|
| 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 |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Mar 14 Abr, 2009 8:49 am Asunto: |
|
|
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 |
|
 |
|