NAV2009: Страницы с фиксированной разметкой

В Dynamics NAV 2009 пользователи получили новые возможности по управлению интерфейсом. Теперь они могут гибко настраивать свое рабочее окружение, которое включает меню, ролевые центры, а также индивидуальную настройку списков и карточек. К сожалению, за все нужно платить.

В ролеориентированном клиенте используется новый объект Страница (Page), который используется вместо объекта Форма (Form). Страницы, в отличие от форм формируются системой динамически, в то время как для форм разработчик рисовал разметку вручную, указывая местоположение каждого элемента.

Начнем рассмотрение с наиболее простых форм – форм с разметкой имитирующей таблицу.

Формы с псевдо-табличной разметкой.

Элементы управления на таких формах расположены таким образом, что форма напоминает таблицу со столбцами и строками. Примером может быть закладка Sales формы 151 Customer Statistics. В этом случае размещение каждой текстовой зоны очень важно (причем как по горизонтали, так и по вертикали), иначе понять, что обозначает содержащееся в текстовой зоне значение, будет невозможно.

Форма Статистики Клиента

Посмотрим теперь на соответствующую страницу – это страница 151 (Microsoft рекомендует при создании страниц использовать тот же идентификатор, что и у формы). Откроем ее из Object Designer.

Первый элемент с типом Group и подтипом Content Area – это главный контейнер, в нем находятся два элемента c типом Group и подтипом Group – это закладки General и Sales. Элементы на закладке Generals отображаются динамически, поэтому не будем заострять на них внимание, т.к. ничего нового нет в них подразумевается. Вместо этого посмотрим на элементы закладки Sales.

Первым элементом в группе является элемент с типом Group и подтипом FixedLayout. Уровнем ниже идут элементы типа Group и подтипа Group – они обозначают столбцы, в свойстве Caption этих элементов указываются названия столбцов. В качестве названий строк используются Caption элементов, входящих в первую группу.

Любопытный факт. Если в первую группу входит меньше элементов, чем в последующие, то у строки, для которой нет элемента первой группы (в конце) не будет названия.

В упрощенном виде окно Page Designer должно было выглядеть так:

Name Caption Type SubType SourceExpr
Control1 Control1 Container ContentArea  
Control2 General Group Group  
Balance (LCY) Balance (LCY) Field   “Balance (LCY)”
Control5 Sales Group Group  
Control6 Control6 Group FixedLayout  
Control7 This Period Group Group  
Control8 Sales (LCY) Field   CustSalesLCY[1]
Control10 This Year Group Group  
Control11 Control11 Field   CustSalesLCY[2]

Однако почему-то в Page Designer есть еще элементы:

  •   CustDateName - Field - CustDateName[1]
  •   Control120 - Field - Text001.

Разберемся в их предназначении. Дело в том, что изначально в форме 151 в качестве заголовка первого столбца использовалась переменная, которая отображала на форме название текущего периода, например, Январь.
Было:

January This year
Sales (LCY) 100 500

Но элемент с типом Group не может содержать выражение (свойство SourceExpr должно быть пусто), поэтому строку заголовка разделили на две.
Стало:

Страница Статистики Клиента

Таким образом, первый элемент с типом Group и подтипом Group показывает название столбца – This Period, а первый элемент в группе показывает переменную, содержащую название периода (CustDateName[1]), имитируя, таким образом, название состоящее из двух строк.

А чтобы показатели, размещенные во втором столбце, не сместились на одну строку вверх, первый элемент второго столбца показывает текстовую строку из текстовой переменной text001. В этой текстовой переменной содержится текст PLACEHOLDER. Но данный текст не отображается на экране т.к. у элемента в свойстве Visible установлено значение FALSE (т.е. он не видим, а только занимает место).

Вот таким образом создаются формы с фиксированной разметкой.

Примечание.

Так как для совместимости с предыдущими версиями в Microsoft Dynamics NAV 2009 поддерживаются оба клиента: классический (как в Dynamics NAV 5) и ролеориентированный, то разработчикам требуется поддерживать оба представления сущности – в виде формы и в виде страницы. Чтобы как-то сократить объем работ Microsoft рекомендует вначале создавать форму, а потом с помощью специального инструментария преобразовывать ее в страницу. Поэтому если с помощью Object Designer открыть форму 151, то можно увидеть «лишние» текстовые зоны, основное предназначение которых – упростить процедуру трансформации формы в страницу.

Метки:



Комментариев: 1

  1. apanko пишет:

    Еще статьи про формы/страницы в Dynamics NAV 2009. Рассмотрены вопросы использования матричных форм.

    Альтернативная реализация матричных форм в Microsoft Dynamics NAV 2009
    http://navision.mazzy.ru/lib/nav2009-matrix-form-tobe/

    Как реализованы матричные формы в Microsoft Dynamics NAV 2009?
    http://navision.mazzy.ru/lib/nav2009-matrix-form/

Оставьте свой отзыв!