Использование правил <WHEN*>, <DEFAULT> и <COPY>
Обновлен: Ноябрь 2007
В данном разделе описывается ожидаемое поведение и взаимодействие при использовании правил <DEFAULT>, <COPY> и <WHEN*>. Следующие действия последовательно описывают взаимодействие между Team Foundation Server и пользователем формы рабочего элемента. Пользователь выполняет только действия 1, 8 и 13.
Используя пользовательский интерфейс Visual Studio, пользователь предпринимает действия по созданию нового рабочего элемента или редактированию существующего рабочего элемента.
Введите значения полей по умолчанию. Для всех полей используйте любые правила <DEFAULT>, которые выходят за пределы правил <WHEN*>.
Скопируйте значения полей. Для всех полей используйте любые правила <COPY>, которые выходят за пределы предложений <WHEN*>.
Для всех полей с совпадающим правилом <WHEN> сначала выполните правило <DEFAULT>, а затем скопируйте содержащиеся правила <COPY>.
Для всех полей с совпадающим правилом <WHENNOT> сначала выполните правило <DEFAULT>, а затем содержащиеся правила <COPY>.
Примечание.
Сервер Team Foundation Server всегда обрабатывает правила <WHEN> перед правилами <WHENNOT>.
Для всех полей, чьи значения изменились после выполнения действия 1 и которые содержат правила <WHENCHANGED>, сначала выполните правило <DEFAULT>, а затем содержащиеся правила <COPY>.
Разрешить пользователю начать редактирование.
Пользователь изменяет значение поля и затем перемещает фокус с поля.
Выполнять любые правила <WHEN> для поля, которое соответствует новому значению.
Выполнять любые правила <WHENNOT> для поля, которое соответствует новому значению.
Выполнять любые правила <WHENCHANGED> для поля, которое соответствует новому значению.
Вернуть пользователю возможность редактирования.
Пользователь выполняет действие, чтобы сохранить изменения в базе данных.
Для всех полей выполните операции <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>