Popular bloco na abertura do form

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
douglasmattos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 19 Mar 2012 2:28 pm

Galera, Bom dia!

Desenvolvi um tela no forms o no evento WHEN-NEW-FORM-INSTANCE coloquei o seguinte código:

Selecionar tudo

DECLARE

CURSOR C_PROCEDIMENTO IS

    SELECT CD_PROCEDIMENTO
           ,DS_PROCEDIMENTO
      FROM DBAMV.TI_PROCEDIMENTO_AIH;   

BEGIN

	FOR CE IN C_PROCEDIMENTO LOOP
	GO_BLOCK('TI_PROCEDIMENTO_AIH');
	:TI_PROCEDIMENTO_AIH.CD_PROCEDIMENTO := CE.CD_PROCEDIMENTO;
	:TI_PROCEDIMENTO_AIH.DS_PROCEDIMENTO := CE.DS_PROCEDIMENTO;
	NEXT_RECORD;

	END LOOP;
	
	FIRST_RECORD;
	
END;
Quando eu inicio a tela ela já vem preenchida, ate ai tudo bem....Agora se eu aperto F7 para pesquisar aparece uma tela perguntando se eu desejo salvar as alterações.
Pelo que vi o forms esta entendendo que eu inseri esses dados e precisa salvar.

A dúvida é: Como eu faço para iniciar a tela com meu bloco de dados já preenchido com as informações do banco e se eu pressionar F7 ele entrar no modo de pesquisa normalmente?

Desde já agradeço pela ajuda!!
tora34
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 108
Registrado em: Qua, 12 Nov 2008 6:01 pm
Localização: Campo Mourão PR
Renato Pasquini
Oracle Developer

Bom dia Douglas,
Você está preenchendo automaticamente o primeiro registro do seu bloco (acredito que seja do tipo single row) e quer que ao pressionar o F7 ele entre em modo de pesquisa sem apresentar a tela para salvar.
Esta tela será apenas de consulta?
Será permitido incluir registros? Pois como o sistema irá identificar que você está inserindo registros manualmente...
Mas para você consultar sem que a tela que confirmação seja apresentada, basta criar a trigger no bloco KEY-ENTQRY e nela colocar o seguinte código:

Selecionar tudo

clearblock(no_validate); enter_query;
douglasmattos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 19 Mar 2012 2:28 pm

Boa tarde TORA34...

Então esse bloco vai permitir pesquisar, atualizar, excluir e inserir um registro.
Aparece sempre que aperto F7, pois ele entende que o registro deve ser salvo.

Onde vejo se o bloco é do tipo Single Row?

Vou tentar utilizar sua sugestão...
douglasmattos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 19 Mar 2012 2:28 pm

Funcionou!!!!!!!

Show de bola, valeu pela dica....
douglasmattos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 19 Mar 2012 2:28 pm

Agora apresentou outro problema. quando abro o forms ele já vem preenchido...vem um total de 200 linhas...
se eu clico para adicionar uma linha e depois clico em salvar ele salva todos os registros novamente...
sendo assim duplica...
tora34
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 108
Registrado em: Qua, 12 Nov 2008 6:01 pm
Localização: Campo Mourão PR
Renato Pasquini
Oracle Developer

Bom dia,
mas você criou um cursor para preencher 200 registros automaticamente?
--
E se você executar uma consulta diretamente no bloco ao invés de preencher?
Se eu entendi o seu problema, você criou um cursor na inicialização do form que consulta a TABELA_A e popula os o bloco que referencia a TABELA_A.
é isto? se sim, comente a parte que popula os registros e coloque o seguinte código:

Selecionar tudo

go_block(<nome_do_bloco); execute_query(no_validate);
douglasmattos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 19 Mar 2012 2:28 pm

Tora34

Fiz o que você falou e ficou perfeito, agora eu entro no forms, o campo esta populado e se eu clico para pesquisar ele não pede mais para salvar...

Agora entendi o funcionamento, eu estava populando o campo e consequentemente ele pedia para salvar.

valeu pela ajuda!!!!!
Responder
  • Informação
  • Quem está online

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