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

Статическое форматирование

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

В Microsoft Dynamics NAV Classic Client:

  1. Щелкните Tools > Object Designer. Откроется Object Designer.
  2. Щелкните кнопку Report, чтобы открыть список отчетов.
  3. Выберите отчет 123456701 Salesperson Cust. Sales Profit, затем щелкните кнопку Design.
  4. Щелкните View > Layout. Откроется Visual Studio.
  5. Выделите первую строку элемента управления Table.
  6. С помощью панели инструментов установите для выделенных ячеек жирный шрифт, цвет фона LightSkyBlue, а также добавьте границы вокруг каждой ячейки (All Borders).
  7. Теперь макет должен выглядеть следующим образом:

    ReportLayoutReportLayout
    Рисунок 1.1

    Обратите внимание, что с помощью кнопок на панели инструментов были изменены свойства ячеек. Измененные свойства в окне Properties отображаются жирным шрифтом.

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

Динамическое форматирование

Далее будет показано, как изменять свойства элементов управления динамически и как это можно использовать для форматирования.

В Microsoft Dynamics NAV Classic Client:

  1. Щелкните Tools > Object Designer. Откроется Object Designer.
  2. Щелкните кнопку Report, чтобы открыть список отчетов.
  3. Выберите отчет 123456701 Salesperson Cust. Sales Profit, затем щелкните кнопку Design.
  4. Щелкните View > Layout. Откроется Visual Studio.
  5. Выделите третью строку элемента управления Table. Установите для нее свойство:
    • BackgroundColor: = IIF(RowNumber("table1_Group1") mod 2, “AliceBlue”, “White”)

    Функция RowNumber получает номер строки в текущей области действия (scope). В приведенном примере используется область действия table1_Group1 (номер строки в пределах группировки по менеджеру, т.е. при смене менеджера номер строки начинается с единицы). Для простых таблиц, в которых нет группировок, можно использовать функцию RowNumber(Nothing). Nothing – это ключевое слово, означающее самую внешнюю область данных.

  6. Закройте Visual Studio, когда система предложит сохранить изменения, щелкните кнопку Yes.
  7. Щелкните в любом месте Report Designer, затем щелкните кнопку Yes, чтобы загрузить макет из Visual Studio.
  8. Сохраните отчет и закройте Report Designer.
  9. Щелкните кнопку Пуск > Выполнить (Win+R) и укажите DynamicsNAV:////runreport?report=123456701.
  10. Щелкните кнопку Preview. На экран будет выведен отчет с требуемым форматированием.

Однако в нашем отчете есть возможность вывести дополнительные данные по клиенту. В данном случае определение четности строки с помощью RowNumber будет неприменимо. Далее будет показано, как настроить форматирование при выводе дополнительной информации.

  1. Щелкните Tools > Object Designer. Откроется Object Designer.
  2. Щелкните кнопку Report, чтобы открыть список отчетов.
  3. Выберите отчет 123456701 Salesperson Cust. Sales Profit, затем щелкните кнопку Design.
  4. Щелкните View > Layout. Откроется Visual Studio.
  5. Выделите строки элемента управления Table с третьей по шестую (все строки типа Table Details). Установите для них свойство:
    • BackgroundColor: = IIF(RunningValue(Fields!Customer__No__.Value,CountDistinct, "table1_Group1") Mod 2, "AliceBlue", "White")

    Функция CountDistinct подсчитывает изменения поля Fields!Customer__No__, т.е. возвращает информацию о том, сколько раз изменился клиент в заданной области действия. Если функцию CountDistinct передать в качестве параметра в функцию RunningValue, то будет возвращено не общее количество изменений, а количество изменений нарастающим итогом. При выводе отчета, у строк с дополнительной информацией клиент не меняется, а значит, увеличение значения возвращаемого функцией RunningValue не происходит.

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

Альтернатива свойству BlankNumbers для макета отчета

В классическом клиенте для элементов управления, выведенных в секции отчета, доступен параметр BlankNumbers. Он позволяет управлять видимостью числовых значений. Можно указать системе, что требуется скрывать нулевые, положительные или отрицательные значения. Для Reporting Services такого параметра нет.
Чтобы компенсировать этот недостаток при создании макета отчета автоматически происходит создание набора пользовательских функций. Ниже приведен перечень этих функций:

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

  1. Щелкните Tools > Object Designer. Откроется Object Designer.
  2. Щелкните кнопку Report, чтобы открыть список отчетов.
  3. Выберите отчет 123456701 Salesperson Cust. Sales Profit, затем щелкните кнопку Design.
  4. Щелкните View > Layout. Откроется Visual Studio.
  5. Выделите ячейку в шестом столбце третьей строки. Установите для нее свойство:
    • Value: =Code.BlankZero(Fields!Customer__Profit__LCY__.Value)

    Теперь нулевые значения прибыли в отчет выводиться не будут.

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

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

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

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

 

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