Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comportement bizarre des interrupteurs dans les tables

2 réponses
Avatar
JC
Bonjour

J=92ai des soucis avec les interrupteurs dans les tables. Voici le
probl=E8me en d=E9tails...

Je veux proposer un comparatif qui permet aux utilisateurs de choisir
des produits dans une table, de cocher ceux qui les int=E9ressent, et de
lancer ensuite un comparatif sur les produits s=E9lectionn=E9s, mais j=92ai
des gros soucis avec une colonne d=92interrupteurs qui est utilis=E9e pour
le comparatif.
Je pr=E9cise tout de suite que je ne veux pas ajouter de champ
=91comparatif=92 dans ma BD ; OK, =E7a marche, mais c=92est nul comme
solution, =E7a n=92a rien =E0 faire dans ma BD. C=92est juste de l=92IHM, e=
t
rien n=92emp=EAche que je cr=E9=E9e d=92autres comparatifs plus tard.

Pour tester mon id=E9e de comparatif, j=92ai fait un projet =91test=92 dans
lequel la BD ne contient qu=92un simple fichier Produit avec ID, libell=E9
et prix comme informations (un fichier basique en somme).
Ensuite, mon projet contient une seule fen=EAtre dans laquelle j=92ai cr=E9=
=E9
une table qui affiche les produits (en utilisant une requ=EAte, mais
ceci est sans importance je pense).
Pour que le comparatif soit possible, j=92ai ajout=E9 dans ma table une
colonne d=92interrupteurs pour que les produits puissent =EAtre coch=E9s ou
non.
Sous la table, j=92ai ajout=E9 des potentiom=E8tres qui permettent de
filtrer la BD et qui rafra=EEchissent en temps r=E9el la table (avec
TableAffiche(TABLE_Produit,taCourantEnreg)).

Voici le probl=E8me (je suis en Windev 12):
- si j=92utilise une table fichier avec acc=E8s direct, quand je coche des
cases de la colonne Comparatif, le code ci-dessous n=92affiche rien,
Info n=92est jamais ex=E9cut=E9. Pourquoi ? De plus, si je bouge mes
potentiom=E8tres (qui ex=E9cutent la requ=EAte pour r=E9afficher la table),
TOUTES les coches disparaissent dans la colonne Comparatif. N=92y a-t-il
pas moyen que cette colonne m=E9morise automatiquement ses valeurs ?

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

- si j=92utilise une table m=E9moire avec le m=EAme code ci-dessus, cette
fois-ci Windev m=92affiche bien les produits coch=E9s, mais ici aussi le
rafraichissement de la table avec les potentiom=E8tres fait disparaitre
toutes les coches. Encore une fois, comment faire pour m=E9moriser les
coches et pourquoi cette diff=E9rence de comportement du code entre une
table m=E9moire et une table fichier ???

Merci pour vos =E9claircissements.

JCT

2 réponses

Avatar
patrice
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)
Avatar
JC
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 ?