使用 WHEN、WHENNOT 和 WHENCHANGED 條件

可以使用 WHEN、WHENNOT、WHENCHANGED 和 WHENNOTCHANGED 元素來定義按條件運行的規則。這些規則定義當所定義的子句爲 True 時將運行哪些元素。例如,您可以創建相關選取列表以提供詳細的安全性或自定義行爲。下面是一個簡單的 WHEN 子句示例:

<FIELD . . . >

    <WHEN field="refname" value="yyy">

</FIELD>

此子句表示,只要字段 refname 具有值“yyy”,則此 FIELD 元素中的任何內容都將適用。該字段必須爲有效的字段引用名稱。有關更多信息,請參見字段引用名

Note注意

value 屬性不區分大小寫。所以,如果字段 refname 存儲的值爲“YYY”,則匹配將包括 value =“yyy”或“YYY”的所有項。

示例

相關選取列表

下面的示例演示一個相關選取列表,在該列表中 Problem Type 的允許值受 ProblemCharacteristic 的值的限制:

<FIELD refname="MyCorp.ProblemType" name="Problem Type" type="String">
    <WHEN field="MyCorp.ProblemCharacteristic" value="Documentation">
        <ALLOWEDVALUES>
            <LISTITEM value="Spelling Error" />
            <LISTITEM value="Bad Format" />
            <LISTITEM value="Missing Info" />
        </ALLOWEDVALUES>
    </WHEN>
</FIELD>

必填字段

下面的示例演示了必填字段中的一個更改。在此情況中,當客戶報告一個 Bug 時,必須輸入客戶嚴重級別。如果客戶沒有報告 Bug,則不需要輸入客戶嚴重級別。

WHEN

<WHEN>

示例

<FIELD refname="MyCorp.Severity" name="Customer Severity" type="String">
    <ALLOWEDVALUES>
        <LISTITEM value="Blocking" />
        <LISTITEM value="Major" />
        <LISTITEM value="Minor" />
    </ALLOWEDVALUES>
    <WHEN field="MyCorp.CustomerReported" value="true">
        <REQUIRED />
    </WHEN>
</FIELD>

條件   只要字段 Customer Reported 具有值且該值爲 true,則此元素中的任何內容都將適用。

WHENNOT

<WHENNOT>

示例

<WHENNOT field="refname" value="yyy">
</WHENNOT>

條件   只要字段 refname 具有值且該值不爲 yyy,則此元素中的任何內容都將適用。

WHENCHANGED

<WHENCHANGED>

示例

<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
    <WHENCHANGED field="MyCorp.State">
        <COPY from="clock" />
    </WHENCHANGED>
</FIELD>
<!-- Clear the status field whenever someone changes the state -->
<FIELD refname="MyCorp.Status" name="Status" type="String">
    <WHENCHANGED field="MyCorp.State">
        <COPY from="value" value="">
    </WHENCHANGED>
</FIELD>

條件   當用戶修改了字段 refname 時,此元素中的任何內容都將適用。

WHENNOTCHANGED

<WHENNOTCHANGED>

示例

<FIELD refname="MyCorp.StateDate" name="Date Of Last State Change" type="DateTime">
<!-- Make the State field readonly when the StateDate field is not changed -->
    <WHENNOTCHANGED field="MyCorp.State">
        <READONLY />
    </WHENNOTCHANGED>
</FIELD>

條件   只要字段 refname 不更改,此元素中的任何內容都將適用。

發佈了27 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章