В данной статье будет показано, как добавить в отчет изображение из базы данных. В базе данных NAV можно хранить не только текстовую/числовую информацию, но и бинарные объекты типа рисунков. Для этого используются BLOB поля, в них можно поместить бинарный объект размером до двух гигабайт. BLOB поле Picture есть в таблице товары и предназначено для хранения изображения товара. Также поле Picture есть в таблице Company Information и может содержать в себе логотип компании, который должен печататься в документах.

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

Добавление переменной и программного кода в отчет

Ниже будет показано, как добавить в отчет переменную, которая будет содержать в себе ссылку на изображение.

В Microsoft Dynamics NAV Classic Client:

  1. Щелкните Tools > Object Designer. Откроется Object Designer.
  2. Щелкните кнопку Report, чтобы открыть список отчетов.
  3. Выберите отчет 123456701 Salesperson Cust. Sales Profit, затем щелкните кнопку Design.
  4. Щелкните View > C/AL Globals. Откроется окно C/AL Global.
  5. На закладке Variables введите:
  6. Name DataType Subtype
    CompanyInf Record Company Information
  7. Закройте окно C/AL Global.
  8. Выберите пустую строку отчета и щелкните View > C/AL Code. Откроется C/AL Editor.
  9. Добавьте следующий код в триггер OnPreReport:
  10. CompanyInf.GET;
    CompanyInf.CALCFIELDS(Picture);
  11. Закройте C/AL Editor
  12. Сохраните отчет

Добавление зоны изображения в отчет

После того как была создана переменная CompanyInf необходимо создать зону изображения (PictureBox) в секции отчета. С помощью зоны изображения логотип будет выведен в отчет для классического клиента. Кроме того зона изображения нужна, чтобы передать значение переменной в набор данных Visual Studio.

Примечание: Частью набора данных становятся только те элементы управления, которые расположены в секциях. Поэтому иногда необходимо помещать в секции глобальные/локальные переменные, чтоб они стали доступны в Visual Studio Report Designer.

В Report Designer:

  1. Щелкните View > Sections. Откроется Section Designer.
  2. Добавьте зону изображения в секцию Salesperson/Purchaser, Header (1), установите для нее свойство:
    • SourceExpr: CompanyInf.Picture
  3. Сохраните отчет.

Добавление в Visual Studio изображения

Далее нужно открыть и изменить макет отчета в Visual Studio. Ниже будет показано, как добавить изображение в отчет.

В Report Designer:

  1. Щелкните View > Layout. Откроется Visual Studio. Обратите внимание, что теперь в наборе данных доступна переменная CompanyInf_Picture.
  2. Перетащите элемент управления Image из панели инструментов  в макет отчета.
  3. Щелкните View > Property Window (не путать с Property из контекстного меню). Установите для изображения следующие свойства:
    • Source: Database
    • MIMEType: Image\bmp
    • Value: =Fields!CompanyInf_Picture.Value

    PropertyProperty

  4. Закройте Visual Studio, когда система предложит сохранить изменения, щелкните кнопку Yes.
  5. Щелкните в любом месте Report Designer, затем щелкните кнопку Yes, чтобы загрузить макет из Visual Studio.
  6. Сохраните отчет и закройте Report Designer.

Запуск измененного отчета

  1. Щелкните кнопку Пуск > Выполнить (Win+R) и укажите DynamicsNAV:////runreport?report=123456701.
  2. Щелкните кнопку Preview. В отчет будет выведен логотип компании.
  3. PreviewPreview

Андрей Панько >>
Dynamics NAV MVP
apanko@rabota-na-rezultat.ru