Не уверен, что это то, что вы ищете, но если у вас есть изображение в коде, и вы хотите показать его в отчете, создайте объект-оболочку со свойством, которое возвращает изображение в виде массива байтов, и дайте затем экземпляр этого класса-оболочки с допустимым изображением в отчет как ReportDataSource.
Что-то вроде:
ReportDataSource logoDataSource = new ReportDataSource();
logoDataSource.Name = "LogoDS";
logoDataSource.Value = new List<LogoWrapper>() { yourLogoWrapper };
localReport.DataSources.Add(logoDS);
В отчете вы потом можете изображение как бы из базы данных
=First(Fields!LogoByteArrayProperty.Value, "LogoDS")
Обертка выглядит примерно так:
class LogoWrapper{
...
public byte[] LogoByteArrayProperty{
get{
// Return here the image data
}
}
}
Я использую это довольно часто. У него есть то преимущество, что мне не нужно добавлять изображение в базу данных или добавлять его в качестве ресурса каждого отчета. И, кроме того, приложение может сказать, какое изображение следует использовать. Обратите внимание, данный формат изображения должен быть известен из rdlc-engine. Последний вопрос будет заключаться в том, как преобразовать system.drawing.image в массив байтов. Я работаю с WPF и поэтому не знаю. Но я уверен, что Google ответит на этот вопрос очень достоверно.
person
HCL
schedule
11.02.2011