Visual Basic - Imagenes Dinamicas en Datareport

Life is soft - evento anual de software empresarial
   
Vista:

Imagenes Dinamicas en Datareport

Publicado por Gaston (5 intervenciones) el 21/05/2008 03:48:19
Solo una consulta ... una gran duda ... alguien ha encontrado la manera de insertar imagenes en forma dinamica desde una BD a un reporte de Datareport. Tengo una aplicacion en la que debo confeccionar un informe donde para cada registro tengo que mostrar un grafico que esta cargado en un campo de la BD.
Espero una solucion, o al menos la confirmacion de que no se puede, y en este caso que generador de reportes me puede servir.
Desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Guerrero

RE:Imagenes Dinamicas en Datareport

Publicado por Andres Guerrero (702 intervenciones) el 22/05/2008 19:33:47
Gaston

a mi me paso algo parecido, pero la unica respuesta que encontre fe esta.

Al momento del cargar el query (con el que accedes a la base) lo qeu yo traia es la Ruta donde Guardaba las Imgenes, lei foros donde hay maneras.. pero la programacion es tan diversa que mi solucion .. para mi fue la Mejor...


Siendo asi.. tendias qeu en el server de db tener una carpeta donde alojes la imagen luego en la base no cargar la imagen como campo, si no un string donde indiques la ruta,

Al hacer el query, recorres y por cada imagen la cargas. (En mi caso no era por registro si no por Reporte) ya que era el Logo de la Empresa.

Espero que te pueda ayudar la referencia... lastimosamente solo te pegare parte del codigo del programa y espero qeu te ayuda

Puede que algo este redundante pero esa fue mi solucion hace 5 Años que hice ese programa.

'******************************************************************************
'este es el codigo de la impresion....
'Logocia no es la imagen es la ruta de....

Private Sub cmdcon_Click()
Dim MITEXTO, clte, cia As String


SQL = "Select nomclt, dirclt, telclt, nomcia, dircia, telcia, logocia, "
SQL = SQL & "Identificacion, Itemprof, Cantprof, Preprof, Fecprof, Fe2prof, Garprof, Tenprof, Fpaprof, Ivaprof, Desprof, "
SQL = SQL & "cantprof * preprof as SubTotal, Subtotal * ivaprof/100 as iva, Subtotal * desprof/100 as descu, Subtotal + Iva - Descu as TOTAL "
SQL = SQL & "from tcia as a, tclt as b, tprof as c " 'aumentar los otros
SQL = SQL & " where a.idcia = c.idcia and b.idclt = c.idclt and Idprof = " & Num
Rs.Open SQL, conexion


'SACO LA CANTIDAD EN LETRAS
MITEXTO = LetrDOLARES(Rs(21)) ' cantidad en letras con funcion

'***saco las id de la cia y del clte
ssql = "select idcia, idclt from tprof where idprof = " & Num
Rstj.Open ssql, conexion
cia = Rstj(0)
clte = Rstj(1)

'linea para colocar el texto en el data --Esto para los registros
drptInd.Sections("Seccion1").Controls.Item("etqcl").Caption = MITEXTO
drptInd.Sections("Seccion1").Controls.Item("etqclte").Caption = clte
drptInd.Sections("Seccion1").Controls.Item("etqcia").Caption = cia
drptInd.Sections("Seccion1").Controls.Item("etqidprof").Caption = Num

'Esto es para la Imagen

Set drptInd.Sections("Seccion1").Controls.Item("logo1").Picture = LoadPicture(Rs(6)) ' con esta linea le asigno la ruta de la imagen que si te das cuenta es un campo recuperado del query ...

Set drptInd.DataSource = Rs
drptInd.Show
Set Rs = Nothing
Set Rs2 = Nothing
Set Rstj = Nothing
End Sub
'***************************************


SAludos desde Ecuador
Andres Guerrero Avellan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imagenes Dinamicas en Datareport

Publicado por Gaston (5 intervenciones) el 22/05/2008 20:50:06
Andres
Muchas gracias por la respuesta, todo esto lleva un tiempo y valoro mucho que hayas dedicado parte de tu tiempo para responderme.
Este ejemplo que me has pasado ya lo he probado. El problema es que cuando queres cargar una sola imagen funciona, pero el problema se genera cuando queres cargar varias imagenes en el mismo reporte que se encuentra asociadas a cada registro. Al no permitir enlazar el control image con la BD, el metodo LoadPicture para un control image colocado en la sección de Detalle (es decir donde se van cargando uno a uno los registros) muestra para todos los registros la imagen correspondiente al primer registro, y no hay forma de que muestre la de los otros registros. Posiblemente me este faltando poner algo para que se refresque el metodo y cargue las otras imagenes.
Actualmente estoy probando de cargar las imagenes en un rptTextBox con el Dataformat = Picture, y enlazandolo con un campo de la BD donde esta alojada la imagen en formato de mapa de bits (para Access binario largo), pero lo unico que he conseguido es que en el rptTextBox, muestre un numero de diez digitos, que se va renovando para cada registro por lo que creo que funciona pero no logro que muestre la imagen.
En fin, si todo esto sirve de disparador para alguna nueva idea que solucione el problema, estare muy agradecido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de andres guerrero a

RE:Imagenes Dinamicas en Datareport

Publicado por andres guerrero a (702 intervenciones) el 22/05/2008 21:35:29
Gaston

De nada

Lo unico que se me ocurre es que por cada reporte hagas cierto numero de registros con graafico y hagas llamada por ese numero ejemplo

Ejemplo vas a presentar 4 registros haces lo siguiente.

llamar el query y tiene 16 registros

presentas los primeros 4 y luego si quieres los otros 4 llamas a 4 registros mas...

Se me ocurre .. claro qeu es poco optimo podria ser de ayuda.

Otra seria usar un Crystal Reports que ese creo qeu presenta mejor los reportes con graficos.

Saludos
ANdres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imagenes Dinamicas en Datareport

Publicado por Gaston (5 intervenciones) el 23/05/2008 21:01:43
Hola Andres...

Si es una muy buena idea, por lo menos hasta que encuentre una manera para presentarlo como me gustaria a mi. Inicialmente habia tratado de poner los graficos en el pie de informe, pero eran muchos y no entraban en una pagina, por lo que desisti de eso.
Voy a probar cargando la cantidad de registros que entren por pagina con sus respectivos graficos, y generare tantos reportes como sean necesarios para reportar todos los registros de la base de datos.
Muchas gracias, muy buena idea.
SAludos
Gaston
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar