Imagen de base de datos en reportes de Crystal Reports

09/02/2005 - 06:53 por CasDom | Informe spam
Buenas noches:
Tengo una duda:
Estoy leyendo una DB de Vfp la cuál contiene en una tabla referencia a una
imagen JPG que esta grabada en un directorio de imagenes, esta hecho de esta
manera para que las imagenes se almacenen de manera separada de la base de
datos por la gran cantidad de estas.

Con las tablas de apoyo que cargo en el dataset del form puedo visualizar la
imagen en el form, simplemente concateno la ruta y el nombre de la imagen
que tengo en el registro.

Hasta ahi vamos bien...el problema se me presenta al momento de que quiero
ver en un reporte de CR esto.
He estado buscando la manera de referenciar a una imagen y personalizarla en
tiempo de ejecucion, sin embargo no me ha funcionado hasta el momento.

Lo que he realizado es insertar una imagen y tratar de personalizar su
propiedad desde el vnet.

Si alguien me puede apoyar en esto, gracias.

CasDom
 

Leer las respuestas

#1 _ C l a u d i n h o _
09/02/2005 - 14:54 | Informe spam
Hola casdom

para meter una imagen en un crystal report este debe tener como fuente
de datos un dataset,el campo donde se guarde la imagen en el dataset debe
ser del tipo "base64binary"

aqui un pedazo de codigo donde lo hago y hasta cambio el tamaño de la imagen

'
'PlanoProducto es un string base 64 en mi BD
If Not dsRespuesta.Tables(0).Rows(0).Item("PlanoProducto") Is
System.DBNull.Value Then

'declaro un arreglo de byte

Dim Bytes() As Byte

'redimensiono el arreglo de bytes,

ReDim
Bytes(CStr(dsRespuesta.Tables(0).Rows(0).Item("PlanoProducto")).Length)

'convierto la cadena string a un arreglo de byte,

Bytes System.Convert.FromBase64String(dsRespuesta.Tables(0).Rows(0).Item("PlanoPro
ducto"))

'meto el arreglo de byte en la ultima fila del dataset(la necesito al pie de
pagina) en el campo IMAGEN_BLOB que es de tipo "base64binary"

dsCot.Tables("VIEW_COTIZACION_PRODUCTO").Rows((dsCot.Tables("VIEW_COTIZACION
_PRODUCTO").Rows.Count) - 1).Item("IMAGEN_BLOB") = Bytes

dsCot.Tables("VIEW_COTIZACION_PRODUCTO").Rows(0).EndEdit()

'declaro una variable de tipo bitmap para obtener las dimensiones de mi
imagen.

Dim pic As System.Drawing.Bitmap

pic Me.BitmapFromBase64(CStr(dsRespuesta.Tables(0).Rows(0).Item("PlanoProducto")
))

'en las siguientes lineas determino el tamaño ideal y las proporciones

'que debe tener la imagen para que no se salga del reporte, las imagenes

'que inserto no son siempre cuadradas

Dim picW As Integer = 7000

Dim picH As Integer = pic.Height * 7000 / pic.Width

If picH > 9500 Then

picH = 9500

picW = pic.Width * 9500 / pic.Height

End If

' aqui voy a la seccion e identifico mi objeto dentro del reporte (rpt) , y
redimensiono sus tamaños esto en tiempo de ejecucion

CType(CType(rpt.Section7,
CrystalDecisions.CrystalReports.Engine.Section).ReportObjects(2),
CrystalDecisions.CrystalReports.Engine.ReportObject).Width = picW

CType(CType(rpt.Section7,
CrystalDecisions.CrystalReports.Engine.Section).ReportObjects(2),
CrystalDecisions.CrystalReports.Engine.ReportObject).Height = picH

End If

'






"CasDom" escribió en el mensaje
news:
Buenas noches:
Tengo una duda:
Estoy leyendo una DB de Vfp la cuál contiene en una tabla referencia a una
imagen JPG que esta grabada en un directorio de imagenes, esta hecho de


esta
manera para que las imagenes se almacenen de manera separada de la base de
datos por la gran cantidad de estas.

Con las tablas de apoyo que cargo en el dataset del form puedo visualizar


la
imagen en el form, simplemente concateno la ruta y el nombre de la imagen
que tengo en el registro.

Hasta ahi vamos bien...el problema se me presenta al momento de que quiero
ver en un reporte de CR esto.
He estado buscando la manera de referenciar a una imagen y personalizarla


en
tiempo de ejecucion, sin embargo no me ha funcionado hasta el momento.

Lo que he realizado es insertar una imagen y tratar de personalizar su
propiedad desde el vnet.

Si alguien me puede apoyar en esto, gracias.

CasDom


Preguntas similares