paginas de guias

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

POSSUO UMA BLOCO BASE TABLE,ONDE ALGUNS ITENS APARECEM EM PAGINAS DE GUIAS
DIFERENTES E QUERO QUE quando CRIAR NAQUELA PAGINA DE GUIA OS ITENS QUE ESTAO
LOCALIZADOS NA PAGINA DE GUIA TORNEM-SE OBRIGATORIOS,USANDO POR EXEMPLO A
BUILT-IN SET_ITEM_PROPERTY(REQUIRED=TRUE),já TENTEI USAR EM VARIAS TRIGGERS
COMO WHEN-TAB-PAGE-CHANGED,WHEN-NEW-RECORD-INSTANCE,WHEN-NEW-BLOCK-INSTANCE
E não FUNCIONA,POIS ELE DEIXA SALVAR SEM PREENCHER TODOS OS ITENS NAQUELA
PAGINA DE GUIA

EXEMPLO
FASE1 FASE2 FASE3 FASE4 FASE......

APENAS A FASE 2 SEUS ITENS PERTENCEM A OUTRO BLOCO E já AS OUTRAS PERTENCEM AO
MESMO BLOCO E COMO FALEI SEUS ITENS DESTE APARECEM EM GUIAS DIFERENTES,

ESTOU UTILIZANDO A SEGUINTE LOGICA NAS TRIGGERS QUE CITEI ACIMA



DECLARE
V_NM_TAB_PAGE VARCHAR2(10);

BEGIN


V_NM_TAB_PAGE := :SYSTEM.TAB_NEW_PAGE;

IF V_NM_TAB_PAGE = 'FASE3' THEN
SET_ITEM_PROPERTY('DBK_CQ1400D.STT_SITUACAO_F3',REQUIRED,PROPERTY_TRUE);
SET_ITEM_PROPERTY('DBK_CQ1400D.DSC_AN_CRITICA',REQUIRED,PROPERTY_TRUE);
SET_ITEM_PROPERTY('DBK_CQ1400D.NRO_MESES_AC_F3',REQUIRED,PROPERTY_TRUE);
ELSE
SET_ITEM_PROPERTY('DBK_CQ1400D.STT_SITUACAO_F3',REQUIRED,PROPERTY_FALSE);
SET_ITEM_PROPERTY('DBK_CQ1400D.DSC_AN_CRITICA',REQUIRED,PROPERTY_FALSE);
SET_ITEM_PROPERTY('DBK_CQ1400D.NRO_MESES_AC_F3',REQUIRED,PROPERTY_FALSE);
END IF;
END;
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

Outra forma de fazer isso é testar as consistências numa trigger WHEN-VALIDATE_RECORD. Nela você testa os campos que você quer manualmente e dá uma mensagem de erro caso algum item não foi preenchido. (ou apenas dá um RAISE FORM_TRIGGER_FAILURE, daí o usuário não conseguirá nem SALVAR nem sair do registro sem que tenha antes informado os campos.)

Algo assim na WHEN-VALIDATE-RECORD:

Selecionar tudo

IF :BLOCO.CAMPO1 IS NULL
THEN PR_MENSAGEM('O campo 1 é obrigatório');
ELSIF :BLOCO.CAMPO2 IS NULL
THEN PR_MENSAGEM('O campo 2 é obrigatório');
END IF;
Lembrando que essa PR_MENSAGEM deve disparar o RAISE mencionado acima.
Responder
  • Informação
  • Quem está online

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