desabilitar as mensagens frm no forms

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
donatinho
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qui, 28 Set 2006 1:14 pm
Localização: Belo Horizonte - MG

Boa tarde mocada!!!

:)

Minha dúvida é a seguinte...

Tenho um form e um campo que é a chave primária de uma tabela e que é do tipo string... Também tenho um botão salvar que chama uma procedure e que faz validação dos dados.

Só que, quando eu clico no botão salvar aparece uma mensagem informando:

FRM-40202: field must be entered.

e eu não queria que aparecesse essa mensagem e sim uma informando ao usário em bom portugues e como se fosse um alert que ele deve entar com este campo...

Como faço? alguém poderia me ajudar?

Obrigado

donatinho



:roll:
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Você pode colocar uma trigger ON-ERROR a nível de FORM com o seguinte:

Selecionar tudo

IF ERROR_CODE=40202 THEN
  MESSAGE('FRM-40202:Campo deve ser informado.');
Eu tenho alguns erros comuns aqui:

Selecionar tudo

IF ERROR_CODE=40014 THEN
  MESSAGE('FRM-40014:Memoria insuficiente para carregar o formulario.');
ELSIF ERROR_CODE=40024 THEN
  MESSAGE('FRM-40024:Memoria insuficiente - Informe ocorrencia ao DBA.');
ELSIF ERROR_CODE=40100 THEN
  MESSAGE('FRM-40100:Primeiro registro processado.');
ELSIF ERROR_CODE=40101 THEN
  MESSAGE('FRM-40101:não existe chave primaria para posicionar.');
ELSIF ERROR_CODE=40102 THEN
  MESSAGE('FRM-40102:Primeiro informe ou limpe registro.');
ELSIF ERROR_CODE=40103 THEN
  MESSAGE('FRM-40103:não existe chave primaria para posicionar.');
ELSIF ERROR_CODE=40104 THEN
  MESSAGE('FRM-40104:Bloco inexistente - Informe ocorrencia ao DBA.');
ELSIF ERROR_CODE=40105 THEN
  MESSAGE('FRM-40105:Campo inexistente - Informe ocorrencia ao DBA.');
ELSIF ERROR_CODE=40106 THEN
  MESSAGE(
'FRM-40106:não há campo entravel no bloco destino - Informe DBA.');
ELSIF ERROR_CODE=40107 THEN
  MESSAGE(
'FRM-40107:Campo destino com display desabilitado - Informe DBA.');
ELSIF ERROR_CODE=40200 THEN
  MESSAGE('FRM-40200:Campo protegido contra modificacao.');
ELSIF ERROR_CODE=40201 THEN
  MESSAGE(
'FRM-40201:Campo esta cheio não pode mais receber caracteres.');
ELSIF ERROR_CODE=40202 THEN
  MESSAGE('FRM-40202:Campo deve ser informado.');
ELSIF ERROR_CODE=40203 THEN
  MESSAGE('FRM-40203:Campo deve ser informado completamente.');
ELSIF ERROR_CODE=40204 THEN
  MESSAGE('FRM-40204:Cursor já esta posicionado no inicio do campo.');
ELSIF ERROR_CODE=40206 THEN
  MESSAGE('FRM-40206:Caracter a ser eliminado esta invisivel.');
ELSIF ERROR_CODE=40207 THEN
  MESSAGE(REPLACE(REPLACE(MESSAGE_TEXT,'Must be in range',
  'Deve esta na faixa de'),' to ',' ate '));
ELSIF ERROR_CODE=40208 THEN
  MESSAGE(
'FRM-40208:Tela operando em modo de pesquisa não pode ser alterada.');
ELSIF ERROR_CODE=40209 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,'Field must be of form',
  'Campo deve ter a forma:'));
ELSIF ERROR_CODE=40300 THEN
  MESSAGE(
'FRM-40300:Campo não pertence a tabela que esta sendo pesquisada.');
ELSIF ERROR_CODE=40302 THEN
  MESSAGE('FRM-40302:não existe campo para entar pesquisa.');
ELSIF ERROR_CODE=40356 THEN
  MESSAGE(
'FRM:40356:Numero invalido no registro exemplo. Pesquisa não efetuada.');
ELSIF ERROR_CODE=40357 THEN
  MESSAGE(
'FRM-40357:Carac. invalidos no registro exemplo. Pesquisa não efetuada.');
ELSIF ERROR_CODE=40358 THEN
  MESSAGE(
'FRM-40358:Data invalida no registro exemplo. Pesquisa não efetuada.');
ELSIF ERROR_CODE=40359 THEN
  MESSAGE(
'FRM-40359:Data/Hora invalida no registro exemplo. Pesquisa não efetuada.');
ELSIF ERROR_CODE=40401 THEN
  MESSAGE('FRM-40401:não existe alteracao para gravar.');
