|
Inicio → WINDEV 2024 → Savoir si une colonne de table est désélectionnée via le menu contextuel |
Savoir si une colonne de table est désélectionnée via le menu contextuel |
Iniciado por Pampi, 09,dic. 2019 11:32 - 12 respuestas |
| |
| | | |
|
| |
Miembro registrado 150 mensajes Popularité : +8 (8 votes) |
|
Publicado el 09,diciembre 2019 - 11:32 |
Bonjour,
Le menu contextuel d'une table permet à l'utilisateur de sélectionner ou pas une ou plusieurs colonnes de la table (ce choix est automatiquement mémorisé).
Comment savoir, à l'ouverture de la fenêtre contenant une table, si une colonne est sélectionnée ou désélectionnée par l'utilisateur via l'option "Sélectionner les colonnes" du menu contextuel de la table ?
Exemple dans mon logiciel :
une facture est gérée en HT ou en TTC si c'est en HT, le logiciel affiche, pour chaque ligne de facture, la colonne "Prix HT" et cache la colonne "Prix TTC" si c'est en TTC, le logiciel affiche, pour chaque ligne de facture, la colonne "Prix TTC" et cache la colonne "Prix HT"
Mais l'utilisateur peut demander à ne pas afficher la colonne qui est censée s'afficher ("Prix HT" dans le 1er cas, "Prix TTC" dans le 2nd cas : il utilise alors l'option "Sélectionner les colonnes" du menu contextuel de la table des lignes de facture et décoche la colonne qu'il ne souhaite pas voir affichée.
J'ai donc besoin de connaître, à l'ouverture de la fenêtre, les colonnes que l'utilisateur ne souhaite pas voir affichée.
Avez-vous une idée pour arriver à mes fins ?
Merci par avance pour votre aide.
Bon dév.
Pampi |
| |
| |
| | | |
|
| | |
| |
Publicado el 09,diciembre 2019 - 13:19 |
bVisibleColonne1,bVisibleColonne2 sont des booléens Tu peux utiliser la propriété d'une Colonne bVisibleColonne1 = Table1.Colonne1..visible bVisibleColonne2 = Table1.Colonne2..visible |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 150 mensajes Popularité : +8 (8 votes) |
|
Publicado el 09,diciembre 2019 - 16:25 |
Bonjour Alain,
Merci pour ta réponse.
Malheureusement, ça ne fonctionne pas, la valeur Table1.Colonne1..Visible (placé dans les déclarations globales de la fenêtre contenant ma table) est systématiquement à 1 (Vrai) à l'ouverture de la fenêtre, même si j'ai désélectionné la colonne Colonne1 précédemment : effectivement, la colonne Colonne1 s'affiche malgré mon choix précédent. L'info est peut-être stockée dans la base de registre ?
Merci encore. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.846 mensajes Popularité : +227 (347 votes) |
|
Publicado el 09,diciembre 2019 - 17:14 |
Bonjour, Les données de réglage sont en effet stockées dans la BDR. Regarde l'article sur la persistance des données dans la doc
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 165 mensajes Popularité : +12 (12 votes) |
|
Publicado el 09,diciembre 2019 - 19:53 |
Pampi a écrit :
Comment savoir, à l'ouverture de la fenêtre contenant une table, si une colonne est sélectionnée ou désélectionnée par l'utilisateur via l'option "Sélectionner les colonnes" du menu contextuel de la table ?
Bonjour; On peut le savoir via l'option "Sélectionner les colonnes" du menu contextuel de la table.
Autre Option : Décocher l'option : "Mémoriser la config. des colonnes" dans l'onglet détail de la Table.
Bon Dev |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 150 mensajes Popularité : +8 (8 votes) |
|
Publicado el 10,diciembre 2019 - 08:41 |
Voroltinquo a écrit :
Bonjour, Les données de réglage sont en effet stockées dans la BDR. Regarde l'article sur la persistance des données dans la doc
-- Il y a peut être plus simple, mais, ça tourne
Bonjour,
Merci pour ta réponse.
Le ST m'a confirmé que l'info était dans la BDR et m'a même gentiment donné l'adresse exacte : Ordinateur\HKEY_CURRENT_USER\Software\<NomSociété>\<NomApplication>\<NomFenetre>\<NomChampTable>\<colonne>
Bon dév.
Pampi |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 150 mensajes Popularité : +8 (8 votes) |
|
Publicado el 10,diciembre 2019 - 08:42 |
Fouedusa a écrit :
Pampi a écrit :
Comment savoir, à l'ouverture de la fenêtre contenant une table, si une colonne est sélectionnée ou désélectionnée par l'utilisateur via l'option "Sélectionner les colonnes" du menu contextuel de la table ?
Bonjour; On peut le savoir via l'option "Sélectionner les colonnes" du menu contextuel de la table.
Autre Option : Décocher l'option : "Mémoriser la config. des colonnes" dans l'onglet détail de la Table.
Bon Dev
Bonjour,
Merci pour ta réponse mais ma demande sous-entendait que je recherchais l'info par programmation...
Merci quand même. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.846 mensajes Popularité : +227 (347 votes) |
|
Publicado el 10,diciembre 2019 - 10:18 |
Tu peux aussi avoir les infos via ProjetInfo(piRegistre), le hive change selon que l'on soit en mode test ou en mode exécutables. Les détails sont dans les remarques de ce lien : https://doc.pcsoft.fr/fr-FR/?3064004
-- Il y a peut être plus simple, mais, ça tourneMensaje modificado, 10,diciembre 2019 - 10:21 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 150 mensajes Popularité : +8 (8 votes) |
|
Publicado el 10,diciembre 2019 - 17:03 |
Voroltinquo a écrit :
Tu peux aussi avoir les infos via ProjetInfo(piRegistre), le hive change selon que l'on soit en mode test ou en mode exécutables. Les détails sont dans les remarques de ce lien : https://doc.pcsoft.fr/fr-FR/?3064004-- Il y a peut être plus simple, mais, ça tourne Message modifié, 10 décembre 2019 - 10:21
C'est parfait, merci, ça va me permettre de récupérer automatiquement le bon hive pour effectuer mes contrôles.
Bon dév. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 150 mensajes Popularité : +8 (8 votes) |
|
Publicado el 11,diciembre 2019 - 11:28 |
Bonjour,
J'ai écrit le code suivant pour connaître les colonnes à afficher ou pas dans ma table :
gsCheminRegistre est une chaîne=ProjetInfo(piRegistre)
UneColonne est un Champ ResExécute est un booléen ResLecture est un booléen sNomcolregistre est une chaîne
POUR nColonne = 1 _À_ TableOccurrence(TABLE_LigneCommande, toColonne)
UneColonne <- TableEnumèreColonne(TABLE_LigneCommande, nColonne)
sNomcolregistre=ComplèteRep(gsCheminRegistre)+UneColonne..NomComplet
ResLecture= RegistreLit(sNomcolregistre, "VisibleOuverture",ResExécute)
SI ResExécute=Vrai ALORS SI ResLecture=Faux ALORS {UneColonne..NomComplet,indChamp}..Visible=Faux FIN FIN FIN
Mais la valeur de ResExécute est toujours à Faux...
Je ne comprends pas car tout existe dans la base de registre ...
Une idée ?
Merci par avance.
Bon dév.
Pampi |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.846 mensajes Popularité : +227 (347 votes) |
|
Publicado el 11,diciembre 2019 - 11:45 |
La valeur renvoyée par RegistreLit est une chaîne pas un booléen. A vue de nez le résultat doit donc être "0" ou "1" En passant par Val(RegistreLit(...)) tu devrait retomber sur tes pieds.
-- Il y a peut être plus simple, mais, ça tourneMensaje modificado, 11,diciembre 2019 - 11:56 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 150 mensajes Popularité : +8 (8 votes) |
|
Publicado el 11,diciembre 2019 - 13:26 |
Voroltinquo a écrit :
La valeur renvoyée par RegistreLit est une chaîne pas un booléen. A vue de nez le résultat doit donc être "0" ou "1" En passant par Val(RegistreLit(...)) tu devrait retomber sur tes pieds.
-- Il y a peut être plus simple, mais, ça tourne Message modifié, 11 décembre 2019 - 11:56
Merci encore pour ton aide.
Je pense avoir trouvé :
..NomComplet me renvoyait "FEN_FICHE_COMMANDE_CLIENT.TABLE_LigneCommande.COL_IDLigneCde".
Or, si j'utilise RegistreExiste, avec le ...NomComplet, ma colonne n'est pas trouvée.
En remplaçant les "." par des "\" pour obtenir "FEN_FICHE_COMMANDE_CLIENT\TABLE_LigneCommande\COL_IDLigneCde", ça fonctionne :
sNomcolregistre=ComplèteRep(gsCheminRegistre)+Remplace(UneColonne..NomComplet,".","\") ResLecture= RegistreLit(sNomcolregistre, "VisibleOuverture",ResExécute)
ResExécute est bien à Vrai te je peux récupérer la valeur de ResLecture.
Finalement, mon problème est : pourquoi le "Sélectionner les colonnes" du menu contextuel de ma table :
- fonctionne (met à jour la base de registre) sur ma fenêtre FEN_LISTE_COMMANDE_CLIENT ? - ne fonctionne pas (ne met pas à jour la base de registre) sur ma fenêtre FEN_FICHE_COMMANDE_CLIENT ?
sachant les que les 2 tables sont alimentées par programmation.
Pour info, la copie de code entre les balises [ code:wl ] et [ /code ] sur ce forum ne fonctionne plus chez nous...
Merci encore pour ton aide.
Bon dév.
Pampi |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 150 mensajes Popularité : +8 (8 votes) |
|
Publicado el 11,diciembre 2019 - 13:44 |
Tout ça pour ça...
Il suffisait en fait de cocher "Mémoriser la config. des colonnes" pour que le "Sélectionner les colonnes" fonctionne et écrive dans la base des registres.. |
| |
| |
| | | |
|
| | | | |
| | |
|