Forum APEX - Développement Oracle Application Express

Le site des développeurs francophones APEX - Oracle Application Express

Vous n'êtes pas identifié(e).

Annonce

Bienvenue sur le forum Oracle APEX

S'il s'agit de votre première visite, nous vous invitons à consulter la FAQ en cliquant sur le lien ci-dessous. Vous pouvez poster ici toutes vos questions sur l'installation, le développement (composants clients et serveurs), l'administration des instances Oracle APEX. Par ailleurs, ce forum diffuse les annonces et actualités relatives à Oracle APEX.

Oracle APEX 4.1

Oracle APEX 4.1 est disponible depuis le 24 août 2011.

Oracle APEX 4.0

Oracle APEX 4.0 est disponible depuis le 23 juin 2010. Il existe 2 distributions, une distribution en langue anglaise uniquement et une distribution multilingue.

#1 2011-02-03 20:12:11

orapex
Membre
Inscription : 2010-11-27
Messages : 4

Validations

Bonjour,

J'ai un block maitre blk1 et block détail blk2
Blk1 : id1, cola1, cola2
Blk2 : id2, colb1, colb2, id1
Cola2 =montant total à payer (doit être saisie).
Colb2 = les paiements par date.
Je veux faire une validation :
La somme des paiements(colb2) ne doit pas dépasser le montant total à payer.
J'ai utilsé la validations mais ça ne marche pas.
Merci.

Hors ligne

#2 2011-02-08 18:40:26

orapex
Membre
Inscription : 2010-11-27
Messages : 4

Re : Validations

Bonjour,
je régler le problème:
j'ai crée une procedure au niveau base, puis j'ai fais apple a cette procedure dans la page processing, niveau processes.
la méthode:
MA_PROCEDURE(:P1_ID);

Hors ligne

#3 2011-03-29 17:31:09

gfolou
Membre
Inscription : 2011-03-23
Messages : 4

Re : Validations

Bonjour
Tu peux ecrire une validation de niveau page, avec une fonction renvoyant une erreur, et utiliser le tableau apex_application.g_fn, ou n est le numero de la colonne dans le tableau detail. Ainsi, tu fais une boucle sur le tableau en sommant les elements et tu compares le resultat final a l'element du maitre.
Par exemple:

Declare
  v_message varchar2(4000);
  v_mont_ht number;
Begin
   for i in 1..apex_application.g_f08.count loop --cela concerne la huitieme colonne du tableau
      v_mont_ht := nvl(v_mont_ht,0) + nvl(apex_application.g_f08(i),0);--Somme des montants saisis dans le tableau a la 8eme colonne
   end loop;
 
   if nvl(v_mont_ht,0)!=nvl(P2_MONT_HT)  then --P2_MONT_HT est le montant a comparer de la partie du maitre
       v_message:='Les montants sont differents';
   end if;

   return v_message;

End;

Dernière modification par gfolou (2011-03-29 17:32:35)

Hors ligne

Pied de page des forums