Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Delphi XE 10.2 Tokio + Rave Reports (https://www.clubdelphi.com/foros/showthread.php?t=92392)

ysiverio 18-10-2017 15:28:13

Delphi XE 10.2 Tokio + Rave Reports
 
Buenas, Soy nuevo en el mundo de la programación en Delphi, quiero crear un reporte en Rave con una imagen que se incluye en una tabla virtual que luego se carga en el rave, en Delphi 7 me funciona bien, ahora estoy migrando el código a Delphi XE 10.2 Tokio y me da error al compilar el código para x64, debajo le dejo el método con el que copio la imagen a una variable Blob y luego la paso para a la tabla virtual del Rave.


Código Delphi [-]
//Función que carga una imagen desde el archivo y la escribe en la conexión RAVE
procedure EscribirImagen(Connection: TRvCustomConnection; ArchivoImagen: string);
var
  Buffer: Pointer;
  Stream: TFileStream;


  begin
  Stream := TFileStream.Create(ArchivoImagen, fmOpenRead);
  try
    Buffer := AllocMem(Stream.Size);
    try
      Stream.Read(Buffer^, Stream.Size);
      Connection.WriteBlobData(Buffer^, Stream.Size);
    finally
      FreeMem(Buffer, Stream.Size);
    end;
  finally
    Stream.Free;
  end;
end;

AgustinOrtu 18-10-2017 16:34:03

Y cual es el error?

ElDioni 19-10-2017 14:26:45

Hola, como no especificas que error es, pues es un poco dar palos de ciego pero allá que voy.

Al instalar Rave Reports se instalan, tanto la versión para 32bits como la de 64bits. Puede ser que en los repositorios de delphi lo que estés cargando sean las librerías de Rave de la versión de 32bits, compruébalo y si es así cámbialas por las que están en la misma ruta pero en la carpeta 64.

Saludos.

ysiverio 20-10-2017 15:27:45

1 Archivos Adjunto(s)
Cita:

Empezado por ElDioni (Mensaje 521828)
Hola, como no especificas que error es, pues es un poco dar palos de ciego pero allá que voy.

Al instalar Rave Reports se instalan, tanto la versión para 32bits como la de 64bits. Puede ser que en los repositorios de delphi lo que estés cargando sean las librerías de Rave de la versión de 32bits, compruébalo y si es así cámbialas por las que están en la misma ruta pero en la carpeta 64.

Saludos.

Buenos Días y gracia por responderme,
Yo tengo bien puesto el rave para x64, el error que me da es que cuando intente escribir en la conexion del rave
[code]
Connection.WriteBlobData(Buffer^, Stream.Size);
[code]


Anexo una imagen del error.


Saludos y gracias de antemano.

ElDioni 05-02-2018 15:50:32

Hola,

hace ya tiempo de este hilo pero por si alguien vuelve hasta aquí daré por lo menos una solución alternativa que puede que funcione.
En lugar de como lo estaba haciendo el compañero ysiverio se puede crear una variable TRavePage y otra TRaveBitmap en el projecto delphi y luego tratar estas variables en el código delphi directamente.

Código Delphi [-]
procedure TFrmMenuArt.ImpEntradaDiseno();
var
  MyBmp:TRaveBitmap;
  MyPage: TRavePage;
begin
  RvProject1.SelectReport('Report1',true);
  MyPage:= RVProject1.Projman.FindRaveComponent('Report1.Page1',nil) As TRavePage;
  MyBmp:=RvProject1.ProjMan.FindRaveComponent('BmpTiempos',MyPage) as TRaveBitmap;

Luego podemos cargar directamente la imagen en la variable MyBmp a través del siguiente código.

Código Delphi [-]
MyBmp.Image.LoadFromStream(VariableStream);

Espero que a alguien le sirva de ayuda.

Saludos.


La franja horaria es GMT +2. Ahora son las 10:05:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi