У меня есть отчет, где есть статическое изображение, но мне нужно загрузить изображение динамически.
Уже проверено this, this, this и this
Все, что я безуспешно. Мне нужен образец кода.
Любое предложение?Кристаллический отчет загружает изображение (байты []) во время выполнения с C#
-1
A
ответ
0
Чтобы загрузить изображения динамически, я создал новый класс/модель под названием ImageModel.
public class ImageModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Byte[] ImageBytes { get; set; }
}
Этот класс имеет поле под названием Image, она будет загружать изображение. Следующим шагом является добавление ImageBytes Поле к отчету.
Через интерфейс Crystal Report, используя полевой проводник, он должен был создать новое соединение. В этом новом соединении я использовал модель ImageModel в качестве модели. Добавив поле ImageBytes, я заметил, что Crystal Reports добавила объект crBlobFieldObject.
Чтобы загрузить изображение было необходимо сделать следующий код:
public Byte[] GetImageBytes(string image_name)
{
Byte[] bytes = null;
if (!string.IsNullOrEmpty(image_name))
{
string app_path = ((System.Web.HttpRequestWrapper)this.Request)
.PhysicalApplicationPath;
app_path += "Content\\images\\";
string full_path = app_path + image_name;
//
if (System.IO.File.Exists(full_path))
{
FileStream fs = new FileStream(full_path, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
bytes = br.ReadBytes(Convert.ToInt32(br.BaseStream.Length));
}
}
return bytes;
}
Основной код выглядит следующим образом:
public JsonResult GenerateCrystalReportImage()
{
List<ImageModel> list_image = new List<ImageModel>();
//
ImageModel imageone = new ImageModel();
imageone.Id = 1;
imageone.Name = "Image name one";
imageone.Description = "This is a image description one";
imageone.Image = GetImageBytes("imageone.png");
list_image.Add(imageone);
//
ImageModel imagetwo = new ImageModel();
imagetwo.Id = 2;
imagetwo.Name = "Image name two";
imagetwo.Description = "This is a image description two";
imagetwo.Image = GetImageBytes("imagetwo.png");
list_image.Add(imagetwo);
//
ReportDocument rp = new ReportDocument();
rp.Load(System.Web.HttpContext.Current.Server.MapPath("~/Reports/") + "Test.rpt");
rp.SetDataSource(list_image);
rp.ExportToHttpResponse(ExportFormatType.PortableDocFormat,
System.Web.HttpContext.Current.Response,
false,
"image_list_" + DateTime.Now);
rp.Close();
return Json(new
{
data = "ok",
results = 1,
success = true,
errors = String.Empty
}, JsonRequestBehavior.AllowGet);
}
Смежные вопросы
- 1. Кристаллический отчет, распространяемый во время выполнения
- 2. Кристаллический отчет группировки конца страницы
- 3. КРИСТАЛЛИЧЕСКИЙ ОТЧЕТ, ВЫЗЫВАЙТЕ В MENUSTRIP в C#
- 4. Как настроить отчет Crystal Reports во время выполнения
- 5. Кристаллический отчет не открывается в клиентской машине
- 6. Кристаллический отчет Ошибка входа в систему
- 7. Pass изображение для CrystalDecisions.CrystalReports.Engine.pictureobject во время выполнения
- 8. Resize ImageIcon (или изображение) во время выполнения
- 9. Как загрузить изображение во время выполнения?
- 10. Установить кристаллический отчет о Visual Studio 2010 Express 32bit
- 11. Препроцессор C во время выполнения?
- 12. C++ devirtualization во время выполнения?
- 13. Дизайн Crystal Report во время выполнения C#
- 14. C++ компиляция во время выполнения
- 15. Получить байты для класса, который был сгенерирован во время выполнения
- 16. C# Отражение во время выполнения
- 17. C инициализаторы во время выполнения
- 18. Рисовать трехмерное изображение во время выполнения
- 19. Создать изображение во время выполнения - aForge?
- 20. Показать загружаемое изображение во время выполнения PHP
- 21. Связывание пользовательской коллекции объекта в кристаллический отчет
- 22. C# Load Assembly во время выполнения
- 23. Структурная интроспекция C во время выполнения
- 24. C# - Определить тип недвижимости во время выполнения
- 25. данные отчет текстовое поле полужирного во время выполнения VB 6.0
- 26. Отчет о данных vb6 показывает дизайнера во время выполнения
- 27. Добавление изображения во время выполнения
- 28. массива во время выполнения
- 29. Отчет о количестве изменений IP-адресов во время выполнения программы
- 30. Годовой отчет внезапно начинает давать 1004 ошибки во время выполнения