ELSIF ERROR_CODE=40403 THEN
  MESSAGE('FRM-40403:Grave os dados antes de executar esta acao.');
ELSIF ERROR_CODE=40405 THEN
  MESSAGE('FRM-40405:não existe alteracao para gravar.');
ELSIF ERROR_CODE=40501 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to reserve record for update or delete',
  'não foi possivel reservar registro p/alteracao/eliminacao'));
ELSIF ERROR_CODE=40502 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to read list of values',
  'não foi possivel executar abrir de valores'));
ELSIF ERROR_CODE=40504 THEN
  MESSAGE(REPLACE(REPLACE(MESSAGE_TEXT,
  'unable to execute a',
  'não foi possivel executar gatilho'),'trigger',''));
ELSIF ERROR_CODE=40505 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to perform query',
  'não foi possivel executar pesquisa'));
ELSIF ERROR_CODE=40506 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to check for record uniqueness',
  'não foi possivel checar chave unica - Informe DBA'));
ELSIF ERROR_CODE=40507 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to fetch next query record',
  'não foi possivel capturar registro na pesquisa - Informe DBA'));
ELSIF ERROR_CODE=40508 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to INSERT record',
  'não foi possivel INSERIR registro - Informe DBA'));
ELSIF ERROR_CODE=40509 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to UPDATE record',
  'não foi possivel ALTERAR registro - Informe DBA'));
ELSIF ERROR_CODE=40510 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to DELETE record',
  'não foi possivel ELIMINAR registro - Informe DBA'));
ELSIF ERROR_CODE=40512 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'unable to issue SAVEPOINT',
  'não foi possivel gerar SAVEPOINT - Informe DBA'));
ELSIF ERROR_CODE=40600 THEN
  MESSAGE(
'FRM-40600:Registro foi inserido anteriormente, chave duplicada.');
ELSIF ERROR_CODE=40602 THEN
  MESSAGE('FRM-40602:Tela apenas para consulta.');
ELSIF ERROR_CODE=40603 THEN
  MESSAGE(
'FRM-40603:Registro não mais reservado para alteracao. Pesquise novamente.'
);
ELSIF ERROR_CODE=40652 THEN
  MESSAGE(
'FRM-40652:não foi possivel reservar registro p/alteracoes - Informe DBA.');
ELSIF ERROR_CODE=40654 THEN
  MESSAGE(
'FRM-40654:Registro alterado por outro usuario. Pesquise para ver mudancas.'
);
ELSIF ERROR_CODE=40655 THEN
  MESSAGE('FRM-40655:ROLLBACK forcado. Limpe formulario e tente novamente.'
);
ELSIF ERROR_CODE=40656 THEN
  MESSAGE(
'FRM-40656:Alteracao não pode ser efetuada. Limpe o registro.');
ELSIF ERROR_CODE=40700 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'No such trigger',
  'Informe DBA - não existe gatilho'));
ELSIF ERROR_CODE=40704 THEN
  MESSAGE('FRM-40704:Sentenca SQL ilegal - Informe DBA.');
ELSIF ERROR_CODE=40705 THEN
  MESSAGE('FRM-40705:Sentenca SQL ilegal - Informe DBA.');
ELSIF ERROR_CODE=40714 THEN
  MESSAGE('FRM 40714:Funcao ilegal para este contexto.');
ELSIF ERROR_CODE=40722 THEN
  MESSAGE('FRM 40722:Nome de funcao ilegal - Informe DBA.');
ELSIF ERROR_CODE=40723 THEN
  MESSAGE('FRM 40723:Falta argumento para funcao - Informe DBA.');
ELSIF ERROR_CODE=40728 THEN
  MESSAGE('FRM 40728:Argumentos em excesso funcao - Informe DBA.');
ELSIF ERROR_CODE=40735 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'trigger raised unhandled exception',
  'Ocorrencia de erro não tratado em:'));
ELSIF ERROR_CODE=40737 THEN
  MESSAGE(REPLACE(REPLACE(MESSAGE_TEXT,
  'Illegal restricted procedure',
  'Procedimento restrito'),' in ',' ilegal no TRIGGER '));
ELSIF ERROR_CODE=40738 THEN
  MESSAGE(
'FRM 40738:Passagem de argumento nulo não permitido - Informe DBA.');
ELSIF ERROR_CODE=40739 THEN
  MESSAGE(
'FRM 40739:CLEAR_FORM com FULL_ROLLBACK não permitido - Informe DBA.');
ELSIF ERROR_CODE=40808 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'Can''t execute HOST command. Error code',
  'não foi possivel executar comando. Codigo de erro'));
ELSIF ERROR_CODE=40809 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'HOST command had error code',
  'Comando retornou Codigo de erro'));
