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

Добавление интерактивной сортировки

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

В 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. Выберите поле Salesperson_Purchaser_NameCaption (второй столбец, первая строка таблицы) и установите ему свойства:
    • UserSort, SortExpression: =Fields!Salesperson_Purchaser_Code.Value
    • UserSort, SortExpressionScope: table1_Group1
  6. Выберите поле Customer_NameCaption (четвертый столбец, первая строка таблицы) и установите ему свойство:
    • UserSort, SortExpression: =Fields!Salesperson_Purchaser_Code.Value
  7. Выберите поле Customer__Sales__LCY___Control9Caption (пятый столбец, первая строка таблицы) и установите ему свойство:
    • UserSort, SortExpression: =Fields!Salesperson_Purchaser_Code.Value
  8. Закройте Visual Studio, когда система предложит сохранить изменения, щелкните кнопку Yes.
  9. Щелкните в любом месте Report Designer, затем щелкните кнопку Yes, чтобы загрузить макет из Visual Studio.

Добавление возможности скрывать/раскрывать данные

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

В Report Designer:

  1. Щелкните View > Layout. Откроется Visual Studio.
  2. Щелкните по заголовку шестого столбца, установите для него свойства:

    • Visiblity, Hidden: =True
    • Visiblity, ToggleItem: Customer__Sales__LCY___Control9Caption
  3. Свойства VisibilityСвойства Visibility
    Рисунок 1.1

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

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

В статьях Разработка отчета для классического клиента и Разработка отчета для ролеориентированного клиента было рассказано, как управлять видимостью строк содержащих дополнительную информацию о клиенте. Для этих строк в свойство Visibility, Hidden было установлено значение =NOT(Fields!CustomerDetail.Value). Выражение =NOT(Fields!CustomerDetail.Value) указывает, что если в странице запроса не был установлен флаг в поле Show Customer Detail, то строки с дополнительной информацией при запуске отчета будут скрыты.

Для динамического управления видимостью поля (строки) можно использовать свойство Visibility, ToggleItem. В этом свойстве можно указать поле, рядом с которым появится переключатель. При нажатии на этот переключатель связанное поле (строка) будут появляться или исчезать. Это свойство устанавливается для поля (строки), которое должно появляться/исчезать.

Для поля рядом с которым должен появиться переключатель есть свойство InitialToggleState. Оно отвечает за то, как должен выглядеть переключатель([-] или [+]) при запуске отчета.

В Report Designer:

  1. Щелкните View > Layout. Откроется Visual Studio.
  2. Щелкните по заголовку третьей строки, установите для нее свойства:
    • Visibility, ToggleItem: Salesperson_Purchaser_Code
  3. Выберите поле в первом столбце, второй строки (Salesperson_Purchaser_Code), установите для него свойство:
    • InitialToggleState: Expanded
  4. Теперь пользователь может раскрывать/скрывать строки с названием клиента и суммами продаж и прибыли. Для этого пользователь должен щелкнуть по переключателю возле поля Salesperson_Purchaser_Code. Т.к. для строки с названием клиента и суммами продаж и прибыли свойство Visibility, Hidden не заполнено, значит, изначально при формировании отчета эти строки будут видны. А раз строки видны, то переключатель должен быть в виде [-] (скрыть). За это отвечает свойство InitialToggleState: Expanded поля Salesperson_Purchaser_Code.

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

  5. Выберите три строки (с четвертой по шестую) и установите для них свойство:

    • Visibility, ToggleItem: = Customer__No__
  6. Щелкните по заголовку третьей строки, установите для нее свойства:
    • InitialToggleState: = Fields!CustomerDetail.Value
  7. Закройте Visual Studio, когда система предложит сохранить изменения, щелкните кнопку Yes.
  8. Щелкните в любом месте Report Designer, затем щелкните кнопку Yes, чтобы загрузить макет из Visual Studio.

Добавление карты документа в отчет

Далее будет показано, как добавить в отчет карту документа. Карта документа (document map) - это древовидная структура в левой части отчета, которая обеспечивает удобную навигацию. При щелчке по элементу в карте пользователь автоматически переходит на соответствующую область отчета.

В Report Designer:

  1. Щелкните View > Layout. Откроется Visual Studio.
  2. Выберите элемент управления table щелкните по нему правой кнопкой мыши и выберите Properties. Появится окно Table Properties.
  3. Перейдите на закладку Groups, затем нажмите кнопку Edit. Появится окно Grouping and Sorting Properties.
  4. Введите следующее в поле Document map label: =Fields!Salesperson_Purchaser_Name.Value
  5. Document map labelDocument map label
    Рисунок 1_2

  6. Оставьте остальные свойства без изменений, щелкните кнопку OK и еще раз OK.
  7. Таким образом, в карту документа были добавлены группы – менеджеры. Далее будет показано, как включить в карту документа клиентов.

  8. Выберите поле Customer__No__ (третий столбец, третья строка таблицы) и установите ему свойство:
    • Label: =Fields!Customer_Name.Value
  9. LabelLabel
    Рисунок 1_3

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

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

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

В левой части отчета отображается карта документа. Если щелкнуть по элементу карты, то система отобразит соответствующую область отчета. Возле кодов менеджеров (JR и PS) отображаются переключатели. Эти переключатели позволяют скрыть/отобразить информацию по клиентам. Например, для менеджера JR информация по клиентам скрыта.

Такой же переключатель находится в столбце Sales (LCY). Если по нему щелкнуть, то появится столбец Profit (LCY). В данный момент столбец Profit (LCY) скрыт.

Рядом с полями Name (для менеджера и для клиента), также рядом с полем Sales (LCY) присутствуют кнопки сортировки. Они позволяют динамически изменить сортировку в отчете. Например, изначально клиенты отсортированы по кодам, но на картинке используется сортировка по алфавиту. Обратите внимание, что в зависимости от используемой сортировки изменяется карта документа (на рисунке клиенты в карте документа также отсортированы по алфавиту).

 

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