ICE23
ICE23은 각 대화 상자의 컨트롤 탭 순서의 유효성을 검사합니다.
ICE23은 대화 상자 테이블 및 컨트롤 테이블에서 다음의 유효성을 검사합니다.
- 대화 상자 테이블의 모든 레코드는 대화 상자 열에서 지정된 대화 상자에 있는 Control_First 열의 컨트롤을 지정합니다.
- 컨트롤 테이블의 모든 레코드가 Control 열에 나열된 컨트롤과 동일한 대화 상자에 있는 Control_Next 열의 컨트롤을 지정하거나 Control_Next에 Null 값을 포함합니다.
- 컨트롤 테이블에서 컨트롤 간의 Control_Next 항목 다음에는 초기 컨트롤로 돌아오는 단일 폐쇄형 루프가 생성됩니다. 모든 컨트롤이 루프에 있어야 하는 것은 아니지만 루프는 Control_Next 열에 항목이 있는 모든 컨트롤을 통과해야 합니다.
컨트롤의 탭 순서가 대화 상자에서 단일 폐쇄형 루프를 형성하지 않으면 ICE23에서 오류 메시지를 게시합니다.
ICE23은 표시된 예제에 대해 다음 오류 메시지를 게시합니다.
- Dialog1에 Control_First가 없습니다.
- dialog2 대화 상자의 Control_First는 존재하지 않는 컨트롤인 ControlX를 나타냅니다.
- ControlB 컨트롤에서 Dialog3에 막다른 탭 순서가 있습니다.
- ControlC 컨트롤에서 Dialog4의 탭 순서가 잘못되었습니다.
- ControlC 컨트롤에서 Dialog5의 탭 순서가 잘못되었습니다.
- 컨트롤 Dialog6.ControlC의 Control_Next가 알 수 없는 컨트롤에 연결합니다.
대화 상자 테이블(부분)
대화 상자 | 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 레코드의 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는 Control 열에 나열된 컨트롤과 동일한 대화 상자에 있는 유효한 컨트롤을 참조하지 않습니다. Dialog6에서 ControlC에 대한 Control_Next 열을 ControlD를 참조하도록 변경합니다.