ELSIF ERROR_CODE=40811 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'Shell command had error code Error code',
  'Comando retornou Codigo de erro'));
ELSIF ERROR_CODE=40814 THEN
  MESSAGE('FRM-40814:Funcao ilegal neste contexto.');
ELSIF ERROR_CODE=41106 THEN
  MESSAGE('FRM-41106:Não é possível inserir inforações sem existir um registro pai.');
ELSIF MESSAGE_CODE=41830 THEN
  MESSAGE('FRM-41830:Lista de valores está vazia.');
ELSIF ERROR_CODE=40815 THEN
  MESSAGE(REPLACE(REPLACE(MESSAGE_TEXT,
  'Variable',
  'Variavel'),
  'does not exist',
  'não existe - Informe DBA'));
ELSIF ERROR_CODE=40816 THEN
  MESSAGE(
'FRM-41816:não foi possivel alocar memoria para novo simbolo.');
ELSIF ERROR_CODE=40817 THEN
  MESSAGE(
'FRM-41817:não foi possivel alocar memoria para novo valor.');
ELSIF ERROR_CODE=40818 THEN
  MESSAGE('FRM-41818:Variavel de sistema não existe - Informe DBA.');
ELSIF ERROR_CODE=40820 THEN
  MESSAGE(
'FRM-41820:não foi possivel alocar memoria para avaliar valor.');
ELSIF ERROR_CODE=40831 THEN
  MESSAGE(REPLACE(MESSAGE_TEXT,
  'Truncation occurred: Value too long for field',
  'Valor muito largo para o campo - Informe DBA'));
ELSIF ERROR_CODE=40903 THEN
  MESSAGE(
'FRM-41903:não foi possivel criar arquivo de saida.');
ELSIF ERROR_CODE=41000 THEN
  MESSAGE('FRM-41000:Acionada Tecla de Funcao indefinida.');
ELSIF ERROR_CODE=41003 THEN
  MESSAGE('FRM-41003:Tecla de Funcao ignorada neste modo.');
ELSIF ERROR_CODE=41004 THEN
  MESSAGE('FRM-41004:Tecla de Funcao não permitida neste modo.');
ELSIF ERROR_CODE=41005 THEN
  MESSAGE('FRM-41005:Tecla de Funcao não implementada.');
ELSIF ERROR_CODE=41006 THEN
  MESSAGE('FRM-41006:Tecla de Funcao não implementada.');
ELSIF ERROR_CODE=41007 THEN
  MESSAGE('FRM-41007:Cursor fora do campo. Tecla de Funcao ignorada.');
ELSIF ERROR_CODE=41008 THEN
  MESSAGE('FRM-41008:Tecla de Funcao não definida.');
ELSIF ERROR_CODE=41009 THEN
  MESSAGE('FRM-41009:Tecla de Funcao não permitida.');
ELSIF ERROR_CODE=41010 THEN
  MESSAGE('FRM-41010:não pode alterar atributo - Informe DBA.');
ELSIF ERROR_CODE=41011 THEN
  MESSAGE('FRM-41011:Atributo indefinido - Informe DBA.');
ELSIF ERROR_CODE=41012 THEN
  MESSAGE(
'FRM-41012:Campo ou variavel de referencia indefinido - Inform DBA.');
ELSIF ERROR_CODE=41049 THEN
  MESSAGE('FRM-41049:Não é possível excluir este registro.');
ELSIF ERROR_CODE=41050 THEN
  MESSAGE('FRM-41050:Não é possível alterar este registro.');
ELSIF ERROR_CODE=41051 THEN
  MESSAGE('FRM-41051:Não é possível inserir registros.');
ELSIF ERROR_CODE=41802 THEN
  MESSAGE(
'FRM-41802:Duplicacao de registro so permitida para registros novos.');
ELSIF ERROR_CODE=41803 THEN
  MESSAGE('FRM-41803:não existe registro para copiar.');
ELSIF ERROR_CODE=50001 THEN
  MESSAGE('FRM-50001:So permite caracteres de a-z, A-Z e espaco.');
ELSIF ERROR_CODE=50002 THEN
  MESSAGE('FRM-50002:O mês deve estar entre 1 e 12.');
ELSIF ERROR_CODE=50003 THEN
  MESSAGE('FRM-50003:O ano deve ser 00-99 ou 1000-4712.');
ELSIF ERROR_CODE=50004 THEN
  MESSAGE('FRM-50004:O dia deve estar entre 1 e ultimo dia do mês.');
ELSIF ERROR_CODE=50006 THEN
  MESSAGE('FRM-50006:So e permido caracteres 0-9 + e -.');
ELSIF ERROR_CODE=50007 THEN
  MESSAGE('FRM-50007:Foi informado muitas decimais.');
