Foros del Web » Programación para mayores de 30 ;) » .NET »

imagenes en Crystal reports 2005

Estas en el tema de imagenes en Crystal reports 2005 en el foro de .NET en Foros del Web. Hola que tal, inicializandome en crystal reports me he encontrado con algo, resulta ser que el CR(crystal reports) no acepta las imagenes directas, asi que ...
  #1 (permalink)  
Antiguo 24/10/2006, 09:14
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Pregunta imagenes en Crystal reports 2005

Hola que tal, inicializandome en crystal reports me he encontrado con algo, resulta ser que el CR(crystal reports) no acepta las imagenes directas, asi que se tienen que convertir en bytes, en visual studio 2003 se podia hacer de una forma muy sencilla, esto era convertir la imagen en bytes ( si es que en la BD se tenia la ruta ) rellenar una serie de data tables, datarows y el rpt, y cambiando en en dataset que se insertara en la aplicacion el tipo de datos a base64binary, insertabas el campo en el reporte y listo, ya se mostraban imagenes dinamicas.

Pero en 2005 me ha surgido un problema, resulta que realizo la misma tecnica, bajo la ruta de un campo, busco la imagen, genero los bytes pero en este caso, en el DataSet, donde tengo el campo de la ruta de la foto, lo cambio, en este caso a System.Byte[], los corchetes para generar un arreglo de bytes y que ahi se inserte la imagen, el cual cuando lo cambio y actualizo, el objeto que se inserta como un Iblob... ; pero cuando lo ejecuto no me muestra ninguna imagen, siendo que cuando lo ejecuto paso por paso la imagen si me la carga en el dataset pero en el reporte no, alguien sabe de algo.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #2 (permalink)  
Antiguo 24/10/2006, 11:14
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Hola que tal, pues en cierto sentido ha quedado resuelto, como?, bueno aqui va una pequeña explicación:

DataTable dt = new DataTable("Afiliados"); //creamos un datatable con el nombre de la tabla, de preferencia la tabla que se este vinculando

//creamos un datarow que tendra las columnas y el objeto llamado "datos" es un objeto data set que cuenta con la tabla original de mi base de datos, en este caso yso una SQL, pero puede ser cualquiera
DataRow dr;
//DataSet rs = new DataSet();
datos rs2 = new datos();

//creamos las columnas del DATATABLE

dt.Columns.Add("folio", System.Type.GetType("System.String"));
dt.Columns.Add("nombre", System.Type.GetType("System.String"));
dt.Columns.Add("apaterno", System.Type.GetType("System.String"));
dt.Columns.Add("amaterno", System.Type.GetType("System.String"));
dt.Columns.Add("curp", System.Type.GetType("System.String"));
//en las siguientes columnas el tipo de datos es "System.Byte[]"dt.Columns.Add("archivofotografia", System.Type.GetType("System.Byte[]"));
dt.Columns.Add("archivofirma", System.Type.GetType("System.SByte[]"));

try //iniciamos con la carga de un solo registro para el reporte, es lo que yo deseo, hay como gusten ustedes adecuarlo
{
conexion.Open();
SqlCommand comando = new SqlCommand("Select * From afiliados where folio = '" + var + "'", conexion);
SqlDataReader lector;
lector= comando.ExecuteReader();
while (linea.Read())
{
//se instancia datarow.
dr = dt.NewRow();
dr["folio"] = lector.GetString(1);
dr["nombre"] = lector.GetString(2);
dr["apaterno"] = lector.GetString(3);
dr["amaterno"] = lector.GetString(4);
dr["curp"] = lector.GetString(8);
//la funcion tomaBytes crea los bytes con la ruta especificada en la tabla original de sql server, en este caso no estoy guardando las imagenes directo en la tabla sino que esta solo la ruta de ese archivo, la funcion esta mas abajo
dr["archivofotografia"] = tomaBytes(lector.GetString(14));
dr["archivofirma"] = tomaBytes(lector.GetString(15));
dt.Rows.Add(dr);

//en especial esta linea, importa los datos obtenidos de la consulta anterior al data set que nosotros agregamos al proyecto, en mi caso "datos.xsd"
[B] rs2.Afiliados.ImportRow(dr);[/B]
}
linea.Close();
}
catch (SystemException ex)
{
}
finally
{
if(conexion != null)
{
conexion.Close();
}
}

