Status de Bloco??? Forms

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
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

pessoal

como eu faço pra saber o status de um bloco?
tentei

Selecionar tudo

:SYSTEM.BLOCK_STATUS = 'DELETE'

mas pelo help parece que só existem:
Change, New e Query!

existe algum comando para saber se está em modo de exclusão?


valeu
Deathão
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 57
Registrado em: Qui, 16 Jun 2005 11:31 am
Localização: Assis
Contato:
--
Júnior

o que você precisa fazer??

tem uma trigger de bloco que se chama PRE-DELETE ela é disparada sempre quando um registro é deletado vê se te ajuda


abraço!!
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Quanto a STATUS você pode fazer de algumas formas, dependendo da necessidade.

Seguem abaixo alguns exemplos que eu utilizo bastante:


PRA PEGAR O STATUS DO BLOCO ATUAL:

Selecionar tudo

  
  IF :System.Block_Status = 'CHANGED'  THEN 
      Commit_Form; 
  END IF; 


Os STATUS DA VARIÁVEL :SYSTEM.BLOCK_STATUS PODEM SER OS SEGUINTES:

Selecionar tudo

    CHANGED	Indica que o bloco contém ao menos um regisro alterado.
    NEW	    Indica que o bloco contém apenas registros novos.
    QUERY	  Indica que o bloco contém apenas registros válidos que vieram de uma consulta ao Banco.


PRA PEGAR O STATUS DO REGISTRO ATUAL:

Selecionar tudo


  IF :System.Record_Status IN ('CHANGED', 'INSERT') THEN
	   Commit_Form;
  END IF;



Os STATUS DA VARIÁVEL :SYSTEM.RECORD_STATUS PODEM SER OS SEGUINTES:

Selecionar tudo

    CHANGED	Indica que o registro consta como alterado.
    NEW	    Indica que o registro consta como novo.
    QUERY	  Indica que o registro consta como válido que veio de uma consulta ao Banco.
    INSERT  Indica que o registro consta como alterado e ainda não existe no Banco. 
PRA PEGAR O O NÚMERO DO REGISTRO ATUAL:

Selecionar tudo

  v_registro := Get_Block_Property('SEU_BLOCK', CURRENT_RECORD);


PRA PEGAR O STATUS DO REGISTRO ATUAL DE UM DETERMINADO BLOCO:

Selecionar tudo

   v_status := GET_RECORD_PROPERTY(v_registro,'SEU_BLOCK',STATUS);


Em GET_RECORD_PROPERTY os STATUS podem ser os seguintes:

Selecionar tudo

    NEW     se o registro está marcado como novo e não existem registros modificados no bloco;
    CHANGED se o registro está marcado como modificado.
    QUERY   se o registro veio de uma consulta ao Banco.
    INSERT  se o registro está marcado como uma inserção.

PRA PEGAR O STATUS DO PROGRAMA

Selecionar tudo

   IF :SYSTEM.MODE <> 'NORMAL' THEN
   	  COMMIT_FORM;
   END IF;


A variável :system.mode pode ter os seguintes STATUS:

Selecionar tudo

    NORMAL	    Indica que o FORM está no modo normal de processamento.
    ENTER-QUERY	Indica que o FORM está no modo Enter-Query.
    QUERY	      Indica que o FORM está no modo Consultando, significa que a consulta está sendo executada.

:-o
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

opa, aí ficou jóia!

valeu toad


já está salvo aqui
Responder
  • Informação
  • Quem está online

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