PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Comment debrancher le rafraichissement...
Comment debrancher le rafraichissement...
Débuté par prenom.nom, 02 fév. 2006 16:18 - 4 réponses
Posté le 02 février 2006 - 16:18
....d'une table Fichier ?!!
Voila, j'ai un fichier, que je veux afficher tel quel dans une table en
ajoutant une colonne reliée a aucune rubrique. (Par exple une colonne de
cases a cocher en saisie pour permettre a l'utilisateur de faire une
selection sur des gros fichiers sans avoir a se battre entre la touche ctrl
et les ascenseurs)
Ca marche impec sf que qd l'utilisateur clique sur une ligne, ca rafraichit
cette ligne et remet mon booléen qui n'est relié a rien du tout à false.

Y-a-t'il moyen de debrancher ou contourner ce rafraichissement ?

(en evitant si possible l'utilisation de table memoire...)
Posté le 02 février 2006 - 16:42
Je vais tenter quelques pistes :
1) Je pense bien que tu devras activer l'ascenceur proportionnel car sinon, la table sera rafraichie dès que tu changeras de page de contenu
2) Vérifies bien dans ton code où sont placés les TableAffiche... Ceci aura pour effet de rafraichir ta table, donc d'effacer les interrupteurs mis à vrai
3) Mise en garde : L'interrupteur ne fonctionne pas tout à fait comme les autres champs d'une table, i.e. l'événement "Sortie de ligne de table" ne sera pas exécuté quand tu coches la case et qu'ensuite tu sors de la table. De plus, à chaque fois que tu coches l'interrupteur, WD fais un TableEnregistre même si tu l'as désactivé en sortie de ligne dans l'éditeur...

Avec quelques autres détails, on pourra faire un autre pas ;)

Luc
Posté le 02 février 2006 - 17:20
Bonjour !
Merci a vous de vous pencher sur mon cas :)

Je vais tenter quelques pistes :
1) Je pense bien que tu devras activer l'ascenceur proportionnel car

sinon, la table sera rafraichie dès que tu changeras de page de contenu

===>> c'est activé

> 2) Vérifies bien dans ton code où sont placés les TableAffiche... Ceci
aura pour effet de rafraichir ta table, donc d'effacer les interrupteurs mis
à vrai

===>> 1 seul et unique TableAffiche lorsque l'on passe sur le plan de la
fenetre ou se situe la table

3) Mise en garde : L'interrupteur ne fonctionne pas tout à fait comme les

autres champs d'une table, i.e. l'événement "Sortie de ligne de table" ne
sera pas exécuté quand tu coches la case et qu'ensuite tu sors de la table.
De plus, à chaque fois que tu coches l'interrupteur, WD fais un
TableEnregistre même si tu l'as désactivé en sortie de ligne dans
l'éditeur...
Avec quelques autres détails, on pourra faire un autre pas ;)

Luc


Quelques autres détails : :)
La table est donc une table fichier. Toutes les colonnes sont en affichage
seulement exceptée celle de l'interrupteur. Il n'y a aucun code de
rafraichissement dans la fenêtre.
Phénomène constaté :
L'utilisateur coche l'interrupteur, puis clique sur une autre colonne ->
l'interrupteur se décoche
(je pense que seul l'enregistrement sur lequel se balade l'utilisateur est
rafraichit)
L'utilisateur cohe l'interrupteur, puis clique sur un contrôle autre que la
table -> l'interrupteur reste coché en affichage, mais si on accède par du
code a sa valeur, il renvoit 0.

Je n'ai pas trouvé de solution ni dans l'aide, ni sur le forums, ca m'étonne
un peu que personne ne semble jamais avoir envie d'ajouter des colonnes a
une table fichier sans avoir a passer par une table memoire..

Merci bien,

Jérôme.
Posté le 02 février 2006 - 18:01
Mmmmm... je vois...

Le problème est que la table étant reliée sur le fichier, lorsque WD fait sont TableEnregistre en sortie de ligne, évidemment, ce champs "interrupteur" n'existant pas et n'étant pas relié au fichier, donc la valeur n'est pas sauvegardée.

Puis, lorsqu'on sélectionne une ligne, alors WD semble relire les infos dans le fichier pour ce record et rafraichir la ligne, donc l'interrupteur se fait réinitialiser.

La solution que je te propose :
- Cacher une table en dehors de la fenêtre à gauche.
- Cette table sera une table mémoire, et ne contiendra que 2 choses :
- un champs booleen (ou interrupteur)
- un entier (sera la valeur du no de ligne de la table fichier)
- Traiter dans l'événement de l'interrupteur de ta table fichier :
Si vrai : recherche dans la table cachée (le no. de ligne dans la colonne entier) et si existe, ne fais rien, si n'existe pas, insère.
Si faux : recherche... si existe détruit.

Puis, dernière chose : Tu devras mettre du code en "Affichage d'une ligne" de ta table fichier : Recherche dans la table cachée, si la ligne y existe : cocher interrupteur.

Disons que je n'ai pas tout essayer mais bon, je te souhaite que ça fonctionne ;)

Luc
Posté le 04 février 2006 - 08:38
J'y vais de mon grain de sel , car ai eu semblable problème que j'ai contourné tout simplement en créant une rubrique "POINTEUR" (interrupteur ou booleen) dans le fichier concerné avec une colonne table RELIEE TABLE.POINTEUR. (seule colonne en saisie)
A l'origine tous les pointeurs POINTEUR sont à faux
L'utilisateur coche dans la table affichée le(s) pointeur(s) choisi(s) à Vrai >>>> on lance le traitement qui s'en suit
A la fermeture de la table je remets tous les pointeurs POINTEUR (devenus inutiles) du fichier à faux.

Plus de problèmes d'afffichage ....