//reporte es el nombre del reporte "reporte.rpt" que ustedes crearon

reporte hoja = new reporte();

hoja.SetDataSource(rs2);
//crvMostrar.Zoom(50);
crvMostrar.ShowZoomButton = true;
crvMostrar.ReportSource = hoja;//este es el crystalreportviewer que va a colocar la hoja
}

//la que sigue es la funcion para obtener los bytes
public static byte[] tomaBytes(string archivin)
{
FileStream obtenArchivo= new FileStream(archivin, FileMode.Open);
BinaryReader br = new BinaryReader(obtenArchivo);
byte[] imagenBytes = new byte[(int)obtenArchivo.Length];
// int valor = imagenBytes .Length;
br.Read(imagenBytes , 0, (int)obtenArchivo.Length);
br.Close();
obtenArchivo.Close();
return imagenBytes ;
}

en el data set que ustedes crearon, cambien los tipos de datos de las columnas que deseen antes de crear el reporte, guarden los cambios y creen el reporte, inserten los campos, diseñen el reporte y lixto, ya esta creado, cualquier problema, pues posteen y ampliaremos las dudas
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.

Última edición por erick_arcini; 24/10/2006 a las 11:37
  #3 (permalink)  
Antiguo 28/12/2006, 10:48
Avatar de kyoalex  
Fecha de Ingreso: diciembre-2006
Ubicación: Merida Yuc Mexico
Mensajes: 36
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: imagenes en Crystal reports 2005

Saludos...

Disculpa el DataSet que usas en el codigo es el mismo que usas cuando lo creas con el wizard, para poner en el crystal reports?
  #4 (permalink)  
Antiguo 29/12/2006, 16:33
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: imagenes en Crystal reports 2005

no, el dataset es independiente del reporte
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #5 (permalink)  
Antiguo 07/03/2007, 04:19
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 1 mes
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;
}
  #6 (permalink)  
Antiguo 07/03/2007, 12:26
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: imagenes en Crystal reports 2005

caray hombre, parece que no pueden especificar bien donde les da el error, a mi me dio error en distintas lineas de codigo, pudieran hacer el gran favor de colocar un punto de interrupcion y mostrar donde les manda el error y que error les da, por favor
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #7 (permalink)  
Antiguo 07/03/2007, 13:09
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: imagenes en Crystal reports 2005

Hola, lo q pasa es q el programa funciona bien, no da errores. Lo que quiero es q teniendo la ruta de la imagen en la base de datos se cargue en un campo de un dataset, y de este al reporte, en forma de campo Blob para q pueda ser mostrada.
Cuando se visualiza el reporte se ve el cuadro del campo blob de este, pero sin la imagen, o sea en blanco, y los datos estan correctos en el dataset. No entiendo el problema.....
  #8 (permalink)  
Antiguo 07/03/2007, 13:51
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: imagenes en Crystal reports 2005

puede ser que tu metodo tomaBytes no este funcionando correctamente o tus imagenes sean muy grandes.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #9 (permalink)  
Antiguo 08/03/2007, 03:07
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: imagenes en Crystal reports 2005

No entiendo lo q ha pasado, pero ya me funciona. Lo digo porque si alguien tiene el mismo problema en principio el codigo anterior funciona. De todas formas gracias por contestar.
  #10 (permalink)  
Antiguo 11/03/2007, 18:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: imagenes en Crystal reports 2005

Hola que tal!

Probe tu codigo y en verdad funciona pero solo con imágenes.
En mi base de datos sql server 2000 tengo un campo image pero en este guardo documentos de word y cuando intente mostar este campo en crystal report usando el codigo que pusiste aqui, no muestra nada, despues guarde un archivo de imagen y volvi a probar el codigo y hay si se mostro la imagen en el reporte.

Por favor si sabes como mostrar ese campo image pero para documentos de texto como word responde.

De antemano Gracias!
  #11 (permalink)  
Antiguo 12/03/2007, 10:24
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: imagenes en Crystal reports 2005

Cita:
Iniciado por Pableins Ver Mensaje
Hola que tal!

