En réponse à 'Décocher toutes les cases à cocher d'une colonne'
Indiquez votre nom et votre adresse email
Nom :
Email :
Votre adresse email ne sera pas publiée.
Code :
Lkkkkkk YANXH Lkkkkkk YANXH Lkkkkkk Red Red YANXH Red YANXH
Lkkkkkk Red Lkkkkkk YANXH YANXH YANXH Lkkkkkk Red YANXH Red
YANXH YANXH YANXH Lkkkkkk YANXH Red Lkkkkkk Red Red Lkkkkkk Résumé du sujet
Posté le 27 juillet 2004 - 19:18
Merci bcp

ça fonctionne parfaitement en 0.25 seconde meme sur 2200 enregistrements

Parfois je me complique la vie


"Cédric" wrote:

i est un entier
pour i = 1 à tableoccurrence(Table)
NomCol[i] = faux
fin

ça devrait faire l'affaire.

Bon dev,
Cédric.


"Raoul" a écrit dans le message de
news:4100d617$1@news.pcsoft.fr...


Bonjour
je souhaite décocher/cocher toutes les cases à cocher d'une colonne d'une
table, y a -t-il un moyen rapide de le faire?
car le MaTable.MaColonne[indice_ligne]..valeur = faux/vrai
est un peu lent

Merci d'avance


Posté le 27 juillet 2004 - 17:23
Lkkkkkk Red YANXH Red YANXH Red YANXH Lkkkkkk Lkkkkkk YANXH
i est un entier
pour i = 1 à tableoccurrence(Table)
NomCol[i] = faux
fin

ça devrait faire l'affaire.

Bon dev,
Cédric.


"Raoul" a écrit dans le message de
Red YANXH Red Lkkkkkk Red YANXH Lkkkkkk YANXH YANXH Lkkkkkk
news:4100d617$1@news.pcsoft.fr...


Bonjour
je souhaite décocher/cocher toutes les cases à cocher d'une colonne d'une
table, y a -t-il un moyen rapide de le faire?
car le MaTable.MaColonne[indice_ligne]..valeur = faux/vrai
est un peu lent

Merci d'avance
Pu Bag Noir Nouveau Meaeo À Rivet Sac White Rond Bandoulière Sac Petit Ring IvPH8vq
Posté le 26 juillet 2004 - 19:41
Ok merci mais en fait, je précise que j'utilise bien une table mémoire, donc
en fait en chargement de ma table je considére que toutes leslignes que j'affiche
doivent être cochées,
donc finalement "décocher" les cases est un traitement rare et que l'on effectue
au debut si on souhaite sélectionner peu de lignes

lorsque je charge la table, je coche toutes les lignes, et donc toutes les
lignes que j'affiche sont visibles, par conséquent je ne gagnerai pas de
temps en évitant d'effectuer un traitement sur des lignes invisibles,

Le seul moyen de gagner du temps serai d'avoir 2 colonnes de coches, une
colonne de coches visible et une colonne de coches non cochée invisible,
et de permuter ces colonnes enchangeant leur état, et ensuite faire le traitement
en arrière plan,
mais étant donné la faible utilisation de ce traitement,
je vai laisser le traitement tel qu'il fonctionne actuellement
l'épaule porter Sac DragonSwordlinsu multicolore à à femme pour Medium qTqap

"cedric" wrote:


"Raoul" wrote:


"cedric" wrote:


"Raoul" wrote:


Bonjour
je souhaite décocher/cocher toutes les cases à cocher d'une colonne d'une
table, y a -t-il un moyen rapide de le faire?
car le MaTable.MaColonne[indice_ligne]..valeur = faux/vrai
est un peu lent

Merci d'avance

J'ai peut-être une solution à ton problème mais je n'ai pas testé, c'est
simplement dans ma tête alors ...

A mon avis, il faut que ce soit une table mémoire

Méthode :
Tu déclares en global à la fenêtre un entier que tu nommes par exemple IndCoche
que tu initialises à 1
YANXH Red Red Lkkkkkk Lkkkkkk Lkkkkkk YANXH YANXH YANXH Red
Tu ajoutes une colonne en fin de table qui te servira à tester la valeur
de IndCoche. Cette colonne est invisible. Elle s'appelle ColIndCoche (par
exemple)
Lors du remplissage de la table, met la valeur de IndCoche
dans cette dernière colonne.

