В данной статье будет показано, как добавить в отчет изображение из базы данных. В базе данных NAV можно хранить не только текстовую/числовую информацию, но и бинарные объекты типа рисунков. Для этого используются BLOB поля, в них можно поместить бинарный объект размером до двух гигабайт. BLOB поле Picture есть в таблице товары и предназначено для хранения изображения товара. Также поле Picture есть в таблице Company Information и может содержать в себе логотип компании, который должен печататься в документах.
В данной статье продолжается работа над отчетом, созданным в статьях Разработка отчета для классического клиента и ролеориентированного клиентов (ссылка).
Процедура состоит из нескольких шагов:
- Добавление переменной и программного кода в отчет
- Добавление зоны изображения в отчет
- Добавление в Visual Studio изображения
Добавление переменной и программного кода в отчет
Ниже будет показано, как добавить в отчет переменную, которая будет содержать в себе ссылку на изображение.
В Microsoft Dynamics NAV Classic Client:
- Щелкните Tools > Object Designer. Откроется Object Designer.
- Щелкните кнопку Report, чтобы открыть список отчетов.
- Выберите отчет 123456701 Salesperson Cust. Sales Profit, затем щелкните кнопку Design.
- Щелкните View > C/AL Globals. Откроется окно C/AL Global.
- На закладке Variables введите:
- Закройте окно C/AL Global.
- Выберите пустую строку отчета и щелкните View > C/AL Code. Откроется C/AL Editor.
- Добавьте следующий код в триггер OnPreReport:
- Закройте C/AL Editor
- Сохраните отчет
Name | DataType | Subtype |
CompanyInf | Record | Company Information |
CompanyInf.GET;
CompanyInf.CALCFIELDS(Picture);
Добавление зоны изображения в отчет
После того как была создана переменная CompanyInf необходимо создать зону изображения (PictureBox) в секции отчета. С помощью зоны изображения логотип будет выведен в отчет для классического клиента. Кроме того зона изображения нужна, чтобы передать значение переменной в набор данных Visual Studio.
Примечание: Частью набора данных становятся только те элементы управления, которые расположены в секциях. Поэтому иногда необходимо помещать в секции глобальные/локальные переменные, чтоб они стали доступны в Visual Studio Report Designer.
В Report Designer:
- Щелкните View > Sections. Откроется Section Designer.
- Добавьте зону изображения в секцию Salesperson/Purchaser, Header (1), установите для нее свойство:
- SourceExpr: CompanyInf.Picture
- Сохраните отчет.
Добавление в Visual Studio изображения
Далее нужно открыть и изменить макет отчета в Visual Studio. Ниже будет показано, как добавить изображение в отчет.
В Report Designer:
- Щелкните View > Layout. Откроется Visual Studio. Обратите внимание, что теперь в наборе данных доступна переменная CompanyInf_Picture.
- Перетащите элемент управления Image из панели инструментов в макет отчета.
- Щелкните View > Property Window (не путать с Property из контекстного меню). Установите для изображения следующие свойства:
- Source: Database
- MIMEType: Image\bmp
- Value: =Fields!CompanyInf_Picture.Value
- Закройте Visual Studio, когда система предложит сохранить изменения, щелкните кнопку Yes.
- Щелкните в любом месте Report Designer, затем щелкните кнопку Yes, чтобы загрузить макет из Visual Studio.
- Сохраните отчет и закройте Report Designer.
Запуск измененного отчета
- Щелкните кнопку Пуск > Выполнить (Win+R) и укажите DynamicsNAV:////runreport?report=123456701.
- Щелкните кнопку Preview. В отчет будет выведен логотип компании.
Андрей Панько >>
Dynamics NAV MVP
apanko@rabota-na-rezultat.ru