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 

Quickrep

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Quickrep Responder citando

Hola

Tengo en mi proyecto un QuickReport. Cuando en el menu hago click en ver reporte entonces lo llamo mediante esta linea

Form2->QuickRep1->Preview();

Pero las dimensiones de este reporte me ocupa toda la pantalla.

Ahora como le hago para que cuando se llame el metodo preview, el reporte me ocupe solo la ubicacion y dimensiones que yo le especifique.

Gracias
Volver arriba
Mensaje    Asunto: Responder citando

debes generar una vista a la mediad, en la web, del Ian Marteens, o en el libro de la cara oculta de builder viene el siguiente codigo..

que pertecene a la pagina 663, espero poder ponerlo...
Cita:

Previsualización a la medida
Las versiones anteriores de QuickReport solamente permitían la vista preliminar en
forma no modal. En la versión que acompaña a C++ Builder 4 existen tres métodos
para este propósito:
Método Resultados
Preview Vista modal; impresión en el hilo principal del programa.
PreviewModal Vista modal; impresión en hilo paralelo.
PreviewModeless Vista no modal; impresión en hilo paralelo.
Me estoy ajustando a la escasa documentación de QuickReport para describir las
diferencias entre los tres métodos anteriores. Algunos programadores han encontrado
pérdidas de memoria cuando utilizan métodos de previsualización distintos
de PreviewModal.
El programador puede también crear un diálogo o ventana de previsualización a la
medida. La base de esta técnica es el componente TQRPreview. El diseño de una
ventana de previsualización a la medida comienza por crear un formulario, al cual llamaremos Visualizador, e incluir en su interior un componente TQRPreview. A este
formulario básico pueden añadírsele entonces componentes para controlar el grado
de acercamiento, el número de página, la impresión, etc. Digamos, para precisar, que
el formulario que contiene el informe se llama Informe. Para garantizar la liberación de
los recursos asignados al formulario de previsualización, debemos interceptar su
evento OnClose:
void __fastcall TVisualizador::FormClose(TObject *Sender,
TCloseAction &Action)
{
QRPreview1->QRPrinter = NULL;
Action = caFree;
}
Después hay que regresar al formulario del informe para interceptar el evento OnPreview
del componente QuickRep1 de la siguiente manera:
void __fastcall TInforme::QuickRep1Preview(TObject *Sender)
{
Visualizador = new TVisualizador(NULL);
Visualizador->QRPreview1->QRPrinter = (TQRPrinter*) Sender;
Visualizador->ShowModal();
delete Visualizador;
// O también: Visualizador->Show(), sin destruir el objeto,
// si queremos una previsualización no modal.
}
El parámetro Sender del evento apunta al objeto de impresora que se va a utilizar con
el informe. Recuerde que QuickReport permite la impresión en paralelo, por lo cual
cada informe define un objeto de tipo TQRPrinter, diferente del objeto QRPrinter global.
Si queremos navegar por la páginas de la vista preliminar, podemos traer botones o
comandos de menú al formulario y crear un manejador de eventos como el siguiente:
void __fastcall TVisualizador::Navigate(TObject *Sender)
{
// Utilizaré Tag para distinguir entre acciones
switch (((TComponent*)Sender)->Tag)
{
case 0:
QRPreview1->PageNumber = 1;
break;
case 1:
QRPreview1->PageNumber -= 1;
break;
case 2:
QRPreview1->PageNumber += 1;
break;
Impresión de informes con QuickReport 665
case 3:
QRPreview1->PageNumber = QRPreview1->QRPrinter->PageCount;
break;
}
}
Para imprimir hace falta el siguiente método:
void __fastcall TVisualizador::Navigate(TObject *Sender)
{
QRPreview1->QRPrinter->Print();
}
Existen innumerables variaciones sobre este tema. Si usted va a imprimir un documento
con un procesador de texto, puede optar por ver una presentación preliminar
y luego imprimir. Pero también puede entrar a saco en el diálogo de impresión, elegir
un rango de páginas e imprimir directamente. Para obtener este comportamiento de
QuickReport, necesitamos algo parecido a esto:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->QuickRep1->PrinterSetup();
if (Form2->QuickRep1->Tag == 0)
Form2->QuickRep1->Print();
}
Observe que el método PrinterSetup del informe es un procedimiento, no una función.
Para saber si ha terminado correctamente, o si el usuario ha cancelado el diálogo,
hay que revisar el contenido de la propiedad Tag del propio informe; si ésta vale
cero, todo ha ido bien. Sinceramente, cuando veo cochinadas como éstas en los productos
de mi fabricante de software favorito, que además no están correctamente
documentadas, siento vergüenza ajena.


Sacado de la cara oculta de builder, trae algo en imagenes, pero si es posible que te lo bajes de la pagina del Administrador del foro,

www.arrakis.es/~rporcar

saludos..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Re: Quickrep Responder citando

Gracias por la colaboracion. ahora mismo voy a probarlo.
Volver arriba
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.