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


Использование правил <WHEN*>, <DEFAULT> и <COPY>

Обновлен: Ноябрь 2007

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

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

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

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

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

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

    ms194946.alert_note(ru-ru,VS.90).gifПримечание.

    Сервер 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 станет пустым, если в поле Status вводится «Approved Again», потому что правило <WHEN*> выполняется, как только пользователь вводит букву «e» в слове «Approved», даже если окончательное значение не равно «Approve». По этой причине следует очень внимательно использовать условные правила.

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

См. также

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

Доступные правила для полей

Использование условий <WHEN>, <WHENNOT> и <WHENCHANGED>