В данной статье будет показано, как добавить в отчет программный код. В классическом клиенте некоторые расчеты выполняются в триггерах секций, но в ролеориентированном клиенте триггеры секций не поддерживаются. Однако код можно добавить непосредственно в макет отчета. Это может быть важно, когда требуется выполнить расчет процентов по итоговым суммам. В данной статье продолжается работа над отчетом, созданным в статьях Разработка отчета для классического клиента и Разработка отчета для ролеориентированного клиента.
Процедура состоит из нескольких шагов:
- Добавление функции в макет отчета
- Использование функции в макете отчета
Добавление функции в макет отчета
Ниже будет показано, как добавить в отчет пользовательскую функцию по расчету рентабельности продаж, которая будет рассчитываться на основании суммы продаж и прибыли.
В Microsoft Dynamics NAV Classic Client:
- Щелкните Tools > Object Designer. Откроется Object Designer.
- Щелкните кнопку Report, чтобы открыть список отчетов.
- Выберите отчет 123456701 Salesperson Cust. Sales Profit, затем щелкните кнопку Design.
- Щелкните View > Layout. Откроется Visual Studio.
- Щелкните Report > Report Properties. Откроется окно Report Properties.
- Перейдите на закладку Code.
- В поле Custom Code напишите требуемую функцию на Visual Basic.
- Щелкните кнопку OK.
Использование функции в макете отчета
Ниже будет показано, как использовать созданную функцию в макете отчета.
- Щелкните по столбцам, затем щелкните правой кнопкой мыши и выберите Insert Column to the Right. Теперь в таблице с семь столбцов.
- Щелкните правой кнопкой мыши в седьмом столбце третьей строки и выберите Expression. Появится окно Expression.
- Введите в верхнее поле следующее выражение:
=Code.CalcEfficiency(Fields!Customer__Sales__LCY__.Value, Fields!Customer__Profit__LCY__.Value) - Щелкните кнопку ОК.
Это был добавлен расчет рентабельности по клиенту. Теперь нужно добавить расчет рентабельности для каждого менеджера и по всем менеджерам в целом.
- Щелкните правой кнопкой мыши в седьмом столбце седьмой строки и выберите Expression. Появится окно Expression.
- Введите в верхнее поле следующее выражение:
=Code.CalcEfficiency(Sum(Fields!Customer__Sales__LCY__.Value), Sum(Fields!Customer__Profit__LCY__.Value)) - Щелкните кнопку ОК. Это был добавлен расчет рентабельности по менеджеру.
- Повторите шаги 1-3 для ячейки, расположенной в седьмом столбце восьмой строки.
- Закройте Visual Studio, когда система предложит сохранить изменения, щелкните кнопку Yes.
- Щелкните в любом месте Report Designer, затем щелкните кнопку Yes, чтобы загрузить макет из Visual Studio.
- Сохраните отчет и закройте Report Designer.
Запуск измененного отчета
- Щелкните кнопку Пуск > Выполнить (Win+R) и укажите DynamicsNAV:////runreport?report=123456701.
- Щелкните кнопку Preview
Для того чтобы использовать мультиязычные возможности системы, а также соответствующее форматирование (один знак после запятой), в секцию Customer, Body (2) была добавлена текстовая зона с настроенными свойствами Caption, CaptionML и Format (DecimalPlaces).
Андрей Панько >>
Dynamics NAV MVP
apanko@rabota-na-rezultat.ru





