ICE23
O ICE23 valida a ordem da guia de controle para cada caixa de diálogo.
O ICE23 valida o seguinte na tabela Dialog e na tabela Control:
- Que cada registro na tabela Dialog especifica um controle na coluna Control_First que existe na caixa de diálogo especificada pela coluna Dialog.
- Que cada registro na tabela Control especifica um controle na coluna Control_Next que está na mesma caixa de diálogo que o controle listado na coluna Control ou que Control_Next contém o valor Null.
- Que seguir as entradas Control_Next do controle para o controle na tabela Control cria um único loop fechado que retorna ao controle inicial. Nem todo controle precisa estar no loop, mas o loop deve passar por todos os controles que têm uma entrada na coluna Control_Next.
O ICE23 postará uma mensagem de erro se a ordem de tabulação dos controles não formar um único loop fechado na caixa de diálogo.
O ICE23 posta as seguintes mensagens de erro para o exemplo mostrado.
- O Dialog1 não tem Control_First.
- O Control_First da caixa de diálogo Dialog2 refere-se ao ControlX de controle inexistente.
- O Dialog3 tem a ordem de tabulação sem saída no ControlB de controle.
- O Dialog4 tem a ordem de tabulação malformada no ControlC
- O Dialog5 tem a ordem de tabulação malformada no ControlC.
- O Control_Next dos links dialog6.ControlC de controle para o controle desconhecido.
Tabela Dialog (parcial)
caixa de diálogo | Control_First |
---|---|
Dialog1 | |
Dialog2 | ControlX |
Dialog3 | ControlA |
Dialog4 | ControlA |
Dialog5 | ControlA |
Tabela Control (parcial)
caixa de diálogo | Control | 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 |
Para corrigir esses erros, observe o seguinte nas tabelas acima e faça as alterações indicadas.
Nem todas as linhas na tabela Dialog têm um controle especificado na coluna Control_First. Altere a coluna Control_First do registro Dialog1 na tabela Dialog para um controle que existe no Dialog1.
Nem todas as linhas na tabela Dialog têm um controle especificado na coluna Control_First que existe na caixa de diálogo. Altere a coluna Control_First do Dialog2 para um controle que existe no Dialog2.
Seguir as entradas de Control_Next na tabela Control do controle para o controle não faz um loop fechado em todos os casos. Altere a coluna Control_Next do ControlB no Dialog3 para ControlA.
Seguir as entradas de Control_Next na tabela Control do controle para o controle não retorna ao controle inicial em todos os casos. Altere a coluna Control_Next do ControlC no Dialog4 para referenciar o ControlA.
Seguir as entradas de Control_Next na tabela Control do controle para o controle não passa por todos os controles na caixa de diálogo que têm uma entrada na coluna Control_Next. Altere a coluna Control_Next do ControlC no Dialog5 para ControlD.
O Control_Next não se refere a um controle válido que está na mesma caixa de diálogo que o controle listado na coluna Control. Altere a coluna Control_Next do ControlC no Dialog6 para referenciar o ControlD.