Probe tu codigo y en verdad funciona pero solo con imágenes.
En mi base de datos sql server 2000 tengo un campo image pero en este guardo documentos de word y cuando intente mostar este campo en crystal report usando el codigo que pusiste aqui, no muestra nada, despues guarde un archivo de imagen y volvi a probar el codigo y hay si se mostro la imagen en el reporte.

Por favor si sabes como mostrar ese campo image pero para documentos de texto como word responde.

De antemano Gracias!
1) En si en tu base de datos no estas guardando una imagen, estas guardando bytes
2) No entiendo por que quieres mostrar un archivo de word en un reporte de CR
3) Y no entiendo tambien por que guardas una imagen en un archivo de word, pero bueno, cada usuario tiene sus formas

mira, no se cual sea la forma de obtener la imagen del archivo de word, que debe de existir, si existe, puedes obtener esa imagen y guardarla en bytes directo con programacion, y despues puedes mostrarla directo en tu reporte, pero sigo con la duda ¿Porque tienes guardadas imagenes en un doc de word?, saludos.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #12 (permalink)  
Antiguo 12/03/2007, 12:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Información Re: imagenes en Crystal reports 2005

Hola que tal!

En primer lugar te agradezco por haber respondido, pero creo que no me explique bien, en realidad no quiero mostrar ninguna imagen tan solo el archivo plano de word que lo he guardado como bytes en mi base de datos, y en teoría solamente debo leer esos bytes y mostralos en el reporte tal como se lo hace con las imagenes, por eso probe tu codigo con un archivo de imagen.

Ojala que ahora sí me haya explicado bien, con todo muchas gracias y si sabes como hacerlo hazmelo saber, gracias......!

Saludos.
  #13 (permalink)  
Antiguo 12/03/2007, 14:47
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: imagenes en Crystal reports 2005

La verdad no comprendo por que meterlo a un reporte, por que no haces esto:

1) conviertes tus bytes a un archivo .doc temporal
2) en un richtextbox puedes descargarlo con LoadFile()
3) mandar a imprimir el RICHTEXTBOX
4) eliminas el archivo temporal

es lo unico que se me ocurre, espero haberte ayudado
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #14 (permalink)  
Antiguo 16/03/2007, 17:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: imagenes en Crystal reports 2005

Hola que tal!

Gracias por la sugerencia, en verdad es muy buena, pero tengo un problema con el RichTextBox solo muestra archivos con extension .rtf y no se por que, cuando quiero abrir un archivo de word con extensión .doc me da el error el formato de archivo no es valido, para abrir el archivo utilizo el método LoadFile(Path).

Disculpa mi ignorancia, si sabes como abrir el archivo de word con extension .doc hazmelo saber.

Gracias.
  #15 (permalink)  
Antiguo 19/03/2007, 20:17
Avatar de miguelangelvelarde  
Fecha de Ingreso: marzo-2007
Ubicación: Mazatlan Sinaloa
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: imagenes en Crystal reports 2005

Hola, mi nombre es Miguel y son nuevo en este foro.

Mi duda es la siguiente:
¿el codigo para manejar imagenes en CR que muestran en los post unicamente sirver para la version 2005 del CR o tambien para versiones anteriores?.
  #16 (permalink)  
Antiguo 20/03/2007, 13:01
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: imagenes en Crystal reports 2005

en otras versiones existe el tipo BLOB para CR cosa que el nuevo (2005 en adelante) no lo trae, es por eso que hice esa funcion, pero segui la misma metodologia para el desarrollo del mismo.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #17 (permalink)  
Antiguo 28/10/2007, 12:06
 
Fecha de Ingreso: octubre-2007
Mensajes: 3
Antigüedad: 16 años, 6 meses
Puntos: 0
Sonrisa Re: imagenes en Crystal reports 2005

Hola como estas, Erick!!, me parece fantastico, muy interesante el codigo de mostrar imagenes por medio de un dataset en crystal report.