Ensuite, et seulement si c'est le cas (je pense que oui)
à chaque fois que l'utilisateur cliques sur le bouton
permettant de décocher toutes les coches de la colonne
en question (ColBool), en fait tu incrémentes la valeur de IndCoche et tu
te débrouilles pour mettre à faux toutes les cases de ColBool des lignes
visibles et seulement celles-ci (c'est là que tu gagnes du temps)

Dans le code d'affichage d'une ligne de table :
SI ColIndCoche < IndCoche ALORS ColBool = Faux
//C'est là que tu réinitialises ColBool à Faux
//à l'affichage

Dans le code de modification de la ColBool :
SI ColBool = Vrai ALORS
ColIndCoche = IndCoche
SINON ColIndCoche = IndCoche - 1
//ColBool restera à Vrai en cas de réaffichage de la ligne
//etant donnée que ColIndCoche = IndCoche

Ensuite, lorsque tu veux tester la valeur de ColBool, par exemple pour imprimer
ou autre, la condition n'est plus seulement
SI ColBool = Vrai ALORS ...
mais
SI ColBool = Vrai ET ColIndCoche = IndCoche ALORS ...

En espérant t'avoir aider, je pense que c'est faisable.
La seule chose à réfléchir, c'est comment mettre à Faux
ColBool seulement sur les lignes visibles pour gagner ce fameux temps.
Posté le 26 juillet 2004 - 16:12
"cedric" wrote:


"Raoul" wrote:


Bonjour
je souhaite décocher/cocher toutes les cases à cocher d'une colonne d'une
table, y a -t-il un moyen rapide de le faire?
car le MaTable.MaColonne[indice_ligne]..valeur = faux/vrai
est un peu lent

Merci d'avance


Moi j'utilise ça :
n est un entier
Red Red YANXH YANXH YANXH Lkkkkkk Lkkkkkk YANXH Lkkkkkk Red
n = TableCherche(ColBool,0)
TANTQUE n <> -1
Table[n][1] = 1
n = TableCherche(ColBool,0)
FIN

Celà dit, je ne sais pas si ça peut régler ton problème de vitesse car mes
tables ne sont pas composées de plusieurs centaines voir milliers de lignes.
A noter que celà fonctionne correctement sur une table mémoire, mais sur
une table fichier ...


ok merci cédric
j'ai essayé ta méthode qui ressemble pas mal à ce que j'utilisais avant,
cad :
indice_ligne = TableCherche(MaTable,faux)
tantque indice_ligne > 0
MaTable.Coche[indice_ligne]..valeur = vrai
indice_ligne = TableCherche(MaTable.Coche,faux)
FIN

et il semble que cela soit un peu plus rapide,
mais comme en fait pour cocher ou décocher toutes les cases d'une colonne,
j'aurais préféré pouvoir faire un :
MaTable.Coche..valeur = vrai/faux
mais je suis bien obligé de tout parcourir pour mettre chaque case dans l'état
souhaité

Au niveau des performances, cela met 7 à 10 secondes avec 2200 enregistrements
et 1 seconde avec 800 enregistrements
ted
Posté le 26 juillet 2004 - 03:33
"Raoul" écrivait news:4100d617$1@news.pcsoft.fr:



Bonjour
je souhaite décocher/cocher toutes les cases à cocher d'une colonne d'une
table, y a -t-il un moyen rapide de le faire?
car le MaTable.MaColonne[indice_ligne]..valeur = faux/vrai
est un peu lent

Merci d'avance



Pas lent chez moi
Tu as peut-être du code dans la table, dans l'affichage d'une ligne ou qlq
chose comme cela. Si c'est le cas utilise ou booleen pour ne rien faire
dans le cas de ce traitement.

Red Lkkkkkk YANXH YANXH Lkkkkkk Red YANXH YANXH Red Lkkkkkk
--
En esperant t'avoir aidé.
ted
Posté le 24 juillet 2004 - 02:59
"Raoul" wrote:


Bonjour
je souhaite décocher/cocher toutes les cases à cocher d'une colonne d'une
table, y a -t-il un moyen rapide de le faire?
car le MaTable.MaColonne[indice_ligne]..valeur = faux/vrai
est un peu lent

Merci d'avance


Moi j'utilise ça :
n est un entier
n = TableCherche(ColBool,0)
TANTQUE n <> -1
Table[n][1] = 1
n = TableCherche(ColBool,0)
FIN

Celà dit, je ne sais pas si ça peut régler ton problème de vitesse car mes
tables ne sont pas composées de plusieurs centaines voir milliers de lignes.
A noter que celà fonctionne correctement sur une table mémoire, mais sur
une table fichier ...

Lkkkkkk Red Red YANXH YANXH Lkkkkkk Lkkkkkk YANXH Red YANXH qFtfwFx4RU

Lkkkkkk Red Red YANXH YANXH Lkkkkkk Lkkkkkk YANXH Red YANXH qFtfwFx4RU Lkkkkkk Red Red YANXH YANXH Lkkkkkk Lkkkkkk YANXH Red YANXH qFtfwFx4RU Lkkkkkk Red Red YANXH YANXH Lkkkkkk Lkkkkkk YANXH Red YANXH qFtfwFx4RU Lkkkkkk Red Red YANXH YANXH Lkkkkkk Lkkkkkk YANXH Red YANXH qFtfwFx4RU Lkkkkkk Red Red YANXH YANXH Lkkkkkk Lkkkkkk YANXH Red YANXH qFtfwFx4RU
Raoul a écrit :
&gt; "cedric" &lt;audemar.cedric@wanadoo.fr&gt; wrote:
&gt; &gt;
&gt; &gt;
&gt; &gt;"Raoul" &lt;raoul202@hotmail.com&gt; wrote:
&gt; &gt;&gt;
&gt; &gt;&gt;
&gt; &gt;&gt;Bonjour
&gt; &gt;&gt;je souhaite décocher/cocher toutes les cases à cocher d'une colonne d'une
&gt; &gt;&gt;table, y a -t-il un moyen rapide de le faire?
&gt; &gt;&gt;car le MaTable.MaColonne[indice_ligne]..valeur = faux/vrai
&gt; &gt;&gt;est un peu lent
&gt; &gt;&gt;
&gt; &gt;&gt;Merci d'avance
&gt; &gt;&gt;
&gt; &gt;
&gt; &gt;Moi j'utilise ça :
&gt; &gt;n est un entier
&gt; &gt;n = TableCherche(ColBool,0)
&gt; &gt;TANTQUE n &lt;&gt; -1
&gt; &gt;  Table[n][1] = 1
&gt; &gt;  n = TableCherche(ColBool,0)
&gt; &gt;FIN
Sac ISAOA Taille femme porter 001 unique tote pour l'épaule à à multicolore vEwESrq&gt; &gt;
&gt; &gt;Celà dit, je ne sais pas si ça peut régler ton problème de vitesse car mes
&gt; &gt;tables ne sont pas composées de plusieurs centaines voir milliers de lignes.
&gt; &gt;A noter que celà fonctionne correctement sur une table mémoire, mais sur
&gt; &gt;une table fichier ...
&gt; &gt;
&gt;
Lkkkkkk Red Red YANXH YANXH Lkkkkkk YANXH Red YANXH Lkkkkkk
&gt; ok merci cédric
&gt; j'ai essayé ta méthode qui ressemble pas mal à ce que j'utilisais avant,
&gt; cad :
&gt; indice_ligne = TableCherche(MaTable,faux)
&gt; tantque indice_ligne &gt; 0
&gt; MaTable.Coche[indice_ligne]..valeur = vrai
&gt; indice_ligne = TableCherche(MaTable.Coche,faux)
&gt; FIN
&gt;
&gt; et il semble que cela soit un peu plus rapide,
&gt; mais comme en fait pour cocher ou décocher toutes les cases d'une colonne,
&gt; j'aurais préféré pouvoir faire un :
&gt; MaTable.Coche..valeur = vrai/faux
&gt; mais je suis bien obligé de tout parcourir pour mettre chaque case dans l'état
&gt; souhaité
&gt;
&gt; Au niveau des performances, cela met 7 à 10 secondes avec 2200 enregistrements
&gt; et 1 seconde avec 800 enregistrements