共用方式為


使用 <WHEN*>、<DEFAULT> 和 <COPY> 規則

更新:2007 年 11 月

本節將說明使用 <DEFAULT>、<COPY> 和 <WHEN*> 規則時,會有什麼預期的行為與互動。下列步驟以適當的順序示範 Team Foundation Server 和工作項目表單的使用者所進行的互動,使用者所進行的互動只有步驟 1、8 和 13。

  1. 經由使用 Visual Studio 使用者介面,使用者採取行動以建立新的工作項目,或是編輯現有的工作項目。

  2. 填入欄位預設值。針對所有欄位,使用 <WHEN*> 規則外的任何 <DEFAULT> 規則。

  3. 複製欄位值。針對所有欄位,使用 <WHEN*> 子句外的任何 <COPY> 規則。

  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. 針對所有欄位,直接或間接在 <WHEN> 或 <WHENNOT> 規則下,執行為欄位所定義的 <SERVERDEFAULT> 作業。

按鍵的處理

當使用者使用圖形化使用者介面來編輯工作項目表單時,每次針對某個欄位輸入某個按鍵時就會設定新的值。這表示只要符合了 <WHEN* 規則的必要條件,就可能不預期的發生此規則。

在下面的 XML 範例中,當您在 Status 欄位中輸入「Approved Again」時,就會清空 SubStatus,因為雖然使用者最終並不是要輸入「Approve」,但只要使用者一輸入「Approved」中的「e」這個字母時,就會發生 <WHEN*> 規則。因此,使用條件規則時必須特別注意。

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

請參閱

概念

可用的欄位規則

使用 <WHEN>、<WHENNOT> 和 <WHENCHANGED> 條件