В данной статье будет показано, как добавить в отчет ссылку на карточку клиента. Это позволит пользователю открыть карточку клиента прямо из окна предварительного просмотра. Данная функциональность позволит интерактивно получать требуемую информацию.
В данной статье продолжается работа над отчетом, созданным в статьях Разработка отчета для классического клиента и Разработка отчета для ролеориентированного клиента.
Процедура состоит из нескольких шагов:
- Добавление переменной и программного кода в отчет
- Добавление текстовой зоны в отчет
- Добавление в 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.
- Выберите элемент данных Salesperson/Purchaser и щелкните View > C/AL Code. Откроется C/AL Editor.
- Добавьте следующий код в конец триггера OnPreDataItem:
- Закройте C/AL Editor
- Выберите элемент данных Customer и щелкните View > C/AL Code. Откроется C/AL Editor.
- Добавьте следующий код в конец триггера OnAfterGetRecord:
- Закройте C/AL Editor
- Сохраните отчет
Name | DataType |
CustomerRecRef | RecordRef |
CustomerRecRef.OPEN(DATABASE::"Customer");
CustomerRecRef.SETPOSITION(GETPOSITION);
Добавление текстовой зоны в отчет
После того как была создана переменная CustomerRecRef необходимо создать текстовую зону в секции отчета. Текстовая зона нужна, чтобы передать значение переменной в набор данных Visual Studio.
Примечание: Частью набора данных становятся только те элементы управления, которые расположены в секциях. Поэтому иногда необходимо помещать в секции глобальные/локальные переменные, чтоб они стали доступны в Visual Studio Report Designer.
В Report Designer:
- Щелкните View > Sections. Откроется Section Designer.
- Добавьте текстовую зону в секцию Customer Body (2), установите для нее следующие свойства:
- Visible: No
- SourceExpr: FORMAT(CustomerRecRef.RECORDID,0,10)
- ForeColor: 65535
- Сохраните отчет.
Примечание: В данном выражении используется значение 10 для преобразования RECORDID в представление совместимое обработчиком URL для страниц и отчетов.
Добавление в Visual Studio ссылки к названию клиента
Далее нужно открыть и изменить макет отчета в Visual Studio. Ниже будет показано, как добавить ссылку к названию клиента в отчете. По щелчку на ссылке будет открывать карточка выбранного клиента.
В Report Designer:
- Щелкните View > Layout. Откроется Visual Studio. Обратите внимание, что теперь в наборе данных доступна переменная FORMAT_CustomerRecRef_RECORDID_0_10_.
- Выберите поле Customer_Name (четвертый столбец, третья строка таблицы). Значение поля
=Fields!Customer_Name.Value
. - Щелкните по нему правой кнопкой мыши и выберите Properties. Появится окно Textbox Properties.
- Перейдите на закладку Navigate.
- Установите флаг в поле Jump to URL и введите следующее Jump to URL:
="dynamicsnav:////runpage?page=21&mode=edit&bookmark="+Fields!FORMAT_CustomerRecRef_RECORDID_0_10_.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