PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Choix des colonnes affichable/masquable par l'utilisateur
Choix des colonnes affichable/masquable par l'utilisateur
Débuté par forumwd, 10 jan. 2005 14:21 - 3 réponses
Posté le 10 janvier 2005 - 14:21
Bonjour,

Sympa l'affichage / maquage des colonnes en natif... mais j'aimerai pouvoir mettre dans ce menu contextuel que les colonnes que je veux bien mettre à dispo !

Ex: une appli avec gestion de droits selon l'utilisateur (lecture seul, lecture+modif, etc.).

Une table liste les utilisateurs : nom-prénom, droits, etc., et -uniquement pour l'administrateur- les mot de passe de chaque utilisateur.
Avec le menu d'affichage des colonnes, n'importe quel utilisateur peut afficher la colonne des mot de passe... théoriquement réservé à l'administrateur.

Une solution ?

Windev va évoluer ?? (une case à cocher dans chaque colonne dans la fenêtre à 7onglets serait la bienvenue pour faire apparaitre ou non la colonne dans la liste de choix des colonnes dispo à l'utilisateur)
Posté le 10 janvier 2005 - 15:16
Tout à fait d'accord, cette option est indispensable lorsque l'on a des tables en saisie.
De plus, lorsque l'on a des colonnes non visibles, les options du menu contextuel ne fonctionnent plus correctement, il y a un mélange dans les colonnes qui fait que celà devient complétement inexploitable.
Posté le 10 janvier 2005 - 16:01
Pour une appli interne que je développe pour ma boite, j'ai développé tout le code correspondant car:
1. Cet option n'existait pas en Windev8
2. En fait tout ce que vous avez signalé.

J'utilise une fenêtre qui est lancé depuis le menu contextuel de la table à "modifier". Voici par exemple le code qui liste les colonnes qui sont accessibles par l'utilisateur. Le code gère les colonnes qui sont masquées dans l'éditeur, celles qui le sont par le Groupware, et celles que l'on veut "forcer", via le paramètre ListeChampsCachés:


POUR Compteur = 1 A {NomFenetreMere + "." + NomTable}..NombreColonne
NomColonne = TableEnumèreColonne(NomFenetreMere + "." + NomTable,Compteur)
SI {NomFenetreMere + "." + NomTable + "." + NomColonne}..EtatInitial <> Invisible ET ChaîneOccurrence(listeChampsCaches,NomColonne,MotComplet + SansCasse) = 0 ALORS
HLitRecherchePremier(gpwconfigurationelement,Configuration_Element,HConstruitValClé(gpwconfigurationelement,Configuration_Element,gpwRecupInfoUtilisateur(gpwInfoGroupe),NomFenetreMere + "." + NomTable + "." + NomColonne))
SI HTrouve(gpwconfigurationelement) ALORS
SI gpwconfigurationelement.etat <> gpwEtatInvisible ALORS
TableAjoute(TblLstColPdt,NomColonne + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Libellé + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Visible)
FIN
SINON
TableAjoute(TblLstColPdt,NomColonne + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Libellé + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Visible)
FIN
FIN
FIN

Les colonnes sont listés dans un champ table, qui permet via un toggle d'afficher/masquer les différentes colonnes, identifiées par leur libelle.

Si ça peux aider quelqu'un, je peux exporter la fenêtre qui gère le tout ( avec des configurations sauvegardées, publiques/privés... ). Attention, mon application n'utilise pas HF (ormis ceux du Groupware ), mais une liaison ODBC, donc les ordres SQL...

Frédéric.
Posté le 10 janvier 2005 - 18:18
Le 10/01/2005, Frédéric DEMILLY a supposé :
Pour une appli interne que je développe pour ma boite, j'ai développé tout le code correspondant car:
1. Cet option n'existait pas en Windev8
2. En fait tout ce que vous avez signalé.

J'utilise une fenêtre qui est lancé depuis le menu contextuel de la table à "modifier". Voici par exemple le code qui liste les colonnes qui sont accessibles par
l'utilisateur. Le code gère les colonnes qui sont masquées dans l'éditeur, celles qui le sont par le Groupware, et celles que l'on veut "forcer", via le paramètre
ListeChampsCachés:


POUR Compteur = 1 A {NomFenetreMere + "." + NomTable}..NombreColonne
NomColonne = TableEnumèreColonne(NomFenetreMere + "." + NomTable,Compteur)
SI {NomFenetreMere + "." + NomTable + "." + NomColonne}..EtatInitial <> Invisible ET ChaîneOccurrence(listeChampsCaches,NomColonne,MotComplet + SansCasse) = 0 ALORS
HLitRecherchePremier(gpwconfigurationelement,Configuration_Element,HConstruitValClé(gpwconfigurationelement,Configuration_Element,gpwRecupInfoUtilisateur(gpwInfoGroupe),NomFenetreMere
+ "." + NomTable + "." + NomColonne)) SI HTrouve(gpwconfigurationelement) ALORS
SI gpwconfigurationelement.etat <> gpwEtatInvisible ALORS
TableAjoute(TblLstColPdt,NomColonne + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Libellé + TAB + {NomFenetreMere + "." + NomTable + "." +
NomColonne}..Visible) FIN
SINON
TableAjoute(TblLstColPdt,NomColonne + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Libellé + TAB + {NomFenetreMere + "." + NomTable + "." +
NomColonne}..Visible) FIN
FIN
FIN

Les colonnes sont listés dans un champ table, qui permet via un toggle d'afficher/masquer les différentes colonnes, identifiées par leur libelle.

Si ça peux aider quelqu'un, je peux exporter la fenêtre qui gère le tout ( avec des configurations sauvegardées, publiques/privés... ). Attention, mon application
n'utilise pas HF (ormis ceux du Groupware ), mais une liaison ODBC, donc les ordres SQL...

Frédéric.


Bonjour,
Je serais intérressé car autre limitation du menu contextuel de WD9 le nombre de colonnes est limité.
Merci d'avance.

--
Pascal
N0.pascal.SPAM@efpe.biz
Ne garder que le prénom pour me joindre