ELSIF ERROR_CODE=50009 THEN
  MESSAGE('FRM-50009:Foi informado muitas de um ponto decimal.');
ELSIF ERROR_CODE=50010 THEN
  MESSAGE('FRM-50010:O formato e da forma: [+-]9999999.99.');
ELSIF ERROR_CODE=50012 THEN
  MESSAGE('FRM-50012:Data invalida.');
ELSIF ERROR_CODE=50013 THEN
  MESSAGE('FRM-50013:O sinal de + ou - deve estar na primeira posicao.');
ELSIF ERROR_CODE=50015 THEN
  MESSAGE('FRM-50015:Foi informado muitas de um ponto decimal.');
ELSIF ERROR_CODE=50016 THEN
  MESSAGE('FRM-50016:So e permido caracteres 0-9 + - e E.');
ELSIF ERROR_CODE=50017 THEN
  MESSAGE('FRM-50017:Hora deve estar entre 0 e 23.');
ELSIF ERROR_CODE=50018 THEN
  MESSAGE('FRM-50018:Minutos devem estar entre 0 e 59.');
ELSIF ERROR_CODE=50019 THEN
  MESSAGE('FRM-50019:Segundos devem estar entre 0 e 59.');
ELSIF ERROR_CODE=50021 THEN
  MESSAGE('FRM-50021:Data invalida.');
ELSIF ERROR_CODE=50022 THEN
  MESSAGE('FRM-50022:Formato hora e HH:MM[:SS].');
ELSIF ERROR_CODE=50023 THEN
  MESSAGE('FRM-50023:Data invalida.');
ELSIF ERROR_CODE=50024 THEN
  MESSAGE('FRM-50024:Espacos não permidos nesta posicao.');
ELSIF ERROR_CODE=50025 THEN
  MESSAGE('FRM-50025:Data invalida.');
ELSIF ERROR_CODE=50026 THEN
  MESSAGE('FRM-50026:Data invalida.');
ELSIF INSTR(ERROR_TEXT,'ORA-01031') > 0 THEN
  MESSAGE(
'ORA-01031:Privilegio insuficiente para executar esta operacao.');
ELSIF INSTR(ERROR_TEXT,'DUP-VAL-ON-INDEX') > 0 THEN
  MESSAGE(
'ORA-00001:Chave duplicada no indice - Informe ocorrencia ao DBA.');
ELSIF INSTR(ERROR_TEXT,'CURSOR_ALREADY_OPEN') > 0 THEN
  MESSAGE(
'ORA--06511:Cursor aberto anteriormente - Informe ocorrencia ao DBA.');
ELSIF INSTR(ERROR_TEXT,'INVALID_CURSOR') > 0 THEN
  MESSAGE('ORA-01001:Cursor invalido - Informe ocorrencia ao DBA.');
ELSIF INSTR(ERROR_TEXT,'INVALID_NUMBER') > 0 THEN
  MESSAGE('ORA-01722:Numero invalido - Informe ocorrencia ao DBA.');
ELSIF INSTR(ERROR_TEXT,'NO_DATA_FOUND') > 0 THEN
  MESSAGE('ORA-01403:Nenhum dado encontrado na tabela.');
ELSIF INSTR(ERROR_TEXT,'NOT_LOGGED_ON') > 0 THEN
  MESSAGE('ORA-01012:não esta conectado ao banco de dados.');
ELSIF INSTR(ERROR_TEXT,'TIMEOUT_ON_RESOURCE') > 0 THEN
  MESSAGE('ORA-00051:Recurso ocupado - Informe ocorrencia ao DBA.');
ELSIF INSTR(ERROR_TEXT,'TOO_MANY_ROWS') > 0 THEN
  MESSAGE(
'ORA-01422:Varias registros encontrados - Informe ocorrencia ao DBA.');
ELSIF INSTR(ERROR_TEXT,'TRANSACTION_BACKED_OUT') > 0 THEN
  MESSAGE('ORA-00061:Forcado ROLLBACK, tente operacao mais tarde.');
ELSIF INSTR(ERROR_TEXT,'VALUE_ERROR') > 0 THEN
  MESSAGE(
'ORA-06502:Erro no valor de uma variavel - Informe ocorrencia ao DBA.');
ELSIF INSTR(ERROR_TEXT,'ZERO_DIVIDE') > 0 THEN
  MESSAGE('ORA-01476:Divisao por zero - Informe ocorrencia ao DBA.');
ELSE
  MESSAGE(ERROR_TYPE||'-'||TO_CHAR(ERROR_CODE)||'-'||ERROR_TEXT);
END IF;
donatinho
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qui, 28 Set 2006 1:14 pm
Localização: Belo Horizonte - MG

obrigado!!!


:)
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes