Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/04/2006, 16h10   #1
Futur Membre du Club
 
Inscription : octobre 2005
Messages : 53
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 53
Points : 19
Points : 19
Par défaut [Forms 6i] Capter l'erreur sur Next_Record

Bonjour,

Je travaille sur Forms 6i et Oracle 8.1.5.
Je rencontre un petit problème sous Forms.

Cheminement amenant mon problème :

1) Dans mon écran, mon curseur est placé dans un champ
2) Je saisis une valeur et j'enregistre
3) A l'appui du bouton "enregistrer", une Unité de Programme est exécutée pour vérifier la validité de tous les Record Détails. Ceci est effectué avec

Code :
1
2
3
4
5
First Record
LOOP
   ......
   Next_Record;
END LOOP;
4) A l'exécution du Next_Record, le WHEN-VALIDATE-ITEM du champ est lui même exécuté, mais sort en erreur ! Du coup, le Next_Record ne s'exécute pas et la boucle LOOP ne se termine pas.

J'ai rajouté le test
Code :
IF NOT Forms_Success THEN
juste après, mais ça ne change rien, comme si il ne détectait pas que le Forms_Success n'avait pas fonctionné.

Comment dois-je faire ?
Y a-t-il un myen de détecter cette erreur ?

Merci par avance !
Veve44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 17h12   #2
Futur Membre du Club
 
Inscription : avril 2003
Messages : 28
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 28
Points : 17
Points : 17
Je rajouterais une exception au loop avec un RAISE FORM_TRIGGER_FAILURE; en cas de pb
Karim.1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 17h20   #3
Futur Membre du Club
 
Inscription : octobre 2005
Messages : 53
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 53
Points : 19
Points : 19
Il y a déjà un RAISE FORM_TRIGGER_FAILURE dans le WHEN-VALIDATE-ERREUR.
Du coup, je pensais pouvoir le capter avec IF NOT FORM_SUCCESS. Mais ce n'est pas le cas....
Pour Reports, il ne semble pas y avoir de problème.
Veve44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 18h09   #4
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 530
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 530
Points : 6 460
Points : 6 460
Vous souhaitez donc que la boucle continue malgré l'erreur ?
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 18h18   #5
Futur Membre du Club
 
Inscription : octobre 2005
Messages : 53
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 53
Points : 19
Points : 19
Non, je souhaite sortir de la boucle si le Next_Record entraîne une erreur.
Parce que mon problème vient de là : comme le Next_Record ne s'exécute pas car le WHEN-VALIDATE-ITEM sort en erreur, je reste sur le même enregistrement et donc la boucle tourne... Indéfiniment !
Veve44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 18h25   #6
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 530
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 530
Points : 6 460
Points : 6 460
Je pencherais plutôt sur le fait que vous ne testez pas le dernier enregistrement.
j'ajouterais donc:

Code :
1
2
3
4
5
6
 
Loop
   ...
   Exit when :system.last_record = 'TRUE' ;
   Next_record ;
End loop ;
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 18h55   #7
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Essayez :
Code :
1
2
3
4
5
6
7
8
 
Loop
   ...
   Next_record ;
   IF get_item_property (:system.cursor_item, item_is_valid) = 'FALSE' then
      exit;
   end IF;
End loop
Nb : je ne suis pas sûr qu'il donne le focus à l'item en erreur dans ce cas vous devez mettre le nom de l'item en dur.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2006, 12h08   #8
Futur Membre du Club
 
Inscription : octobre 2005
Messages : 53
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 53
Points : 19
Points : 19
@SheikYerbouti : Si, si, il y avait un test sur le dernier enregistrement

@plaineR : j'ai testé et ça fonctionne à merveille ! Ouf, un problème de résolu.

Merci à tous les deux pour votre aide.
Veve44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h09.


 
 
 
 
Partenaires

Hébergement Web