Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimer Con QuickReport Imagen JPG en Base de Datos (https://www.clubdelphi.com/foros/showthread.php?t=35649)

nachoalbano 16-09-2006 22:20:07

Imprimer Con QuickReport Imagen JPG en Base de Datos
 
Que tal a todos, espero que me puedan ayudar con esta inquietud.
Estoy terminando una aplicacion y estoy realizando unos reportes de la misma con QReport, en Delphi 7. La cuestion es que quiero imprimir imagenes que tengo guardadas en la base de datos las cuales las tengo en un ClientDataSet. Las mismas las subi en formato jpg, pero cuando las quiero visualizar desde el reporte con un QRDBImage me dice que no son compatibles los tipos, es como que espera un archivo bmp.
Alguien sabe que es lo que puedo hacer????

Muchas Gracias

leodelca23 16-09-2006 23:50:09

en esta pagina vas a encontrar lo que necesitas http://www.programacionfacil.com/delphi/indice.htm
ahi en base de datos impresion quickreport

nachoalbano 17-09-2006 00:00:50

El problema es el QRDBImage
 
Muchas gracias por la ayuda, lei la informacion del sitio que me has pasado pero no encuentro el problema a mi solucion.
Claramente en este sitio pone acerca de QRDBImage lo siguiente.
10 .-QRDBImage
Componente para desplegar e imprimir campos de tipo Graphics ( BMP, ICO, WFW).

La cuestion es que en la DB tengo cargados archivos JPG y el QRDBImage no los levanta.
Alguien conoce alguna solucion al respecto.
Gracias de nuevo

nachoalbano 18-09-2006 01:05:42

Solucion al Problema de QuickReport y JPG
 
Bueno, despues de unos dias de renegar con esto, encontre por ahi una solucion un poco mas prolija de varias que habia planteado.
Primero y principal la idea es descartar el componente QRDBImage y utilizar directamente el componente QRImage (este nos permite trabajar con archivos JPG directamente), pero la idea es capturar desde la base de datos el archivo JPG que tenemos guardado en un campo Image (SQL Server)
Bien, la consulta que contiene el campo imagen (JPG) en cuestion lo tengo en un ClientDataSet.
Utilizando la librería JPEG (delphi 7 es lo que utilizo) agrego en mi procedimiento dos variables, y realizo lo siguiente:


Código Delphi [-]
 
procedure TfmImpresionConsultaInicial.QuickRep1BeforePrint(
  Sender: TCustomQuickRep; var PrintReport: Boolean);
var
  imagenJPG : TJpegImage;
  Corriente : TMemoryStream;
begin
  // abro la consulta del paciente que se envio del formulario de Consulta
  // Inicial, el valor del paciente nos llega por la property pacienteImprimir.
  cdsImpresion.Close;
  cdsImpresion.Params.ParamByName('paciente_id').AsInteger := PacienteImprimir;
  cdsImpresion.Open;
  // creamos la imagen jpg correspondiente
   imagenJPG:=TJpegImage.create;
   // corriente contiene la imagen en formato binario(creo??)
   Corriente:=TMemoryStream.create;
   try
     // Guardamos el resultado de la consulta en el stream
       cdsImpresionimagen.SaveToStream(Corriente);
       Corriente.Seek(0,soFromBeginning);
     // Ahora la cargamos en la imagen que creamos al principio del formulario
       imagenJPG.LoadFromStream(Corriente);
     // se asocia al qrImage que necesitamos y listo!!
       QRImage2.Picture.Assign(imagenJPG);
   finally
      // leberamos los objetos Corriente e ImagenJPG
       Corriente.Free;
       imagenJPG.Free;
   end;
end;



espero que les sea util!!!hasta luego


La franja horaria es GMT +2. Ahora son las 10:14:32.

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