Problème avec les msflexgrids

Goustaf - 29 sept. 2000 à 16:22
k_wa Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 septembre 2006 - 17 févr. 2005 à 21:08
Comment faire pour masquer une colonne dans un MSFLEXGRID. Y'a bien la possibilité de mettre COLWIDTH à 0, mais à koi sert donc la propriété ISCOLVISIBLE??? quand j'essaie de remplacer
MSF.COLWIDTH(3) = 0 par
MSF.ISCOLVISIBLE(3) = FALSE

y me dit que cette propriété n'est pas modifiable.
A KOI CA SERT DE POUVOIR TESTER SI UNE COLONNE EST VISIBLE OU PAS SI ON NE PEUT PAS LA RENDRE INVISIBLE??????

y'a forcémént un truc que G pas pigé....

HELP donc.

9 réponses

salut
d'ou viennent les données que tu veux afficher ?
si c'est une requete écrite en sql, il te suffit de ne pas citer la colonne.

@+
0
salut virginie,

nan, les données ne viennent pas d'une requête SQL, pour l'instant y'a pas vraiment de données derrière (il s'agit d'une maquette que je mets en place au fur et à mesure de mon analyse car comme je ne connais pas VB, et qu'il y a de grandes chances pour que je me tape le développement après l'étude je veux être sur que techniquement C faisable.

Grosso modo le problème est le suivant: J'ai une grille où j'affiche des enregistrements contenant, entr'autres 7 colonnes pour les 7 jourz de la semaine. Dans certains cas, les utilisateurs arriveront sur cette grille pour consulter l'ensemble de la semaine, dans d'autres cas pour consulter un seul jour. Ne voulant pas mettre deux grids pour gérer les deux cas, je me contente, quand l'utilisateur vient faire une consultation jourrnalière de lui masquer les 6 autres jours en utilisant le COLWIDTH à 0, mais le résultat n'est pas très probant (on se rend compte que les colonnes sont la mais réduites à 0 cm..... ca fait un peu artisanal koi!)
Ce que je veux, C les faire disparaître tout simplement, peut-être que quand il y aura une vraie BD derrière en jonglant avec l'ordre select de ma requête je pourrai m'en sortir mais dans le cas de ma maquette j'aimerais mettre également en place une solution élégante et non un bouche-trou honteux!!

en tt cas rci d'avoir lu mon msg et bon week.....
0
euh oui...désolée, là je ne peux pas t'aider.
Passe un bon wek end
Virginie
0
k_wa Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 septembre 2006
17 févr. 2005 à 00:00
je suis exactement dans la même phase que toi
j'ai besoin de placer des flags par ligne poru les mises à jour et les sélection de record
mais je n'arrive pas à la masquer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
k_wa Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 septembre 2006
17 févr. 2005 à 00:10
mais comme ce n'est que pour une application admin, je vais me permettre de réduire les tailles à 0 de toutes façon ces colonnes là seront non modifiables.
pour les clients la gestion est en php.
mais si tu trouve l'astuce hésite pas à la poster. je ferai de même ;)
0
k_wa Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 septembre 2006
17 févr. 2005 à 00:24
voilà mon astuce :

dim i as integer, entete as string
entete = "< |FlagMaj | FlagType |idterrain | idlieu | idlot | 6 | 7 | 8 | 9 | Terrain/Chantier | ! | Promo/AVP/Terrain | Lot | Sup (m²) | PV m² (€) |" _
& " PV terr (€) | PV Const | PV total | Vente/ Option | Fin Option |" _
& " Client | Vendeur | Architecte | Notaire Vendeur | Date actes | " _
& " Notaire Acheteur | Géomètre | Remarques"
with mfgtable
.FormatString = entete
For i = 0 To 9
.ColWidth(i) = 0
Next i
end with

en faisant ainsi, l'utilisateur ne peux voir que la première colonne caché et elle ne contient qu'un blanc (aligné à gauche mais on s'en cale)
j'ai pensé aux colonnes supplémentaires (6,7,8,9) bien sur par fainéantise (je me comprend) mais surtout en prévoyant des ajouts de flag pour la programmation à venir sans venir gêner les dernière colonnes
0
k_wa Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 septembre 2006
17 févr. 2005 à 00:42
wé voilà j'ai trouvé la solution, tu dois mettre un timer genre à 200ms
qui check que la colwidth(x) est bien à 0 ^^

j'ai cor rien trouvé de mieux
0
k_wa Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 septembre 2006
17 févr. 2005 à 00:46
timer1.interval=1

Private Sub Timer1_Timer()
With mfgTable
If .ColWidth(0) <> 0 Then .ColWidth(0) = 0
End With
End Sub

ce coup ci c la bonne lol
0
k_wa Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 septembre 2006
17 févr. 2005 à 21:08
c jamais assez bien... voici encore une amélioration...
car j'ai di une bêtise, la sélection est tout à fait aléatoires sur les 10 premières colonnes.
il faut donc établir une boucle pour palier ce problème:

Private Sub AppTimer_Timer()
Dim i
With mfgTable
For i = 0 To 9
If .ColWidth(i) <> 0 Then .ColWidth(i) = 0
Next i
End With
End Sub

ensuite, dans ton prog, juste après la déclaration de toute les colonnes:

' une fois les colonnes en place, le timer de vérification des colonnes invisibles
' peut être lancé
AppTimer.Enabled = True

Voilà, cette fois ci la fonctionnalité n'a pas de faille.
mais peut-être existe-t-il une meilleure astuce... à vous de le dire parce que je pense bien avoir fait le tour de la question en ce qui concerne mon procédé.
0
Rejoignez-nous