Comportement bizarre des interrupteurs dans les tables

Le
JC
Bonjour

J’ai des soucis avec les interrupteurs dans les tables. Voici le
problème en détails

Je veux proposer un comparatif qui permet aux utilisateurs de choisir
des produits dans une table, de cocher ceux qui les intéressent, et de
lancer ensuite un comparatif sur les produits sélectionnés, mais j’ai
des gros soucis avec une colonne d’interrupteurs qui est utilisée pour
le comparatif.
Je précise tout de suite que je ne veux pas ajouter de champ
‘comparatif’ dans ma BD ; OK, ça marche, mais c’est nul comme
solution, ça n’a rien à faire dans ma BD. C’est juste de l’IHM, e=
t
rien n’empêche que je créée d’autres comparatifs plus tard.

Pour tester mon idée de comparatif, j’ai fait un projet ‘test’ dans
lequel la BD ne contient qu’un simple fichier Produit avec ID, libellé
et prix comme informations (un fichier basique en somme).
Ensuite, mon projet contient une seule fenêtre dans laquelle j’ai cré=
é
une table qui affiche les produits (en utilisant une requête, mais
ceci est sans importance je pense).
Pour que le comparatif soit possible, j’ai ajouté dans ma table une
colonne d’interrupteurs pour que les produits puissent être cochés ou
non.
Sous la table, j’ai ajouté des potentiomètres qui permettent de
filtrer la BD et qui rafraîchissent en temps réel la table (avec
TableAffiche(TABLE_Produit,taCourantEnreg)).

Voici le problème (je suis en Windev 12):
- si j’utilise une table fichier avec accès direct, quand je coche des
cases de la colonne Comparatif, le code ci-dessous n’affiche rien,
Info n’est jamais exécuté. Pourquoi ? De plus, si je bouge mes
potentiomètres (qui exécutent la requête pour réafficher la table),
TOUTES les coches disparaissent dans la colonne Comparatif. N’y a-t-il
pas moyen que cette colonne mémorise automatiquement ses valeurs ?

A chaque modification de COL_Comparatif (TABLE_Produit)
POUR TOUTE LIGNE DE TABLE_Produit
SI COL_Comparatif=1 ALORS
Info(TABLE_Produit.COL_NomProduit)
FIN
FIN

- si j’utilise une table mémoire avec le même code ci-dessus, cette
fois-ci Windev m’affiche bien les produits cochés, mais ici aussi le
rafraichissement de la table avec les potentiomètres fait disparaitre
toutes les coches. Encore une fois, comment faire pour mémoriser les
coches et pourquoi cette différence de comportement du code entre une
table mémoire et une table fichier ???

Merci pour vos éclaircissements.

JCT
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
patrice
Le #16368251
JC a écrit :
fois-ci Windev m’affiche bien les produits cochés, mais ici aussi le
rafraichissement de la table avec les potentiomètres fait disparaitre
toutes les coches. Encore une fois, comment faire pour mémoriser les
coches et pourquoi cette différence de comportement du code entre une
table mémoire et une table fichier ???




amha, :
une table lié à un fichier mémorise les valeurs dans le fichier
une table lié à la mémoire mémorise les valeurs dans la mémoire

donc: 1ier cas, si la case n'est pas lié à une rubrique ca risque d'etre
du pour mémoriser sa valeur
a chaque fois que la ligne sera raffraichit, la case risque d'etre
réaffichée à blanc.

2ieme cas:
le pb est peut etre dans les potar, comment la table est raffraichit
(si c'est de l'effacement puis du rechargement ca semble normal que ca
effrace)

Il faut, toujours amha, utiliser un 2ieme fichier pour gérer les
idunique du premier fichier qui sont cochées
(et en multiuser on ajoutera l'id de la session)

dans le code d'affichage de la ligne du tableau:
hlitrecherchepremier(2iemefichier,id1ierfichier, col_id1ierfichier)
col_coche=htrouve(2iemefichier)
JC
Le #16368901
Ok, merci pour l'info. Vu tout le tapage que fait PCSoft comme quoi
Windev fait tout super facilement, j'avais espoir que les tables
auraient géré elles-mêmes les colonnes rajoutées (ce qui est le cas
pour l'affichage) et mémorisaient automatiquement leurs valeurs.

Pour compléter, dans les deux cas, les potars appellent une requête
pour raffraichir la table avec
TableAffiche(TABLE_Produit,taCourantEnreg)). Je ne pensais pas qu'il y
avait d'autres solutions. En avez-vous d'autres à me proposer, sachant
que cette requête a pour objectif de ne faire afficher que les
produits entre X et Y Euros ?
Publicité
Poster une réponse
Anonyme