ICE23
ICE23 會驗證每個對話框的控件定位順序。
ICE23 會在 [對話框] 數據表中驗證下列專案, 和 控件數據表:
- Dialog 資料表中的每個記錄都會指定 [對話框] 資料行所指定之對話框中Control_First數據行中的控制項。
- Control 資料表中的每個記錄都會指定與 Control 資料行中所列控件位於相同對話框Control_Next數據行中的控件,或Control_Next包含 Null 值。
- 在控件數據表中從控件到控件Control_Next項目之後,會建立回到初始控件的單一封閉迴圈。 並非每個控件都必須在 迴圈中,但循環必須通過每個在 Control_Next 數據行中具有專案的控件。
結果
如果控件的定位順序未在對話框中形成單一封閉迴圈,ICE23 就會張貼錯誤訊息。
例
ICE23 會針對顯示的範例張貼下列錯誤訊息。
- Dialog1 沒有Control_First。
- 對話框對話框2 的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 |
若要修正這些錯誤,請注意上述數據表中的下列內容,並進行指示的變更。
Dialog 資料表中的每個數據列都沒有Control_First數據行中指定的控制項。 將 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。
相關主題