Ver Mensaje Individual
  #4  
Antiguo 18-09-2006
nachoalbano nachoalbano is offline
Miembro
 
Registrado: sep 2006
Posts: 19
Reputación: 0
nachoalbano Va por buen camino
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
Responder Con Cita