Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J ai une datawindow avec plusieurs colonnes de donnés...
Par défault je n'affiche que 3 colonnes, elles sont donc visible.(toutes les autres sont à "visible=0")
Or grace a un menu contextuel chekable, l'utilisateur peut decider d afficher d autre colonnes ou d en enlever, (les colonnes se rajoutent à la fin) .
Tout ceci marchait bien sauf que meme quand les colonnes sont invisibles, "elles prennent de la place" donc mon tableau est scrollable horizontalement.
Je voudrais donc regler ce probleme.
J'ai donc essayé de mettre cette condition dans la proprieté width des colonnes : if (describe("nomdelacolonne_t.visible") = '1' ,300,0)
Mais ca ne marche pas...
Quelqu'un aurait une idée
Merci
Dernière modification par fffalim (12-05-2009 11:09:11)
Hors ligne
Ta datawindow doit être une grid je suppose. Essaye avec une tabular.
Hors ligne
c'est bien une grid... je vais essayer avec une tabular
Hors ligne
Bonjour,
Toutes mes listes sont en "grid" et je peux ajouter ou masquer des colonnes sans problème.
Il faut effectivement mettre la largeur de la colonne à zéro et non le titre de la colonne comme dans ta formule "_t".
Je procède de la façon suivante, en modifiant les deux propriétés de la colonne avec un seul "Modify" :
dw_1.Modify("columnname.visible = 0 columname.width=0")
Hors ligne
Salut Buck,
Mais comment sauvegardes-tu la taille des colonnes que l'utilisateur "cache" puis fais "réapparaitre". (sachant que les colonnes n'ont pas forcément la meme taille.)
J'ai pensé à sauvegarder ca dans le Tag mais je trouve ca plutot "moche"...
Merci en tout cas
Hors ligne
Bonjour,
En fait j'ai un framework issu de plus d'une dizaine d'années de développement sur le produit pour gérer les listes.
Les caractéristiques de chaque colonne sont sauvegardées dans la base de données associé au profil de l'utilisateur : largeur de la colonne, visibilité, position, filtre d'affichage sur les colonnes, taille et position de la fenêtre ...
La réouverture de la fenêtre ré affiche la liste et la fenêtre telle que l'utilisateur la laissé lors de la fermeture.
Lors de la première ouverture d'une liste par un utilisateur, un profil par défaut (paramétrable) est utilisé pour l'affichage des colonnes.
Hors ligne
Bon,
Vu que je ne peux pas toucher à la base... j'ai mis la valeur du "width" dans le tag de la colonne: ca marche parfaitement...
Bien que je ne trouve pas ca trés "éléguant"....
Mais bon comme on fait comme on peut...
Merci
Hors ligne
Si tu ne peux pas toucher à la base, tu peux toujours imaginer sauvegarder ces données dans un .ini ou dans la base de registre.
L'avantage de faire la sauvegarde dans la base de données, c'est de permettre à un utilisateur de retrouver son environnement quelque soit son poste de travail.
J'avais moi-même réalisé celà sur un Framework en 2002.
A+
Hors ligne