 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Lun 08 May, 2006 4:25 pm Asunto: rave reports y jpg |
|
|
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 |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Mie 24 May, 2006 4:52 pm Asunto: |
|
|
| Lo mando para arriba. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 24 May, 2006 10:17 pm Asunto: |
|
|
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 _________________
 |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Jue 25 May, 2006 12:15 pm Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Dom 04 Jun, 2006 5:15 pm Asunto: |
|
|
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 _________________
 |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Mar 06 Jun, 2006 4:56 pm Asunto: |
|
|
Gracias Cesar por tu ayuda, en cuanto lo pruebe, te dire como va.
Un saludo. |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|