IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

[Forms 6i] Capter l'erreur sur Next_Record


Sujet :

Forms Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Par défaut
    Je rajouterais une exception au loop avec un RAISE FORM_TRIGGER_FAILURE; en cas de pb

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    Par défaut
    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.

  4. #4
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Vous souhaitez donc que la boucle continue malgré l'erreur ?

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    Par défaut
    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 !

  6. #6
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Je pencherais plutôt sur le fait que vous ne testez pas le dernier enregistrement.
    j'ajouterais donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Loop
       ...
       Exit when :system.last_record = 'TRUE' ;
       Next_record ;
    End loop ;

  7. #7
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    Essayez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  8. #8
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 53
    Par défaut
    @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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Capter une erreur sur le CreateUserWizard
    Par zooffy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 01/12/2009, 09h05
  2. erreur sur securité menu sous forms 10g
    Par ouatmad dans le forum Forms
    Réponses: 1
    Dernier message: 22/03/2008, 12h38
  3. Erreur sur suppression Record dans SS form
    Par Maxsen dans le forum VBA Access
    Réponses: 4
    Dernier message: 29/02/2008, 21h45
  4. Erreur sur un form
    Par redabadache3 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/12/2007, 15h12
  5. [D7] erreur sur Form.Free
    Par jlf dans le forum Delphi
    Réponses: 9
    Dernier message: 01/05/2007, 12h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo