Rave Report

Tengo dos problemas con el rave report
1er problema es que estoy utilizando la version 7.6 en delphi2009 y cuando ejecuto mi reporte en mi aplicación de delphi me aparece un warning de que el archivo que estoy utilizando de rave report es más viejo y siempre que corro la aplicación me aparece ese mensaje como puedo eliminarlo.
2do problema, tengo un reporte hecho en rave report pero al moomento de llamar mi reporte quiero agregarle dos imágenes por código en delphi como puedo hacerlo.

1 respuesta

Respuesta
1
1.- Supongo que tendrás un proyecto de RR (Rave Reports), generalmente un archivo ".rav". Haz una copia de este en otra ubicación y utiliza el menú del editor de proyectos de RR: "File -> Sabe As.." y guárdalo sustituyendo el anterior (del que habrás hecho una copia). Quizás se solucione el problema.
2.- Si las imágenes no están en la base de datos que utilices para el proyecto, supongo que quieres utilizar archivos BMP que deberían estar en una ubicación determinada. Puedes utilizar en el proyecto RR un componente Bitmap (Paleta Standard) y pasarle la ruta completa hasta el archivo en tiempo de ejecución. Es un poco lioso, y quizás haya otros métodos:
2.1.- Selecciona la página donde vaya a ir la imagen (haciendo clic en la pestaña "Page1" o el nombre que tenga)
2.2- Añade uno o más parámetros a la página en la propiedad "Parameters" de "Page1" (aquí crearíamos un parámetro por cada ruta de imagen diferente, poniendo 1 por linea). Por ejemplo, añade un parámetro que se llame "ValorPath".
2.3.- Ahora añade un componente "DataText" (paleta "Report"). Cambia su propiedad "Visible" a "False". En su propiedad "DataField" haz clic en el botón de los 3 puntos y te aparecerá esto...

... Selecciona el nombre del parámetro creado en el punto 2.2 (ValorPath), haz clic en el botón "Insert Parameter" y clic en el botón "OK".
2.4.- Pega un componente Bitmap (paleta "Standar") en el proyecto del RR. Teniendo seleccionado el componente ya sobre "la hoja", cambia al editor de eventos ("Event Editor") y aparecerá algo como esto...

... Selecciona el evento "OnBeforePrint", añade el código inferior y haz clic en el botón "Compile". Luego guarda el proyecto.
2.5.- Y por último, cuando lances la impresión del proyecto desde Delphi, envía el valor de la ruta donde esté la imagen, como convenga:
//Suponiendo que el proyecto Rave esté en la misma carpeta que el EXE:
RvProject1.ProjectFile := ExtractFilePath(Application.ExeName) +'\MiProyectoRave.rav';
RvProject1.Open;
RvProject1.SetParam('ValorPath','C:\LaRutaQueSea\ImagenBitmap.bmp');
RvProject1.Execute;
RvProject1.Close;
Disculpa, en el paso 2.3 al añadir el componente "DataText", debes renombaralo como "Valor" (propiedad "Name").
Saludos 2
--------------------------------
Por cierto, un comentario a la anterior pregunta, referente a tomar una imagen de una cámara. No se exactamente el objetivo de la imagen, pero creo que siempre te puedes saltar el "paso" de copiarlo al portapapeles. Un tImage también tiene la propiedad "Bitmap" con la que puedes trabajar...
Ventana.Picture.Bitmap.SaveToFile('C:\Imagen.bmp');
O puedes contener el bitmap en un stream de memoria:
var MiStream: tMemoryStream;
...
Ventana.Picture.Bitmap.SaveToStream(MiStream);
Incluso si el objetivo es contener la imagen en una variable tBitmap:
var MiBitmap: tBitmap;
...
MiBitmap := tBitmap.Create;
MiBitmap.Assign(Ventana.Picture.Bitmap);
El "paso" por el portapapeles es innecesario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas