Modo de inserção

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Ju
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 24
Registrado em: Qui, 29 Mai 2008 5:21 pm
Localização: sc

é o seguinte, preciso saber em que modo esta executando o forms para que se ele estiver no modo de insercão incrementar o código, para fazer um nova inserçao, mas ele estiver em modo de pesquisa não incremente. tem alguma função que retorne isso para mim testar.
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

Não to com o Forms aqui, mas dá uma olhada no GET_BLOCK_PROPERTY( bloco, STATUS )... Acho que é isso.
ricardorauber
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 96
Registrado em: Qua, 21 Jun 2006 11:33 pm
Localização: Canoas RS

Assim como o Thomas disse, tem a possibilidade de ver isso com o get_block_property ou então por variável global de sistema:

1) IF get_block_property ('bloco1', STATUS) = 'QUERY' THEN

2) :SYSTEM.BLOCK_STATUS ou :SYSTEM.FORM_STATUS
Ju
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 24
Registrado em: Qui, 29 Mai 2008 5:21 pm
Localização: sc

ok funciona.
mas em que evento do campo eu posso colocar esse teste, para que se estiver no modo de inserçao incremente o código, pois se coloco no pre-text-item ele abre a tela com o campo já incrementado e já no modo de inserçao sendo que preciso deixar que o usuario escolha o modo antes para depois testar e se for o caso de uma inserção incrementar o código.
Ju
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 24
Registrado em: Qui, 29 Mai 2008 5:21 pm
Localização: sc

alguém sabe?
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

eu não consegui entender muito bem o que você está querendo fazer Ju, tente explicar melhor
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

você precisa gerar uma chave (código) quando a tela entrar em modo de inserção, é isso?
Ju
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 24
Registrado em: Qui, 29 Mai 2008 5:21 pm
Localização: sc

Sim é isso mesmo que preciso.
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Ju,

você usa Forms 6i ?
se sim, Já tentou utilizar as triggers de pre-insert, pre-update ? é a forma mais correta de trabalhar da forma que você deseja...

Porém, a única forma de saber se o bloco está sendo alterado / inserido é ter o status de changed
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

são duas situações, se você quiser gerar a chave assim que o usuário entrar em modo de inserção e já deixar o código aparecendo enquanto ele estiver incluindo as informações, isso é mais complicado eu acho (nesse caso o ideal seria usar somente se for com sequence, opção 2), e a maneira mais correta, ou outra forma de fazer, seria gerar a chave somente quando o usuário clicar no 'Gravar' (trigger PRE-INSERT do seu bloco), dae você pode ou fazer um:

Selecionar tudo

--Sem usar sequence
SELECT MAX( NVL( seu_campo_chave,0) ) + 1 
  INTO :bloco.seu_campo_chave
  FROM tabela; 
ou

Selecionar tudo

--Utilizando uma sequence para gerar a chave
SELECT sua_sequence.NEXTVAL
  INTO :bloco.seu_campo_chave
  FROM DUAL;

procurei aqui e não encontrei uma trigger ou forma de fazer quando ele começar a incluir, acho que é o que você tava querendo saber né :( ...
Responder
  • Informação
  • Quem está online

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