|
savoir dans quelle colonne on a cliqué |
Débuté par angelia, 13 aoû. 2004 13:52 - 5 réponses |
| |
| | | |
|
| |
Posté le 13 août 2004 - 13:52 |
Bonjour, j'ai crée une table mémoire avec 3 colonnes et 4 lignes. Elle est en saisie directe. Comment savoir quand l'utilisateur clique dans une cellule, dans quelle cellule il clique à savoir quelle ligne et quelle colonne pour pouvoir par exemple mettre la couleur de fond différente des autres. Pour connaître la ligne en cours, il n'y a pas de problème mais par contre pour connaître la colonne concernée ?!!!!! je ne vois pas. Merci de votre aide et bon dev |
| |
| |
| | | |
|
| | |
| |
Posté le 13 août 2004 - 12:37 |
Salut !
On 13-Aug-2004, "steph" <angelia@free.fr> wrote:
Bonjour, j'ai crée une table mémoire avec 3 colonnes et 4 lignes. Elle est en saisie directe. Comment savoir quand l'utilisateur clique dans une cellule, dans quelle cellule il clique à savoir quelle ligne et quelle colonne pour pouvoir par exemple mettre la couleur de fond différente des autres. Pour connaître la ligne en cours, il n'y a pas de problème mais par contre pour connaître la colonne concernée ?!!!!! je ne vois pas. Merci de votre aide et bon dev
La fonction TableInfoXY() est ton amie ... voci un petit exemple : // Ce code est mis dans l'événement survol de la table1 et permet de voir le libellé de la colonne survolée et son contenu dans la bulle ... // sélection sur la table TABLE1 x = PoidsFaible(CurseurPos()) y = PoidsFort(CurseurPos()) nligne = TableInfoXY(Table1, tiNumLigne + tiOrigineEcran, x, y) nCol = TableInfoXY(Table1, tiNumColonne + tiOrigineEcran, x, y) SI nligne > 1 ET nCol > 0 ALORS Table1..Bulle = Table1[nligne,nCol]..Libellé + " = " + Table1[nligne,nCol] FIN
En adaptant un tout petit peu, en étant dans une cellule, tu peut retrouver ton nom de colonne et avec les indirections, tu fais ce que tu veux ...
Bien à toi ...
-- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477 |
| |
| |
| | | |
|
| | |
| |
Posté le 13 août 2004 - 15:34 |
Ne serait-ce pas plus simple d'utiliser ChampEnCours() ? |
| |
| |
| | | |
|
| | |
| |
Posté le 13 août 2004 - 17:40 |
Salut !
On 13-Aug-2004, "steph" <angelia@free.fr> wrote:
Merci pour ton code, cela marche mais j'ai encore un petit pb :
Voici mon code sur le survol de la souris :
x,y, nligne,ncol sont des entiers
x=PoidsFaible(CurseurPos()) y=PoidsFort(CurseurPos()) nligne=TableInfoXY(MoiMême,tiNumLigne+tiOrigineEcran,x,y) ncol=TableInfoXY(MoiMême,tiNumColonne+tiOrigineEcran,x,y) SI nligne>0 ET ncol>1 ALORS ClasseEntiere..CouleurFond=iRougeClair // nom de ma seconde colonne : ClasseEntiere Groupe..CouleurFond=iBlanc // nom de ma troisieme colonne : Groupe Remarques..CouleurFond=iBlanc // nom de ma quatrieme colonne : Remarques
TableAffectations[nligne,ncol]..CouleurFond=iJauneClair FIN
Mon objectif est que lorsque l'utilisateur survole une cellule (sauf sur la première colonne) la cellule se mette en jaune (couleur de fond). L pb est que la cellule se met bien en jaune, mais lorsque je passe à une autre cellule, l'ancienne reste toujours en jaune, ce qui fait que si tu parcours tous le tableau avec la souris, toutes les cellules sont jaunes !!! (sauf sur la première colonne). J'ai essayé de faire en sorte que lors du survol d'une cellule, il remette d'abord tout à blanc, puis qu'il colorie en jaune la cellule en cours, d'ou ma partie de code correspondante :
ClasseEntiere..CouleurFond=iRougeClair // nom de ma seconde colonne : ClasseEntiere Groupe..CouleurFond=iBlanc // nom de ma troisieme colonne : Groupe Remarques..CouleurFond=iBlanc // nom de ma quatrieme colonne : Remarques
mais j'ai l'impression qu'il ne rafraîchi pas l'affichage !! comment faire ? Merci beaucoup d'avance.
Houlaaa ... Le problème, c'est qu'il n'y a pas d'événement de "non survol" ... Ne peux-tu pas en "entrant dans le survol" remettre toute ta table dans la couleur par défaut et puis mettre ta(tes) colonne(s) dans la couleur désirée ....
Bonne chance !
-- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477 |
| |
| |
| | | |
|
| | |
| |
Posté le 13 août 2004 - 19:07 |
Merci pour ton code, cela marche mais j'ai encore un petit pb :
Voici mon code sur le survol de la souris :
x,y, nligne,ncol sont des entiers
x=PoidsFaible(CurseurPos()) y=PoidsFort(CurseurPos()) nligne=TableInfoXY(MoiMême,tiNumLigne+tiOrigineEcran,x,y) ncol=TableInfoXY(MoiMême,tiNumColonne+tiOrigineEcran,x,y) SI nligne>0 ET ncol>1 ALORS ClasseEntiere..CouleurFond=iRougeClair // nom de ma seconde colonne : ClasseEntiere Groupe..CouleurFond=iBlanc // nom de ma troisieme colonne : Groupe Remarques..CouleurFond=iBlanc // nom de ma quatrieme colonne : Remarques
TableAffectations[nligne,ncol]..CouleurFond=iJauneClair FIN
Mon objectif est que lorsque l'utilisateur survole une cellule (sauf sur la première colonne) la cellule se mette en jaune (couleur de fond). L pb est que la cellule se met bien en jaune, mais lorsque je passe à une autre cellule, l'ancienne reste toujours en jaune, ce qui fait que si tu parcours tous le tableau avec la souris, toutes les cellules sont jaunes !!! (sauf sur la première colonne). J'ai essayé de faire en sorte que lors du survol d'une cellule, il remette d'abord tout à blanc, puis qu'il colorie en jaune la cellule en cours, d'ou ma partie de code correspondante :
ClasseEntiere..CouleurFond=iRougeClair // nom de ma seconde colonne : ClasseEntiere Groupe..CouleurFond=iBlanc // nom de ma troisieme colonne : Groupe Remarques..CouleurFond=iBlanc // nom de ma quatrieme colonne : Remarques
mais j'ai l'impression qu'il ne rafraîchi pas l'affichage !! comment faire ? Merci beaucoup d'avance. |
| |
| |
| | | |
|
| | |
| |
Posté le 13 août 2004 - 19:49 |
en fait j'ai reussi, effectivement j'ai fais comme tu le pensais à savoir sur le survol je remet tout à blanc (la couleur) et je met ensuite la cellule en cours en jaune, le pb était que cela ne marchais pas en mettant toutes les colonnes à blanc (donc colonne par colonne : <NomColonne>..couleurFond=iblanc) !!!! Par contre je me suis rendu compte que cela marchais avec les lignes (donc ligne par ligne : <N°Ligne>..couleursFond =iblanc) !!! vas savoir pourquoi cela marche avec les lignes et pas les colonnes ?!!!!!!!! en cela marche. Merci de ton aide |
| |
| |
| | | |
|
| | | | |
| | |
|