Pregunta: | 1277 - LLAMAR UNA IMAGEN DE UNA BASE DE DATOSA AL CRYSTAL REPORT |
Autor: | Sergio De la Cruz Castillo |
Como puedo enlazar una sola imagen de una base de datos ya sea en formato jpg o bmp a un reporte en crystal reports? |
Respuesta: | Eduardo Cañedo |
Acabo de trabajar con esto, aver si te sirve: Public Sub Guarda_Img(Ruta As String, tabla As ADODB.Recordset, campo As String) Dim lngOS As Long Dim lngIS As Long Dim ChBuf() As Byte Const ConChSz = 100 Set fileSys = CreateObject("Scripting.FileSystemObject") Set fileName = fileSys.GetFile(Ruta) lngIS = fileName.Size Set fileName = Nothing Set fileSys = Nothing Open Ruta For Binary Access Read As #1 ReDim ChBuf(ConChSz) Do While lngOS < lngIS Get #1, , ChBuf() tabla(campo).AppendChunk ChBuf() lngOS = lngOS + ConChSz Loop Close #1 End Sub Este procedimiento lo que hace es meter el archivo de cualquier formato especificado en el parametro ruta(ruta y nombre de archivo con todo y extensión) a la al recordset de ADO que le indiques en el parametro tabla en el campo que mandes al parametro con el mismo nombre, el cual debe ser de tipo OLE. Una vez en la base de datos lo puedes llamar desde el crystal como un campo cualquiera el cual por supuesto puede ser variable dependiando de tus necesidades y diseño del reporte. Notas:Los archivos de tipo jpg y gif guardados con este procedimento no son reconocidos por los editores de imagenes, ni por el crystal, solo por los browsers(pueden ser usados en paginas asp) el cristal solo reconoce los bmp´s. Para que funcione el FileSystemObject debes tener el archivo scrrun.dll, creo que esta en c:\windows\system\ y tambien creo que es instalado con el ServisPack 3. Si quieres sacar el archivo guardado el procedimiento es el inverso, es decir en el Open debes de usar el Write y en lugar del Get se usa el Put. |