Partilhar via


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.

de referência ICE