Créer un déclecheur POST-QUERY
au niveau du bloc de données avec le code PL/SQL suivant:
SELECT nom INTO :BIB_EMPRUNT.MEMBRE_NOM FROM BIB_MEMBRE WHERE NUMERO = :BIB_EMPRUNT.MEMBRE; SELECT prenom INTO :BIB_EMPRUNT.MEMBRE_PRENOM FROM BIB_MEMBRE WHERE NUMERO = :BIB_EMPRUNT.MEMBRE; SELECT titre INTO :BIB_EMPRUNT.TITRE FROM BIB_DOCUMENT WHERE ISBN = :BIB_EMPRUNT.ISBN;
Créer un déclencheur WHEN-VALIDATE-ITEM
au niveau élément ISBN
:
SELECT titre INTO :BIB_EMPRUNT.TITRE FROM BIB_DOCUMENT WHERE ISBN = :BIB_EMPRUNT.ISBN;
Même principe avec l'élément MEMBRE
:
BEGIN SELECT nom INTO :BIB_EMPRUNT.MEMBRE_NOM FROM BIB_MEMBRE WHERE NUMERO = :BIB_EMPRUNT.MEMBRE; SELECT prenom INTO :BIB_EMPRUNT.MEMBRE_PRENOM FROM BIB_MEMBRE WHERE NUMERO = :BIB_EMPRUNT.MEMBRE; END;
Créer un déclencheur WHEN-WINDOW-ACTIVATED
au niveau du formulaire avec EXECUTE_QUERY;
. Il faut noter que l'ordre des blocs de données est important puisque le bloc de données maître doit précéder le bloc de données détail.
DECLARE n NUMBER; une_exception EXCEPTION; BEGIN SELECT COUNT(*) INTO n FROM BIB_EMPRUNT WHERE MEMBRE = :BIB_EMPRUNT.MEMBRE; IF n>5 THEN Message('Le nombre d''emprunts de ce membre a atteint sa limite.'); RAISE une_exception; END IF; END;
Créer un groupe d'enregistrement avec la requête :
SELECT numero FROM bib_exemplaire WHERE numero AND NOT IN (SELECT exemplaire FROM bib_emprunt WHERE ISBN = :BIB_EMPRUNT.ISBN)
Créer une LOV sur ce groupe d'enregistrement. Spécifier cette LOV pour l'élément EXEMPLAIRE
.
Créer un déclencheur WHEN-VAIDATE-ITEM
au niveau d'un élément avec le code :
:BIB_EMPRUNT.RENDULE := SYSDATE+30;
Ne pas oublier d'aller dans les propriétés de l'élément et modifier la valeur Mettre à jour seulement si NULL à Oui.