Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/03/2007, 04:19
EPS_POWER
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: imagenes en Crystal reports 2005

Hola a todos, soy nuevo aqui y tengo el mismo problema que se ha comentado, las imagenes que quiero mostrar no se ven.
He probado el codigo posteado pero no me funciona, si alguien me pudiese ayudar le agradeceria mucho.
Les paso el codigo utilizado aunque es practicamente el mismo que se ha visto.


DataTable dt = new DataTable("empleados");
DataSet rs = new DataSet();
DataRow dr; ;

OdbcCommand odbMiAdaptador = null;
OdbcConnection odbConn = new OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=127.0.0.1; DATABASE=prova; UID=admin;PWD=; OPTION=3");

dt.Columns.Add("nombre", System.Type.GetType("System.String"));
dt.Columns.Add("dni", System.Type.GetType("System.String"));
dt.Columns.Add("imagen", System.Type.GetType("System.Byte[]"));

odbConn.Open();
odbMiAdaptador = new OdbcCommand("SELECT * FROM empleados;", odbConn);

OdbcDataReader linea;
linea = odbMiAdaptador.ExecuteReader();

while (linea.Read())
{
dr = dt.NewRow();

dr["nombre"] = linea.GetString(0);
dr["dni"] = linea.GetString(1);
dr["imagen"] = ConversionImagen(linea.GetString(2));

dt.Rows.Add(dr);
}
rs.Tables.Add(dt);
return rs; //Devuelvo el dataset para recogerlo en la funcion load del formulario donde se mostrara el reporte
//Este seria el codigo de este formulario:

Dataset dsDatos=new Dataset();
dsDatos=empleado.obtenerEmpleados();
informe1 inf = new informe1();
inf.SetDataSource(dsDatos);
this.crystalReportViewer1.ReportSource=inf;


//Y para convertir la imagen:

public static byte[] ConversionImagen(string nombrearchivo)
{
//Declaramos fs para poder abrir la imagen.
FileStream fs = new FileStream(nombrearchivo, FileMode.Open);

// Declaramos un lector binario para pasar la imagen
// a bytes
BinaryReader br = new BinaryReader(fs);
byte[] imagen = new byte[(int)fs.Length];
br.Read(imagen, 0, (int)fs.Length);
br.Close();
fs.Close();
return imagen;
}