PDA

Ver la Versión Completa : Maximizar un QRCompositeReport


Angel.Matilla
06-10-2015, 19:53:46
Tengo un QRCompositeReport en C++ 6 con dos informes. Ambos en su definición están puestos como wsMaximized, pero al hacer un Preview del Composite me sale así:
http://i98.photobucket.com/albums/l251/Angel_Matilla/CompositeReport_zpskcabextl.jpg
¿Cómo hago para que se vea maximizado?

ecfisa
07-10-2015, 05:24:47
Hola Angel.Matilla.

En el evento OnFinished del TQRCompositeReport:

...
#include <qrprntr.hpp>
#include <qrprev.hpp>

...

void __fastcall TtuForm::QRCompositeReportFinished(TObject *Sender)
{
for(int i = 0; i < Screen->FormCount; i++)
if (Screen->Forms[i]->ClassNameIs("TQRStandardPreview"))
static_cast<TQRStandardPreview*>(Screen->Forms[i])->FormStyle = wsMaximized;
}


Saludos :)

Angel.Matilla
07-10-2015, 10:32:35
En el evento OnFinished del TQRCompositeReport:
Gracias por la propuesta, pero no funciona; sigue dejándolo "en medio" de la pantalla.

ecfisa
07-10-2015, 17:31:06
Hola Angel.Matilla

El código fue probado en C++ Builder 6 y maximiza correctamente la ventana del preview. No sé como tenes organizada la vista preliminar o que te puede estar sucediendo.

Te adjunto el código de prueba para que puedas cotejarlo con el tuyo.

Saludos :)

Angel.Matilla
07-10-2015, 18:53:40
Gracias. Te diré como me ha ido.

Angel.Matilla
07-10-2015, 19:46:46
El código fue probado en C++ Builder 6 y maximiza correctamente la ventana del preview. No sé como tenes organizada la vista preliminar o que te puede estar sucediendo.

Te adjunto el código de prueba para que puedas cotejarlo con el tuyo.
Aunque básicamente es igual, sigue haciéndolo mal. :mad:

#include <qrprntr.hpp>
#include <qrprev.hpp>
#include "QRNewPage.h"

void __fastcall TfEmiSed::RecibosAddReports(TObject *Sender)
{
Recibos->Reports->Clear();
Recibos->Reports->Add(fIndSed->qIndSed);
Recibos->Reports->Add(QR_NEW_PAGE);
Recibos->Reports->Add(fRecSed->qRecSed);
}
//---------------------------------------------------------------------------

void __fastcall TfEmiSed::RecibosFinished(TObject *Sender)
{
for (int nItem = 0; nItem < Screen->FormCount; nItem ++)
if (Screen->Forms[nItem]->ClassNameIs("TQRStandardPreview"))
static_cast<TQRStandardPreview *>(Screen->Forms[nItem])->FormStyle = wsMaximized;
}
//---------------------------------------------------------------------------
No he podido compilar tu código porque me dice que falta dos librerías: websnap.bpi e indy.bpi, que yo no tengo en mi máquina. El include "QRNewPage.h" es para provocar un salto de página entre ambos informes; he probado eliminándolo pero tampoco funciona

ecfisa
07-10-2015, 20:08:31
Hola.

Igual me lo maximiza pero veo que, en alguno de los ajustes de último momento, cometí un error :o

Donde dice:

static_cast<TQRStandardPreview*>(Screen->Forms[i])->FormStyle = wsMaximized;

debería decir:

static_cast<TQRStandardPreview*>(Screen->Forms[i])->WindowState = wsMaximized;

fijate si puede ser eso.

Ya que no podes compilar el ejemplo, también te adjunto el ejecutable (comprimido).

Angel.Matilla
08-10-2015, 11:53:27
static_cast<TQRStandardPreview*>(Screen->Forms[i])->WindowState = wsMaximized;

¡Perfecto ecfisa! Era eso. Muchas gracias y perdón por no haber sabido buscar en la ayida.