Как задать картинку в отчете из кода пользовательского приложения

08.01.2020

Довольно часто возникает потребность задавать различные изображения в отчете в зависимости от каких-либо условий или входящих параметров. С этой проблемой столкнулся пользователь генератора отчетов List&Label:

Есть ли способ программной вставки встроенного изображения в документ List & Label из кода .net?

Однако, пользователь не нашел решения.

К сожалению, невозможно вставить изображение из кода .NET. Это возможно только при работе с отчетом в дизайнере List & Label.

В свете этого, хочется показать, как такое можно реализовать в генераторе отчетов FastReport.Net.

Итак, при создании отчета мы работаем со всеми его объектами напрямую – создаем их, добавляем на страницу отчета, задаем свойства. Рассмотрим простой пример создания отчета из кода пользовательского приложения с картинкой внутри.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Create instance of class Report
 Report report = new Report();
 //Add report page
 ReportPage page = new ReportPage();
 report.Pages.Add(page);
 page.CreateUniqueName();
 //App data band
 DataBand data = new DataBand();
 //Add data band to page
 page.Bands.Add(data);
 data.CreateUniqueName();
 data.Height = Units.Centimeters * 1; //Set band height
 //Create picture object
 PictureObject pic = new PictureObject();
 pic.Bounds = new RectangleF(0, 0, Units.Centimeters * 5, Units.Centimeters * 5); //Set object bounds
 pic.Image = new Bitmap("../../App_Data/snow_flake.ico"); //Set picture
 pic.Parent = data; //Set picture parent object
 pic.CreateUniqueName();
 report.Prepare(); //Build report
 report.Show(); //Show report

Это очень простой пример отчета, в котором всего лишь один бэнд «Данные». Так как этот отчет целиком создается в коде программы, то нет никаких проблем создать объект с картинкой и поместить в отчет. Создание отчета из кода позволяет нам как угодно менять его в зависимости от логики программы.

Рассмотрим другой случай. Допустим у вас уже есть шаблон отчета, созданный в дизайнере. Вы хотите менять картинку в отчете в зависимости от логики программы. В таком случае, в шаблоне отчета уже должен быть объект Picture, а вы просто будете заменять саму картинку из кода пользовательского приложения. Вот как будет выглядеть код в программе:         

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 //Create report object
 Report report = new Report();
 //Load report template into the report obj
 report.Load("../../App_Data/Picture.frx");
 //Get picture object from the report template
 PictureObject pic = report.FindObject("Picture1") as PictureObject;
 //Set object bounds
 pic.Bounds = new RectangleF(0, 0, Units.Centimeters * 5, Units.Centimeters * 5);
 //Set the image
 pic.Image = new Bitmap("../../App_Data/snow_flake.ico");
 //Build report
 report.Prepare();
 //Show report
 report.Show();

Здесь, мы находим объект с картинкой в шаблоне отчета и изменяем его свойства по своему желанию.

И, наконец, третий вариант работы с объектом Picture – из встроенного скрипта отчета. Скрипт отчета позволяет изменять шаблон и данные в отчете, как угодно. Вы можете предварительно добавить в шаблон объект Picture, а можете добавить его непосредственно в скрипте отчета. Поистине, безграничная гибкость. Нет необходимости использовать пользовательское приложение для управления содержимым отчета. Это большой плюс для меня, ведь отпадает необходимость править код приложения.

Пример для задания изображения в скрипте отчета крайне прост:

1
Picture1.Image = new Bitmap("C:/Users/Dimon/source/repos/PictureSetting/PictureSetting/App_Data/snow_flake.ico");

Вам нужно только определиться с событием, в котором вы хотите изменять картинку, например, для объекта Picture можно использовать событие BeforePrint.

.NET FastReport
16 октября 2026

Новые возможности .NET 11: обзор C# 15, EF Core 11, ASP.NET Core и производительности

Обзор .NET 11: C# 15, union-типы, новая модель безопасности памяти, Windows Forms, EF Core 11, ASP.NET Core и Blazor, ускорение Runtime и NativeAOT.
12 октября 2026

Экспорт отчёта в XML из Preview в FastReport .NET

Узнайте, как сохранить отчёт в формате XML в FastReport .NET: экспорт из Preview без кода и программный экспорт через XMLExport с настройкой параметров.
12 октября 2026

Как экспортировать отчёт из FastReport .NET в доступный PDF (PDF/UA-1)

Как экспортировать отчёт из FastReport .NET в доступный PDF/UA-1: настройка через интерфейс и код на C#, роли SemanticRole, AltText и проверка валидаторами.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»