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 

Migrar QuickReport a Fast Report

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Migrar QuickReport a Fast Report Responder citando

Hola a todos,

Voy a comenzar a migrar todos los informes que tengo en QuickReport a FastReport.
Para no empezar de cero, voy a utilizar una clase que ofrece FastReport para migrar "lo gordo".

La manera de utilizarlo es la siguiente
Código:

   TConverterQr2Fr *conv = new TConverterQr2Fr(NULL);
   conv->Source = QuickRep1;
   conv->Target = FReport;
   conv->Convert();
   frxReport1->SaveToFile("converted_fromQR.fr3");


Es muy sencillo de comprender, el problema es que me gustaría integrarlo en el programa, para no tener que ir añadiendo informe por informe (Estamos hablando de más de 100).

Lo que se me ha ocurrido es en el Preview del informe, que me salga una opción que sea (Convertir a Fast Report), y como el QuickRep1 esta creado, se realizaría la conversión sin problemas.

Espero haberme explicado bien.

Muchas gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

He encontrado este codigo en el foro
https://cppbuilder.es/viewtopic.php?t=5629&highlight=castellano+quickreport
Con esto me hago la idea de lo que tengo que hacer, pero...

¿como puedo hacer que una funcion se ejecute en el evento OnBeforePrint de cualquier TQuickRep del proyecto sin tener que recorrerme todos los formularios del proyecto?

Muchas gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Prueba con el siguiente código en el constructor del Form principal:
Código:
// Añadimos la cabecera: #include<QRPrev.hpp>

static struct LOCAL_BEFORE_PRINT {
    void __fastcall OnBeforePrint(TCustomQuickRep* Sender, bool& PrintReport)
    {
        // ...
        // TConverterQr2Fr *conv = new TConverterQr2Fr(NULL);
        // conv->Source = /*QuickRep1*/ Sender;  <--
        // conv->Target = FReport;
        // conv->Convert();
        // frxReport1->SaveToFile("converted_fromQR.fr3");
        // ...
        ShowMessage("OnBeforePrint");
    }

    void __fastcall ScreenActiveFormChange(TObject* Sender)
    {
        if (Screen->ActiveForm && Screen->ActiveForm->ClassNameIs("TQRStandardPreview"))
        {
            TQRStandardPreview* prev = static_cast<TQRStandardPreview*>(Screen->ActiveForm);
            TCustomQuickRep* qr = dynamic_cast<TCustomQuickRep*>(prev->QRPrinter->Master);
            if (qr) qr->BeforePrint = OnBeforePrint;
        }
    }

    __fastcall LOCAL_BEFORE_PRINT()
    {
        Screen->OnActiveFormChange = ScreenActiveFormChange;
    }
} local_before_print;


Esto hará que se ejecute el código que pongas aquí para todos los informes.. y hay que tener en cuenta que como sustituimos el evento original, si ya usabas ese evento en algún informe se ignorara el anterior, así que si necesitas que se ejecute el evento original y el que se ponga aquí avisa para modificar el código..
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Me vale perfecto _Leo

El problema es que yo pensaba que la migración de Quick Report a Fast Report estaba mas currado, así que me veo pasando todos a mano.

En fin, veo que al final es la unica manera de migrar las cosas...
Muchas gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Una pregunta,

Que cabeceras o que incluyes para poder hacer uso de TConverterQr2Fr, es que no lo encuentro por ningún lado.

Un saludo.

Carlos
_________________
Carlos J. Fernandez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
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.