Pessoal,
Bom dia.
Estou desenvolvendo um form onde existe um código na trigger WHEN-NEW-BLOCK-INSTANCE a nivel de bloco. O código dessa trigger deverá ser executado em um outro momento. Para não ter que reescrever esse código novamente, o que pergunto é: Há uma maneira de SÓ chamar a trigger em um outro lugar e verificar se a execução dela falhou ou não??
Form 6i
Oracle Applications 11.5.10
Banco Oracle 10.1.0.5.0
Genivaldo
Chamar trigger de outro lugar
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother, tudo bem?
Tem como fazer sim.
Segue um exemplo abaixo, da Buit-In EXECUTE_TRIGGER, este exemplo peguei do próprio Help do Forms.
Dá uma olhada nele e, faça a adaptação para o teu caso.
Qualquer dúvida, manda ai.
Tem como fazer sim.
Segue um exemplo abaixo, da Buit-In EXECUTE_TRIGGER, este exemplo peguei do próprio Help do Forms.
Dá uma olhada nele e, faça a adaptação para o teu caso.
/*
** Built-in: EXECUTE_TRIGGER
** Example: Execute a trigger dynamically from the PL/SQL
** code of a Menu item, depending on a menu
** checkbox.
*/
DECLARE
Cur_Setting VARCHAR2(5);
Advanced_Mode BOOLEAN;
BEGIN
/*
** Check whether the 'Advanced' menu item under the
** 'Preferences' submenu is checked on or not.
*/
Cur_Setting := Get_Menu_Item_Property
('Preferences.Advanced',CHECKED);
/*
** If it is checked on, then Advanced_Mode is boolean
** true.
*/
Advanced_Mode := (Cur_Setting = 'TRUE');
/*
** Run the appropriate trigger from the underlying form
**
*/
IF Advanced_Mode THEN
Execute_Trigger('Launch_Advanced_Help');
ELSE
Execute_Trigger('Launch_Beginner_Help');
END IF;
END;
-
- Rank: Programador Júnior
- Mensagens: 21
- Registrado em: Qua, 27 Jul 2005 7:39 am
- Localização: Maracaí
- Contato:
Trevisolli,
Boa tarde.
Eu tentei implementar aqui mas não deu certo. Talvez se eu disser do que preciso você pode me dar uma outra idéia. Na verdade eu tenho um form com dois blocos, sendo que no primeiro existirá um campo que vai determinar a quantidade de registros que o usuário tem que inserir no segundo bloco. Ou seja, se nesse do 1º bloco estiver 5, então o 2º bloco deverá ter 5 registros. Só que não estou conseguindo controlar essa inserção devido a outros eventos, como delete e limpeza (quando ele está inserindo mas só limpa o registro).
você poderia me dar um help??
Grato,
Genivaldo
Boa tarde.
Eu tentei implementar aqui mas não deu certo. Talvez se eu disser do que preciso você pode me dar uma outra idéia. Na verdade eu tenho um form com dois blocos, sendo que no primeiro existirá um campo que vai determinar a quantidade de registros que o usuário tem que inserir no segundo bloco. Ou seja, se nesse do 1º bloco estiver 5, então o 2º bloco deverá ter 5 registros. Só que não estou conseguindo controlar essa inserção devido a outros eventos, como delete e limpeza (quando ele está inserindo mas só limpa o registro).
você poderia me dar um help??
Grato,
Genivaldo
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother, não sei se entendi direito...
Mas, vou tentar...
Seguinte, no bloco 01, você tem um campo quantidade.
Quando você digita 05 neste campo, vai para um outro bloco que, deverá, obrigatóriamente, ter 05 linhas, contendo valores de um determinado select?
Seria isso?
Daí ocorre que, não está populando corretamente?
Caso seja isso, o que ocorre, tela em branco?
Mas, vou tentar...
Seguinte, no bloco 01, você tem um campo quantidade.
Quando você digita 05 neste campo, vai para um outro bloco que, deverá, obrigatóriamente, ter 05 linhas, contendo valores de um determinado select?
Seria isso?
Daí ocorre que, não está populando corretamente?
Caso seja isso, o que ocorre, tela em branco?
-
- Rank: Programador Júnior
- Mensagens: 21
- Registrado em: Qua, 27 Jul 2005 7:39 am
- Localização: Maracaí
- Contato:
Colega,
É quase isso. Realmente no 1º bloco um campo chamado "quantidade" irá determinar o nº de registros do 2º bloco. Só que os registros do 2º bloco serão inseridos manualmente, por um usuário. Ele não pode inserir mais e nem menos do que estiver colocado nesse campo "quantidade". Se nele tiver o valor 5, então o user deverá inserir 5 registros no bloco 2. O que acontece é que não estou conseguindo controlar alguns eventos. Por exemplo: Imagine que o cara colocou 5 registros e salvou. beleza! Só que depois ele abre essa mesma tela e exclui uma linha. Como pegar o que sobrou e confrontar com o campo "quantidade"?? Pois nesse caso ele não pode fazer isso.
Genivaldo
É quase isso. Realmente no 1º bloco um campo chamado "quantidade" irá determinar o nº de registros do 2º bloco. Só que os registros do 2º bloco serão inseridos manualmente, por um usuário. Ele não pode inserir mais e nem menos do que estiver colocado nesse campo "quantidade". Se nele tiver o valor 5, então o user deverá inserir 5 registros no bloco 2. O que acontece é que não estou conseguindo controlar alguns eventos. Por exemplo: Imagine que o cara colocou 5 registros e salvou. beleza! Só que depois ele abre essa mesma tela e exclui uma linha. Como pegar o que sobrou e confrontar com o campo "quantidade"?? Pois nesse caso ele não pode fazer isso.
Genivaldo
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother, no caso de ele digitar 05 no primeiro bloco, você pode guardar este valor numa variável global.
Quando ele for no segundo bloco, excluir uma linha, no PRE-COMMIT, por exemplo, você poderia fazer um loop no teu bloco, contar as linhas e comparar com essa variável global.
Se forem diferentes os valores, você pode dar um RAISE neste ponto.
Creio que não terá muito problema em realizar este procedimento.
Qualquer dúvida, manda ai.
Quando ele for no segundo bloco, excluir uma linha, no PRE-COMMIT, por exemplo, você poderia fazer um loop no teu bloco, contar as linhas e comparar com essa variável global.
Se forem diferentes os valores, você pode dar um RAISE neste ponto.
Creio que não terá muito problema em realizar este procedimento.
Qualquer dúvida, manda ai.
-
- Rank: Programador Júnior
- Mensagens: 21
- Registrado em: Qua, 27 Jul 2005 7:39 am
- Localização: Maracaí
- Contato:
Trevisolli ,
Estou realizando uns testes aqui e, aparentemente, está funcionando com base em sua dica.
Aproveitando a oportunidade e sem querer abusar, como eu faria para instalar o Form/Reports em minha casa e desenvolver algo para ser executado lá? Tenho o Oracle Express Edition 10g. Os desenvolvimentos que realizo são na empresa onde trabalho. Eu quero colocar essas ferramentas em casa para poder aprimorar. Minha ultima experiência com essa tentativa não foi nada legal, pois não consegui conectar essas ferramentas no banco.
Existe algum material do tipo aqui no forum ou você pode me orientar??
Abraços,
Genivaldo
Estou realizando uns testes aqui e, aparentemente, está funcionando com base em sua dica.
Aproveitando a oportunidade e sem querer abusar, como eu faria para instalar o Form/Reports em minha casa e desenvolver algo para ser executado lá? Tenho o Oracle Express Edition 10g. Os desenvolvimentos que realizo são na empresa onde trabalho. Eu quero colocar essas ferramentas em casa para poder aprimorar. Minha ultima experiência com essa tentativa não foi nada legal, pois não consegui conectar essas ferramentas no banco.
Existe algum material do tipo aqui no forum ou você pode me orientar??
Abraços,
Genivaldo
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Seguinte, uma dica de quem também não entende muito de instalações.. rs...
Para se instalar forms e reports, costumo utilizar o método NEXT/NEXT e, a única coisa que me orientaram, que não deve ser feito é, instalar as ferramentas de desenvolvimentos na mesma HOME do banco.
Por exemplo, se teu banco em casa, está instalado em C:\Oracle\..., minha dica seria instalar as ferramentas de desenvolvimento em C:\Oradev.
Do mais, sem crise pra se instalar.
Mas, qualquer dúvida, manda ai que a gente abre um tópico, para este caso em específico, ok?
Creio que nessa parte, se for o caso da tua necessidade, os DBAs aqui podem te auxiliar melhor.
Seguinte, uma dica de quem também não entende muito de instalações.. rs...
Para se instalar forms e reports, costumo utilizar o método NEXT/NEXT e, a única coisa que me orientaram, que não deve ser feito é, instalar as ferramentas de desenvolvimentos na mesma HOME do banco.
Por exemplo, se teu banco em casa, está instalado em C:\Oracle\..., minha dica seria instalar as ferramentas de desenvolvimento em C:\Oradev.
Do mais, sem crise pra se instalar.
Mas, qualquer dúvida, manda ai que a gente abre um tópico, para este caso em específico, ok?
Creio que nessa parte, se for o caso da tua necessidade, os DBAs aqui podem te auxiliar melhor.
- dr_gori
- 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ê já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Uma forma fácil de verificar o número de linhas do segundo bloco é fazendo assim:
* Quando o usuário for validar o primeiro bloco, dê um POST. (ou seja, todas informações vão para as tabelas SEM ser comitadas).
* Depois, faça um SELECT COUNT referente a tabela do bloco2.
Se não fechar, dá a mensagem e o RAISE e manda o usuário fazer direito!
Acho que outra forma é colocar um campo calculado que CONTA o número de linhas... Dai você compara esse campo calculado com o campo onde o usuário informa a qtd.
Deve haver milhares de outras formas pra se fazer isso... O jeito é testar alguma que sirva pra você!
* Quando o usuário for validar o primeiro bloco, dê um POST. (ou seja, todas informações vão para as tabelas SEM ser comitadas).
* Depois, faça um SELECT COUNT referente a tabela do bloco2.
Se não fechar, dá a mensagem e o RAISE e manda o usuário fazer direito!
Acho que outra forma é colocar um campo calculado que CONTA o número de linhas... Dai você compara esse campo calculado com o campo onde o usuário informa a qtd.
Deve haver milhares de outras formas pra se fazer isso... O jeito é testar alguma que sirva pra você!
-
- Rank: Programador Júnior
- Mensagens: 21
- Registrado em: Qua, 27 Jul 2005 7:39 am
- Localização: Maracaí
- Contato:
está, achei um exemplo do help e form e estou tentando implementar. O problema é que o POST é um procedimento restrito. Agora coloquei na trigger KEY-COMMIT a nivel de FORM. Estou testando. Já retorno se tive sucesso ou não.
Grato,
Genivaldo
Grato,
Genivaldo
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes