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 

rave reports y jpg

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

Hola,

Utilizo BDS2006 con rave reports 6.5.2 en WinXp.

Estoy utilizando rave reports y necesito colocar una imagen de tipo jpg.
Y no lo consigo.

Intento seguir:
http://www.nevrona.com/Default.aspx?tabid=90
pero no hay manera de que me funcione.

Es mas, cuando mando imprimir un informe, cosa que hace correctamente, pero no pasa por los eventos:
RvSystem1DecodeImage
RvSystem1Print
Ya que dentro de ellos he colocado un ShowMessage ademas de un breakpoint y aparentemenete no pasa. No se si sera por cuestiones de diferentes versiones.

¿Alguien sabe como utilizar las imagenes jpg con rave reports?

Gracias y un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Lo mando para arriba.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

intenta quitar la linea

#define TBitmap Graphics::TBitmap
del programa, si es que estas usando el ejemplo de la pagina

posteriormente define dentro del evento

Código:
void __fastcall TForm1::ReportSystem1DecodeImage(TObject *Sender,
//      TStream *ImageStream, AnsiString ImageType, TBitmap *Bitmap)
TStream *ImageStream, AnsiString ImageType, Graphics::TBitmap *Bitmap)


{
  TJPEGImage* Image;

  if (ImageType == "JPG") {
    Image = new TJPEGImage(); // Create a TJPEGImage class
    try {
      Image->LoadFromStream(ImageStream); // Load up JPEG image from ImageStream
      Image->DIBNeeded(); // Convert JPEG to bitmap format
      Bitmap->Assign(Image);
    }// try
    __finally {
      delete Image;
    }// tryf
  }// if
}


realmete lo que dice la pagina es lo siguiente,
"para imprimir un archivo jpg, es necesario que el archivo se convertido al Bitmap, para que la impresora pueda ejecutar la impresion...

puedes poner el codigo de los eventos que tienes, para una mejor comprension...

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

Gracias por contestar Cesar, te cuento:

Cita:
intenta quitar la linea
#define TBitmap Graphics::TBitmap

No puedo, me da el siguiente error:
[C++ Error] main.h(415): E2015 Ambiguity between 'TBitmap' and 'Windows::TBitmap'

En el evento DecodeImage:
Código:

void __fastcall TfMain::RvSystem1DecodeImage(TObject *Sender,
     TStream *ImageStream, AnsiString ImageType, TBitmap *Bitmap)
{
  TJPEGImage* Image;

ShowMessage("jpg");

  if (ImageType == "JPG") {
   Image = new TJPEGImage(); // Create a TJPEGImage class
   try {
     Image->LoadFromStream(ImageStream); // Load up JPEG image from ImageStream
     Image->DIBNeeded(); // Convert JPEG to bitmap format
     Bitmap->Assign(Image);
   }// try
   __finally {
     delete Image;
   }// tryf
  }// if
}


Y en el evento OnPrint:
Código:

void __fastcall TfMain::RvSystem1Print(TObject *Sender)
{
//  TBaseReport* bp = dynamic_cast(Sender);
  TBaseReport* bp = dynamic_cast <TBaseReport*> (Sender);
  TMemoryStream* Stream;
  TJPEGImage* Image;

ShowMessage("A ver si hay jpg");  // *************

  Stream = new TMemoryStream();
  Image = new TJPEGImage();
  try {
//   Image->LoadFromFile("image1.jpg");
   Image->LoadFromFile("d:\\LMCF.jpg");

   Image->SaveToStream(Stream);
   Stream->Position = 0;
//   bp->PrintImageRect(1,1,3,3,Stream,"JPG");
   bp->PrintImageRect(1,1,30,30,Stream,"JPG");
  }// try
  __finally {
   delete Image;
   delete Stream;
  }// tryf
}


Como veras en ambos evento hay un ShowMessage. Lo he puesto para verificar que dichos eventos ocurren. Pues no se disparan ninguno. Pero el informe se genera, sin la imagen.

He tenido que modificar:
Código:

TBaseReport* bp = dynamic_cast(Sender);

por esta:
Código:

TBaseReport* bp = dynamic_cast <TBaseReport*> (Sender);

ya que sino de da el error:
[C++ Error] main.cpp(3956): E2274 < expected

Respecto al rave report esta imagen no la llamo en ningun momento. Es decir la cargo directamente desde este codigo.

Respecto al rave report, he averiguado como pasarle el path de la imagen, pero como veo, se debe decodificar antes. Asi que con esta informacion no se puede hacer nada.

Mas cosas, en el form tengo, entre otras cosas, un TRvSystem y dos TRvProject ya que tengo 2 tipos de informes. Lo digo porque en realidad solo me interesa que salga esta imagen en uno de los informes. No se si es interesante este dato. De todas formas, una vez solucionado esto se puede discriminar por codigo ( if ...) asi que no seria problema (creo).

Bueno un saludo y gracias por interesarte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Bien al parecer los generadores de reportes tienen algunos incovenientes, con la impresion... de archivos en formatos diferentes a Bitmap, lo que es lo mismo, toda imagen que se desee imprimr debe ser convertia a Bitmap.

usando el ejemplo que tienes y modificando un poco,para no afectar la informacion, usa este metodo pero en el evento OnCreate del Formulario donde estas usando a rave reports

Código:
void __fastcall TFImpresionInventario::FormCreate(TObject *Sender)
{
   TJPEGImage* Image = new TJPEGImage(); // Create a TJPEGImage class;
   Graphics::TBitmap *tbmp = new Graphics::TBitmap();
   Image->LoadFromFile("d:\\LMCF.jpg");
   tbmp->Assign(Image); //listo ya tienes el jpg como bmp

   //ahora bien debes asignar el tbmp, al componente donde quieres
   // que se imprima, atravez de las proiedades Picture->Bitmap->Assign(tbmp)

}


siendo esto similar para cuando usas el QuicReport con los componentes TQRImage y TQRDBImage, en este ultimo no lo he probado puesto, ya que la ayuda del QR (muy extensa por cierto, jeje), no indica como realizar la introduccion de la imagen, de un campo blob, que contiene un JPG a un componente TQDBImage
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Cesar por tu ayuda, en cuanto lo pruebe, te dire como va.

Un saludo.
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.