No estoy seguro si esto es lo que busca, pero si usted tiene una imagen en código y que desea mostrar en el informe, cree un objeto de contenedor que tiene una propiedad que devuelve la imagen como una matriz de bytes y proporciona una instancia de esta clase contenedora con la imagen válida en el informe como ReportDataSource.
Algo así como:
ReportDataSource logoDataSource = new ReportDataSource();
logoDataSource.Name = "LogoDS";
logoDataSource.Value = new List<LogoWrapper>() { yourLogoWrapper };
localReport.DataSources.Add(logoDS);
En el informe que a continuación se puede la imagen como si fuera de la base de datos
=First(Fields!LogoByteArrayProperty.Value, "LogoDS")
La envoltura se ve algo como:
class LogoWrapper{
...
public byte[] LogoByteArrayProperty{
get{
// Return here the image data
}
}
}
I usa esto bastante seguido Tiene la ventaja de que no tengo que agregar la imagen al archivo db ni agregarla como recurso de cada informe. Y, además, la aplicación puede decir qué imagen se debe utilizar. Tenga en cuenta que el formato de imagen dado debe conocerse desde el motor rdlc. La última pregunta sería cómo convertir un system.drawing.image en una matriz de bytes. Trabajo con WPF y, por lo tanto, no lo sé. Pero estoy seguro de que Google responderá a esta pregunta de manera muy confiable.
Esto es interesante ... primero intentaré y volveré. Gracias. – Jake
¡Gracias funcionó! Solo quiero agregar que parece que el control de imagen RDLC también acepta byte [] array como valor siempre que el tipo de mime del control esté configurado correctamente. Esta sería la cuarta manera de hacerlo. – Jake
Gracias, acabas de resolver un problema que estaba teniendo – WraithNath