Поделиться через


Проверка правил

Применение к полю нескольких правил позволяет понять, как проверяются правила.Процедура проверки правил не является четко детерминированной.В данном разделе описывается ожидаемое поведение и взаимодействие при использовании правил <WHEN*>, <DEFAULT> и <COPY>.

Следующие действия последовательно описывают взаимодействие между Team Foundation Server и пользователем формы рабочего элемента.Пользователь выполняет только действия 1, 8 и 13.

  1. Используя пользовательский интерфейс Visual Studio, пользователь создает новый рабочий элемент или редактирует существующий.

  2. Введите значения полей по умолчанию.Для всех полей используйте любые правила <DEFAULT>, которые располагаются за пределами правил <WHEN*>.

  3. Скопируйте значения полей.Для всех полей используйте любые правила <COPY>, которые располагаются за пределами предложений <WHEN*>.

  4. Для всех полей с совпадающим правилом <WHEN> сначала выполните правило <DEFAULT>, а затем скопируйте содержащиеся правила <COPY>.

  5. Для всех полей с совпадающим правилом <WHENNOT> сначала выполните правило <DEFAULT>, а затем содержащиеся правила <COPY>.

    ПримечаниеПримечание

    Сервер Team Foundation Server всегда обрабатывает правила <WHEN> перед правилами <WHENNOT>.

  6. Для всех полей, значения которых изменились после выполнения действия 1 и которые содержат правила <WHENCHANGED>, сначала выполните правило <DEFAULT>, а затем содержащиеся правила <COPY>.

  7. Разрешить пользователю начать редактирование.

  8. Пользователь изменяет значение поля и затем перемещает фокус с поля.

  9. Выполнять любые правила <WHEN> для поля, которое соответствует новому значению.

  10. Выполнять любые правила <WHENNOT> для поля, которое соответствует новому значению.

  11. Выполнять любые правила <WHENCHANGED> для поля, которое соответствует новому значению.

  12. Вернуть пользователю возможность редактирования.

  13. Пользователь сохраняет изменения в базе данных.

  14. Для всех полей выполните операции <SERVERDEFAULT>, которые определены для поля прямо или косвенно в рамках правила <WHEN> или <WHENNOT>.

Обработка нажатий клавиш

Когда пользователь использует графический интерфейс для изменения формы рабочего элемента, новое значение задается каждый раз, когда нажимается соответствующая полю клавиша.Это означает, что правило <WHEN*> может выполниться неожиданно, если будут соблюдены обязательные условия правила.

В следующем примере XML-кода поле SubStatus будет очищено при вводе значения "Approved Again" в поле Status, так как правило <WHEN*> выполняется сразу же после ввода пользователем буквы "e" в поле Approved, даже если предполагаемое окончательное значение не равно "Approve".По этой причине необходимо внимательно думать при использовании условных правил.

<FIELD refname="MyCorp.SubStatus" />
<WHEN field="MyCorp.Status" value="Approve" >
<EMPTY />
</WHEN>
</FIELD>

См. также

Основные понятия

Справка по всем XML-элементам FIELD

Назначение условных значений и правил