Ver la Versión Completa : Delphi XE 10.2 Tokio + Rave Reports
ysiverio
18-10-2017, 15:28:13
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.
//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
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.
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.
MyBmp.Image.LoadFromStream(VariableStream);
Espero que a alguien le sirva de ayuda.
Saludos.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.