Removendo os formulários do sistema duplicados

De Wiki.Softwell

Quando as configurações do sistema apresentam inconsistências você pode tentar resolver resetando-as. Isto se aplica nos seguintes casos:

  • Formulários, relatórios, ou regras externas não são encontradas;
  • Opções do sistema como "Requer Autenticação", "Avaçado" não são salvas, ou executadas;
  • Eventos do sistemas não são gravados ou executados;

Tabela de conteúdo

Identificando o problema

Esta solução somente se aplica quando o SQL abaixo retornar mais de 1 registro:

select FR_FORMULARIO.FRM_CODIGO FROM FR_FORMULARIO
inner join FR_FORMULARIO_SISTEMA FRM_SIS on (FRM_SIS.FRM_CODIGO = FR_FORMULARIO.FRM_CODIGO)
where (FR_FORMULARIO.FRM_DESCRICAO = '$_FORMULARIO_DO_SISTEMA') and (FRM_SIS.SIS_CODIGO = 'ALO')

Método rápido

O comando abaixo irá remover todos os formulários do sistema, eliminando as duplicações. Será necessário sair do Maker e entrar novamente após executar esse comando.

SQL para remover todos os formulários do sistema, observe que a sigla 'ALO' deve ser substituída pela sigla do sistema:

delete from FR_FORMULARIO where FRM_CODIGO in
(select FR_FORMULARIO.FRM_CODIGO FROM FR_FORMULARIO
inner join FR_FORMULARIO_SISTEMA FRM_SIS on (FRM_SIS.FRM_CODIGO = FR_FORMULARIO.FRM_CODIGO)
where (FR_FORMULARIO.FRM_DESCRICAO = '$_FORMULARIO_DO_SISTEMA') and (FRM_SIS.SIS_CODIGO = 'ALO'))

Método mais seguro

Faça o seguinte SQL, onde 'ALO' é o código do sistema:

select FR_FORMULARIO.FRM_CODIGO FROM FR_FORMULARIO
inner join FR_FORMULARIO_SISTEMA FRM_SIS on (FRM_SIS.FRM_CODIGO = FR_FORMULARIO.FRM_CODIGO)
where (FR_FORMULARIO.FRM_DESCRICAO = '$_FORMULARIO_DO_SISTEMA') and (FRM_SIS.SIS_CODIGO = 'ALO')

Observe a listagem do comando acima, e delete a partir do segundo formulário com o comando SQL abaixo, onde 123 é o código do formulário:

delete from FR_FORMULARIO where FRM_CODIGO = 123

Atenção

  • Qualquer configuração previamente feita no sistema será apagada.
Ferramentas pessoais