Le site des développeurs francophones APEX - Oracle Application Express
Vous n'êtes pas identifié(e).
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.
Pages :: 1
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
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
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
Pages :: 1