ICE23
ICE23 會驗證每個對話方塊的控制項定位順序。
ICE23 會在 [對話方塊] 資料表 和 [控制項] 資料表中驗證下列各項:
- Dialog 資料表中的每個記錄都會指定Control_First資料行中的控制項,該控制項存在於 Dialog 資料行所指定的對話方塊中。
- Control 資料表中的每個記錄都會指定Control_Next資料行中的控制項,該控制項位於控制項資料行所列的相同對話方塊中,或Control_Next包含 Null 值。
- 在控制項資料表中從控制項到控制項Control_Next專案之後,會建立回到初始控制項的單一封閉迴圈。 並非每個控制項都必須在 迴圈中,但迴圈必須通過Control_Next資料行中具有專案的每個控制項。
結果
如果控制項的定位順序在對話方塊中沒有形成單一封閉迴圈,ICE23 就會張貼錯誤訊息。
範例
ICE23 會針對顯示的範例張貼下列錯誤訊息。
- Dialog1 沒有Control_First。
- 對話方塊 Dialog2 的Control_First是指不存在的控制項 ControlX。
- Dialog3 在 ControlB 有死結定位順序。
- Dialog4 在 ControlC 的定位順序不正確
- Dialog5 在 ControlC 上格式不正確的定位順序。
- Control_Next控制項 Dialog6.ControlC 連結至未知控制項。
對話方塊資料表 (部分)
對話 | Control_First |
---|---|
Dialog1 | |
Dialog2 | ControlX |
Dialog3 | ControlA |
Dialog4 | ControlA |
Dialog5 | ControlA |
控制資料表 (部分)
對話 | 控制 | Control_Next |
---|---|---|
Dialog1 | ControlA | |
Dialog1 | ControlB | ControlA |
Dialog2 | ControlA | ControlB |
Dialog2 | ControlB | ControlA |
Dialog3 | ControlA | ControlB |
Dialog3 | ControlB | |
Dialog4 | ControlA | ControlB |
Dialog4 | ControlB | ControlC |
Dialog4 | ControlC | ControlB |
Dialog5 | ControlA | ControlB |
Dialog5 | ControlB | ControlC |
Dialog5 | ControlC | ControlA |
Dialog5 | ControlD | ControlA |
Dialog6 | ControlA | ControlB |
Dialog6 | ControlB | ControlC |
Dialog6 | ControlC | ControlX |
Dialog6 | ControlD | ControlA |
若要修正這些錯誤,請記下上述表格中的下列內容,並進行指示的變更。
並非對話方塊資料表中的每個資料列都有Control_First資料行中指定的控制項。 將 Dialog1 資料表中 Dialog1 記錄的Control_First資料行變更為 Dialog1 中存在的控制項。
對話方塊資料表中的每個資料列都具有對話方塊上存在之Control_First資料行中指定的控制項。 將 Dialog2 的Control_First資料行變更為 Dialog2 中存在的控制項。
在控制項資料表中的Control_Next專案從控制項到控制項之後,不會在每個案例中建立封閉迴圈。 將 Dialog3 中 ControlB 的Control_Next資料行變更為 ControlA。
在控制項資料表中從 控制項到控制項中的Control_Next專案,不會在每個案例中回到初始控制項。 變更 Dialog4 中 ControlC 的Control_Next資料行,以參考 ControlA。
在控制項資料表中從控制項到控制項中的Control_Next專案之後,不會通過對話方塊中具有Control_Next資料行中專案的每個控制項。 將 Dialog5 中 ControlC 的Control_Next資料行變更為 ControlD。
Control_Next未參考與 [控制項] 資料行所列控制項位於相同對話方塊中的有效控制項。 變更 Dialog6 中 ControlC 的Control_Next資料行,以參考 ControlD。
相關主題