ICE23
ICE23 valida a ordem de tabulação de controle para cada caixa de diálogo.
ICE23 valida o seguinte na tabela Dialog e 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 Control_Next contém o valor Null.
- Que seguindo as entradas de Control_Next do controle para o controle na tabela Control faz um único loop fechado que volta para o 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.
Resultado
ICE23 posta uma mensagem de erro se a ordem de tabulação dos controles não formar um único loop fechado na caixa de diálogo.
Exemplo
ICE23 postaria as seguintes mensagens de erro para o exemplo mostrado.
- Dialog1 não tem Control_First.
- Control_First da caixa de diálogo Dialog2 refere-se ao controle inexistente ControlX.
- Dialog3 tem ordem de tabulação sem saída no controle ControlB.
- Dialog4 tem ordem de tabulação malformada no controle ControlC
- Dialog5 tem ordem de tabulação malformada no controle ControlC.
- Control_Next de controle Dialog6.ControlC links para controle desconhecido.
Tabela de diálogo (parcial)
Caixa de diálogo | Control_First |
---|---|
Diálogo1 | |
Diálogo2 | ControlX |
Diálogo3 | ControloA |
Diálogo4 | ControloA |
Diálogo5 | ControloA |
Tabela de Controlo (parcial)
Caixa de diálogo | Controlo | Control_Next |
---|---|---|
Diálogo1 | ControloA | |
Diálogo1 | ControloB | ControloA |
Diálogo2 | ControloA | ControloB |
Diálogo2 | ControloB | ControloA |
Diálogo3 | ControloA | ControloB |
Diálogo3 | ControloB | |
Diálogo4 | ControloA | ControloB |
Diálogo4 | ControloB | ControlC |
Diálogo4 | ControlC | ControloB |
Diálogo5 | ControloA | ControloB |
Diálogo5 | ControloB | ControlC |
Diálogo5 | ControlC | ControloA |
Diálogo5 | ControloD | ControloA |
Diálogo6 | ControloA | ControloB |
Diálogo6 | ControloB | ControlC |
Diálogo6 | ControlC | ControlX |
Diálogo6 | ControloD | ControloA |
Para corrigir esses erros, observe o seguinte nas tabelas acima e faça as alterações indicadas.
Nem todas as linhas da tabela Caixa de diálogo 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 em Dialog1.
Nem todas as linhas da tabela Dialog têm um controle especificado na coluna Control_First que existe na caixa de diálogo. Altere a coluna Control_First da caixa de diálogo2 para um controle que existe na caixa de diálogo2.
Seguir as entradas de Control_Next na tabela Control de controle para controle não faz um loop fechado em todos os casos. Altere a coluna Control_Next para ControlB em Dialog3 para ControlA.
Seguir as entradas de Control_Next na tabela Control de controle para controle não leva de volta ao controle inicial em todos os casos. Altere a coluna Control_Next para ControlC na caixa de diálogo4 para se referir a ControlA.
Seguir as entradas Control_Next na tabela Controle de controle de controle para controle não passa por todos os controles na caixa de diálogo que tem uma entrada na coluna Control_Next. Altere a coluna Control_Next para ControlC em Dialog5 para ControlD.
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 Controle. Altere a coluna Control_Next para ControlC em Dialog6 para se referir a ControlD.
Tópicos relacionados