В данной статье будет показано, как добавить в отчет ссылку на карточку клиента. Это позволит пользователю открыть карточку клиента прямо из окна предварительного просмотра. Данная функциональность позволит интерактивно получать требуемую информацию.

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

Процедура состоит из нескольких шагов:

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

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

В 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
    CustomerRecRef RecordRef
  7. Закройте окно C/AL Global.
  8. Выберите элемент данных Salesperson/Purchaser и щелкните View > C/AL Code. Откроется C/AL Editor.
  9. Добавьте следующий код в конец триггера OnPreDataItem:
  10. CustomerRecRef.OPEN(DATABASE::"Customer");
  11. Закройте C/AL Editor
  12. Выберите элемент данных Customer и щелкните View > C/AL Code. Откроется C/AL Editor.
  13. Добавьте следующий код в конец триггера OnAfterGetRecord:
  14. CustomerRecRef.SETPOSITION(GETPOSITION);
  15. Закройте C/AL Editor
  16. Сохраните отчет

Добавление текстовой зоны в отчет

После того как была создана переменная CustomerRecRef необходимо создать текстовую зону в секции отчета. Текстовая зона нужна, чтобы передать значение переменной в набор данных Visual Studio.

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

В Report Designer:

  1. Щелкните View > Sections. Откроется Section Designer.
  2. Добавьте текстовую зону в секцию Customer Body (2), установите для нее следующие свойства:
    • Visible: No
    • SourceExpr: FORMAT(CustomerRecRef.RECORDID,0,10)
    • ForeColor: 65535
  3. Сохраните отчет.

Примечание: В данном выражении используется значение 10 для преобразования RECORDID в представление совместимое обработчиком URL для страниц и отчетов.

Добавление в Visual Studio ссылки к названию клиента

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

В Report Designer:

  1. Щелкните View > Layout. Откроется Visual Studio. Обратите внимание, что теперь в наборе данных доступна переменная FORMAT_CustomerRecRef_RECORDID_0_10_.
  2. Выберите поле Customer_Name (четвертый столбец, третья строка таблицы). Значение поля =Fields!Customer_Name.Value.
  3. Щелкните по нему правой кнопкой мыши и выберите Properties. Появится окно Textbox Properties.
  4. Перейдите на закладку Navigate.
  5. Установите флаг в поле Jump to URL и введите следующее Jump to URL: ="dynamicsnav:////runpage?page=21&mode=edit&bookmark="+Fields!FORMAT_CustomerRecRef_RECORDID_0_10_.Value
  6. Примечание: Данная строка откроет страницу в режиме редактирования.

    Свойство поляСвойство поля

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

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

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

Если навести курсор на название клиента, то курсор изменит вид, показывая, что имя клиента является гиперссылкой. Если щелкнуть по имени клиента, то откроется карточка клиента в режиме редактирования.

Ссылка в отчетеСсылка в отчете

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