Controle de alteração de registros no Forms

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
adrianocastelhoni
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qua, 20 Set 2006 2:41 pm
Localização: santo andre-sp

Gostaria de saber se há algum Builtin para mudar o status de um registro,ou seja,so deixar alterar aquele registro diante de uma determinada situacao.

exemplo não deixar alterar um registro quando a fase for 1
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

SIM, você pode bloquear os registros individualmente OU todo o bloco!
Para isso, basta você colocar na TRIGGER WHEN-NEW-RECORD-INSTANCE um controle de bloqueio do registro ou desbloqueio.

Para bloquear os registros individualmente, você usa

Selecionar tudo

SET_ITEM_PROPERTY('bloco.item', ENABLED, PROPERTY_FALSE)
Lembrando que quando se disabilita um item dessa forma, algumas propriedades deles também mudam, por exemplo, o NAVIGATION dele pode continuar FALSE.

É por isso, que eu prefiro criar uma procedure PR_HABILITA, que muda o status de UPDATE_ALLOWED, INSERT_ALLOWED, etc individualmente...

Mais ou menos assim:

Selecionar tudo

PROCEDURE PR_HABILITA( VCAMPO VARCHAR2, VBOOL BOOLEAN) IS
BEGIN

  IF VBOOL 
  THEN  	
    SET_ITEM_PROPERTY( VCAMPO, INSERT_ALLOWED    , PROPERTY_TRUE);
    SET_ITEM_PROPERTY( VCAMPO, UPDATE_ALLOWED    , PROPERTY_TRUE);
    SET_ITEM_PROPERTY( VCAMPO, NAVIGABLE         , PROPERTY_TRUE);
    
    --se for um ITEM, muda visual attribute
    IF GET_ITEM_PROPERTY( VCAMPO, ITEM_TYPE )<>'CHECKBOX'
    THEN SET_ITEM_PROPERTY( VCAMPO, VISUAL_ATTRIBUTE  , 'VA_TEXT_ITEM');
    END IF;
  ELSE
    SET_ITEM_PROPERTY( VCAMPO, INSERT_ALLOWED    , PROPERTY_FALSE);
    SET_ITEM_PROPERTY( VCAMPO, UPDATE_ALLOWED    , PROPERTY_FALSE);
    SET_ITEM_PROPERTY( VCAMPO, NAVIGABLE         , PROPERTY_FALSE);
    
    --se for um ITEM, muda visual attribute
    --seta o campo com ZERO !
    IF GET_ITEM_PROPERTY( VCAMPO, ITEM_TYPE )<>'CHECKBOX'
    THEN SET_ITEM_PROPERTY( VCAMPO, VISUAL_ATTRIBUTE  , 'VA_DISPLAY_ITEM');
    END IF;
    
  END IF;  	
END;
Os visual attribute mudam a cor do fundo do campo, pra parecer que ele está desabilitado!

Também é possível bloquear TODO o bloco, com

Selecionar tudo

SET_BLOCK_PROPERTY('seu_bloco', UPDATE_ALLOWED, PROPERTY_FALSE);
Qualquer dúvida, dá um toque.
Responder
  • Informação
  • Quem está online

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