Bonjour à tous,
Dans un champ table rempli en mémoire, j'ai une colonne de type interrupteur comme le montre l'image ci-dessous :
L'idée, lorsqu'un click est réalisé sur le champ 'sélection d'une ligne' est d'automatiquement donner le focus à la colonne suivante de la même ligne afin que l'utilisateur puisse entrer une valeur. Le but de cette opération est d'attribuer des cours à une classe. De fait, si l'utilisateur décide d'attribuer un cours à une classe, j'initialise le nombre de périodes à 1 (il faut dans tous les cas au moins 1 période d'enseignement). Suite à cela, j'aimerais me positionner sur cette valeur et donner ainsi la possibilité à l'utilisateur de modifier cette valeur.
Pour info, avant que je tente de donner le focus à cette colonne, l'utilisateur entrait une valeur mais c'était l'entête de la colonne qui avait le focus et l'information était donc saisie au mauvais endroit.
J'ai donc ajouté un morceau de code à l'événement 'A_Chaque_modification_de_Col_Selection'
1 2 3 4 5 6 7 8
| SI COL_Selection = 1 ALORS
// si l'utilisateur sélectionne cette matière
COL_Périodes = 1
DonneFocusEtRetourUtilisateur(TABLE_REQ_MatieresParTypeEnseignement.COL_Périodes)
//DonneFocus(TABLE_REQ_MatieresParTypeEnseignement.COL_Périodes)
SINON
COL_Périodes = 0
FIN |
Le résultat ne correspond pas à mes attentes ; j'ai l'impression que l'affichage ne suit pas le code. voici ce que j'obtiens :
Le focus est bien passé à la colonne suivante (Périodes) mais ma colonne interrupteur n'affiche aucune sélection et mon champ Périodes est resté à la valeur 0
Si je mets un point d'arrêt dans mon code au niveau du test et que j'effectuer les opérations 'tranquillement' une après l'autre, j'ai un comportement des plus étranges que voici :
Les deux premières opérations effectuent bien ce que je souhaite :
Au click sur l'interrupteur, ce dernier est bien sélectionné
Ensuite la valeur 1 est bien attribuée dans la colonne périodes
Mais lorsque je souhaite que cette même colonne reçoive le focus, tout est effacé !?!
Est-ce quelqu'un aurait une idée pour contourner ce problème ?
Merci à tous

Partager