Estoy haciendo tambien lo mismo paa un sistema de reportes de personal en visual studio 2005 en un proyecto web, donde necesito mostrar las fotos de los empleados, que los tengo guardados en una carpeta, y en un campo de la base de datos sql server esta la ruta, todo me sale bien, pero en el momento de convertir la imagen en bytes en esta linea de la funcion (esto lo tengo en un proyecto de clases c# llamado por un web services):
FileStream obtenArchivo= new FileStream(archivin, FileMode.Open);
me sale este error:
System.UnauthorizedAccessException: Acceso denegado a la ruta de acceso 'c:\Inetpub\wwwroot\WebSiteRPersonal\ImagesPersona l\Gregmason.jpg'.
en System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
en System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
en System.IO.FileStream..ctor(String path, FileMode mode)
en RecursosVisualC.spGeneralLogic.tomaBytes(String archivin) en C:\Documents and Settings\Luis\Mis documentos\Visual Studio 2005\Projects\WebSiteRPersonal\RecursosVisualC\spG eneralLogic.cs:línea 251
en RecursosVisualC.spGeneralLogic.ConsultarEmpleadosO rg(String idOrg, String CodEmpleado) en C:\Documents and Settings\Luis\Mis documentos\Visual Studio 2005\Projects\WebSiteRPersonal\RecursosVisualC\spG eneralLogic.cs:línea 226
en Service.getListadoEmpleados(String idOrg, String CodEmpleado) en c:\Inetpub\wwwroot\WebSiteRecursos\App_Code\Servic e.cs:línea 67

Por favor como podría solucionar este error de acceso al archivo de imagen!!.

Muchas Gracias.
  #18 (permalink)  
Antiguo 29/10/2007, 12:24
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: imagenes en Crystal reports 2005

Para obtener la ruta y si es algo referente a un proyecto web tendrías que usar Server.MathPath para obtener la ruta del archivo en tu servidor y con eso ya lo tienes.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #19 (permalink)  
Antiguo 30/10/2007, 10:11
 
Fecha de Ingreso: octubre-2007
Mensajes: 3
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: imagenes en Crystal reports 2005

Hola Erick!!,

Muchas gracias!!, pero en realidad el problema quedo resuelto colocando un parametro mas a la funcion FileStream de esta forma :
FileStream obtenArchivo = new FileStream(archivin, FileMode.Open, FileAccess.Read);

dt.Rows.Add(dr); esta linea que agrega los datos al datatable, no hay error lo pasa bien,
Pero ahora tengo problemas con la línea que justo va a pasar los datos al dataset tipeado y es justo por el campo de la imagen, xq probé sin ese campo y pasó sin ningun error, pero si activo la linea -->
dr["imageFoto"] = tomaBytes(drREmployee.GetString(26)), ya en la funcion :

rs2.TmpDatosEmpleadosOrg.ImportRow(dr);

Me sale este error:
No se puede convertir un objeto de tipo 'System.Byte[]' al tipo
'System.IConvertible'.No se puede almacenar <System.Byte[]> en la columna
imageFoto. El tipo esperado es Byte.


System.ArgumentException: No se puede convertir un objeto de tipo 'System.Byte[]' al tipo 'System.IConvertible'.No se puede almacenar &lt;System.Byte[]&gt; en la columna imageFoto. El tipo esperado es Byte. ---> System.InvalidCastException: No se puede convertir un objeto de tipo 'System.Byte[]' al tipo 'System.IConvertible'.
en System.Data.Common.ByteStorage.Set(Int32 record, Object value)
en System.Data.DataColumn.set_Item(Int32 record, Object value)
--- Fin del seguimiento de la pila de la excepción interna ---
en System.Data.DataColumn.set_Item(Int32 record, Object value)
en System.Data.RecordManager.CopyRecord(DataTable src, Int32 record, Int32 copy)
en System.Data.DataTable.ImportRow(DataRow row)
en RecursosVisualC.spGeneralLogic.ConsultarEmpleadosO rg(String idOrg, String CodEmpleado) en C:\Documents and Settings\Luis\Mis documentos\Visual Studio 2005\Projects\WebSiteRPersonal\RecursosVisualC\spG eneralLogic.cs:línea 233
en Service.getListadoEmpleados(String idOrg, String CodEmpleado) en c:\Inetpub\wwwroot\WebSiteRecursos\App_Code\Servic e.cs:línea 67


Por favor como puedo solucionar este problema.

Muchas gracias,
Saludos,
  #20 (permalink)  
Antiguo 30/10/2007, 16:46
 
Fecha de Ingreso: octubre-2007
Mensajes: 3
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: imagenes en Crystal reports 2005

Hola a todos!!, yo tengo un problema al querer llenar un dataset con un campo de imagen, en la cual el dataset tipeado lo tengo como tipo System.Byte en visual Studio 2005.

En el proceso utilizo un stored procedure, una tabla fisica de sql server 2000 que me sirve para el datatable y un dataset que debe llenar con los datos de los resultados del stored procedure para relacionar con crystal report, pero en el momento de pasar los datos al datatable no hay problema, pero si quiero pasar al dataset me sale este error : No se puede convertir un objeto de tipo 'System.Byte[]' al tipo
'System.IConvertible'.No se puede almacenar <System.Byte[]> en la columna
imageFoto. El tipo esperado es Byte. y es por la linea :

rs2.TmpDatosEmpleadosOrg.ImportRow(dr); por la imagen, xq si solo paso otros tipos de datos de los otros campos, ahi si funciona.

De todos modos les pongo a continuacion los 2 procesos que los tengo en un proyecto de clases que luego lo llamo desde un webservice.

Ayudenme por favor, muchas gracias.


public DSEmpleadosOrg ConsultarEmpleadosOrg(string idOrg, string CodEmpleado)
{
DataTable dt = new DataTable("TMPDatosPersonal");
DataRow dr;
DSEmpleadosOrg rs2 = new DSEmpleadosOrg();
DataSet ds = new DataSet();
dt.Columns.Add("idOrg", System.Type.GetType("System.String"));
dt.Columns.Add("descOrg", System.Type.GetType("System.String"));
dt.Columns.Add("nivelOrg", System.Type.GetType("System.String"));
dt.Columns.Add("numMinEmp", System.Type.GetType("System.Int32"));
dt.Columns.Add("numMaxEmpl", System.Type.GetType("System.Int32"));
dt.Columns.Add("nodoOrg", System.Type.GetType("System.String"));
dt.Columns.Add("nivelPrint", System.Type.GetType("System.String"));
dt.Columns.Add("nivelOrgReporta", System.Type.GetType("System.String"));
dt.Columns.Add("statusOrg", System.Type.GetType("System.String"));
dt.Columns.Add("longNivel", System.Type.GetType("System.Int32"));
dt.Columns.Add("codSociedad", System.Type.GetType("System.String"));
dt.Columns.Add("codEmpleado", System.Type.GetType("System.String"));
dt.Columns.Add("nomEmpleado", System.Type.GetType("System.String"));
dt.Columns.Add("apeEmpleado", System.Type.GetType("System.String"));
dt.Columns.Add("fechaNacimiento", System.Type.GetType("System.DateTime"));
dt.Columns.Add("estDiscapacidad", System.Type.GetType("System.String"));
dt.Columns.Add("sexEmpleado", System.Type.GetType("System.String"));
dt.Columns.Add("estCivil", System.Type.GetType("System.String"));
dt.Columns.Add("telEmpleado", System.Type.GetType("System.String"));
dt.Columns.Add("dirEmpleado", System.Type.GetType("System.String"));
dt.Columns.Add("emailEmpleado", System.Type.GetType("System.String"));
dt.Columns.Add("nivelProfesion", System.Type.GetType("System.String"));
dt.Columns.Add("nivelInstruccion", System.Type.GetType("System.String"));
dt.Columns.Add("fIngreso", System.Type.GetType("System.DateTime"));
dt.Columns.Add("fSalida", System.Type.GetType("System.DateTime"));
dt.Columns.Add("fUltVacacion", System.Type.GetType("System.DateTime"));
dt.Columns.Add("imageUrl", System.Type.GetType("System.String"));
dt.Columns.Add("numIdent", System.Type.GetType("System.String"));
dt.Columns.Add("tipoIdent", System.Type.GetType("System.String"));
dt.Columns.Add("statusEmpleado", System.Type.GetType("System.String"));
dt.Columns.Add("imageFoto", System.Type.GetType("System.Byte[]"));

//try
//{
SqlConnection conn = new SqlConnection(this.conSt);
SP_QRDatosPersonalEmpleados listEmpleados = new SP_QRDatosPersonalEmpleados(conn);
SqlDataReader drREmployee = listEmpleados.ExecuteReader(idOrg, CodEmpleado);
while (drREmployee.Read())
{
dr = dt.NewRow();
dr["idOrg"] = drREmployee.GetString(0);
dr["descOrg"] = drREmployee.GetString(1);
dr["nivelOrg"] = drREmployee.GetString(2);
dr["numMinEmp"] = drREmployee.GetInt32(3);
dr["numMaxEmpl"] = drREmployee.GetInt32(4);
dr["nodoOrg"] = (drREmployee.IsDBNull(5)) ? "" : drREmployee.GetString(5);
dr["nivelPrint"] = (drREmployee.IsDBNull(6)) ? "" : drREmployee.GetString(6);
dr["nivelOrgReporta"] = (drREmployee.IsDBNull(7)) ? "" : drREmployee.GetString(7);
dr["statusOrg"] = (drREmployee.IsDBNull(8)) ? "" : drREmployee.GetString(8);
dr["longNivel"] = drREmployee.GetInt32(9);
dr["codSociedad"] = drREmployee.GetString(10);
dr["codEmpleado"] = drREmployee.GetString(11);
dr["nomEmpleado"] = drREmployee.GetString(12);
dr["apeEmpleado"] = drREmployee.GetString(13);
dr["fechaNacimiento"] = drREmployee.GetDateTime(14);
dr["estDiscapacidad"] = (drREmployee.IsDBNull(15)) ? "" : drREmployee.GetString(15);
dr["sexEmpleado"] = drREmployee.GetString(16);
dr["estCivil"] = drREmployee.GetString(17);
dr["telEmpleado"] = drREmployee.GetString(18);
dr["dirEmpleado"] = drREmployee.GetString(19);
dr["emailEmpleado"] = drREmployee.GetString(20);
dr["nivelProfesion"] = (drREmployee.IsDBNull(21)) ? "" : drREmployee.GetString(21);
dr["nivelInstruccion"] = drREmployee.GetString(22);
dr["fIngreso"] = drREmployee.GetDateTime(23);
dr["fSalida"] = drREmployee.GetDateTime(24);
dr["fUltVacacion"] = drREmployee.GetDateTime(25);
dr["imageUrl"] = drREmployee.GetString(26);
dr["numIdent"] = (drREmployee.IsDBNull(27)) ? "" : drREmployee.GetString(27);
dr["tipoIdent"] = (drREmployee.IsDBNull(28)) ? "" : drREmployee.GetString(28);
dr["statusEmpleado"] = drREmployee.GetString(29);
dr["imageFoto"] = tomaBytes(drREmployee.GetString(26));
dt.Rows.Add(dr);
rs2.TmpDatosEmpleadosOrg.ImportRow(dr); ----> aqui me sale error
//rs2.Tables.Add(dt);
//rs2.Tables[0].TableName = "TmpDatosEmpleadosOrg";
//rs.Merge(rs2, false, System.Data.MissingSchemaAction.Ignore);

}


drREmployee.Close();
//}
//catch (SystemException ex)
//{
//}
//finally
//{
//}

return rs2;

}

public static byte[] tomaBytes(string archivin)
{

FileStream obtenArchivo = new FileStream(archivin, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(obtenArchivo);
byte[] imagenBytes = new byte[(int)obtenArchivo.Length];
// int valor = imagenBytes .Length;
br.Read(imagenBytes, 0, (int)obtenArchivo.Length);
br.Close();
obtenArchivo.Close();

return imagenBytes;
}
  #21 (permalink)  
Antiguo 13/01/2009, 09:12
 
Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: imagenes en Crystal reports 2005

Hola soy nueva en este foro, tengo la foto de la persona almacenada en la BD SQL y la pongo sin problemas en el crystal report, solo tengo un problema que hay fotos que no tengo y ent el crystal en ese caso me coge la primera imagen que encuentra y me la pone en el lugar donde va la foto, que puedo hacer?
  #22 (permalink)  
Antiguo 13/01/2009, 11:37
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: imagenes en Crystal reports 2005

Cita:
Iniciado por agj2002cu Ver Mensaje
Hola soy nueva en este foro, tengo la foto de la persona almacenada en la BD SQL y la pongo sin problemas en el crystal report, solo tengo un problema que hay fotos que no tengo y ent el crystal en ese caso me coge la primera imagen que encuentra y me la pone en el lugar donde va la foto, que puedo hacer?
vaya, nació de las cenizas.

Puedes usar la función ISNULL de SQLServer para usar otra imagen, por ejemplo una que diga "Aquí no hay jeta" o algo por el estilo.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:08.