Bonjour tout le monde,
Je travaille sur forms 6i et je viens de constater un fait très "étrange".
A l'exécution j'ai le contexte et la pile d'appel suivante :
AN_TYPE est un item DISABLED
AN_CODE est un item ENABLED
KEY-EXIT => CLE_EXIT => ... => REVENIR_ETAT_INITIAL => ...
Quand je mets les 2 instructions suivantes dans le trigger précédent KEY-EXIT situé au niveau module :
1 2
| ACTIVE('B2800.AN_TYPE', 'O', 'N', 'O', 'O', 'O');
GO_ITEM('B2800.AN_TYPE'); |
alors tout se déroule parfaitement.
Mais si je déplace ces 2 instructions dans la procedure utilisateur REVENIR_ETAT_INITIAL alors j'obtiens l'erreur :
FRM-41016 Attribut DISPLAYED irrecevable pour l'élément courant B2800.AN_CODE
L'instruction qui provoque cette erreur est invoquée (indirectement) par REVENIR_ETAT_INITIAL :
SET_ITEM_PROPERTY('B2800.AN_CODE', VISIBLE, PROPERTY_FALSE);
Cette erreur intervient car l'item AN_TYPE n'est pas enabled à l'exécution de cette instruction BIEN QU'il soit passé dans les 2 instructions précédentes.
Remarque :
1/ j'ai ajouté une 3ème instruction qui est un appel à la méthode SYNCHRONIZE mais cela ne change rien.
2/ je ne modifie pas les proprétés des items AN_CODE et AN_TYPE entre KEY-EXIT et REVENIR_ETAT_INITIAL
ATTENTION : je ne demande pas à ce que vous débogguiez mon code car je l'ai fait moi-même mais j'aimerais comprendre le pourquoi du comment.
Merci d'avance.
PS : pour info, la procedure ACTIVE effectue une suite de SET_ITEM_PROPERTY avec PROPERTY_TRUE sur les paramètres ENABLED, VISIBLE, etc.
Partager