PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Parcourir une table pour calculs, sans bouger la ligne sélecionnée
Parcourir une table pour calculs, sans bouger la ligne sélecionnée
Débuté par e3descha, 25 oct. 2005 18:46 - 5 réponses
Posté le 25 octobre 2005 - 18:46
Bonsoir,

Voila, j'ai des calculs à faire depuis les données saisies dans une table mémoire. Le problème c'est que mes calculs doivent se faire en cours de saisie.

Existe t'il un moyen de réaliser des calculs reprenants toutes les lignes d'une table, sans que cela géne la saisie en cours.

Pour moi, le seul moyen de faire mes calculs est :

i est un entier = 1
maSomme est un entier

matable..affichageactif = faux

boucle(matable..occurences)
tableselectplus(matable, i)
masomme += matable.rubrique[i]
i++
fin

matable..affichageactif = vrai


Donc forcement, si je fait ça pendant la saisie, il y à de fortes chances que l'utilisateur péte un cable ;-)

Pour l'instant j'enregistre les données à chaque sortie de ligne, et je réalise les calculs sur les fichiers Fic correspondants à ma table, mais ça fait beaucoup d'accés réseau pour rien.

Merci d'avance,

Seb,
Posté le 25 octobre 2005 - 23:20
je n'ai pas essayé, mais avec les totaux automatiques, ça ne marche pas?
Posté le 25 octobre 2005 - 23:50
bonjour

1)Faire un calcul à l'affichage de la table-> var_somme
2)à chaque entrée dans une ligne -> mem_var_somme
=var_somme-la_cellule_en_cours
3)en sortie de ligne -> var_somme=
mem_var_somme+la_cellule_que_tu_viens_de_quitter
et voilou

jean-daniel


2501 a exposé le 25/10/2005 :
Bonsoir,

Voila, j'ai des calculs à faire depuis les données saisies dans une table
mémoire. Le problème c'est que mes calculs doivent se faire en cours de
saisie.

Existe t'il un moyen de réaliser des calculs reprenants toutes les lignes
d'une table, sans que cela géne la saisie en cours.

Pour moi, le seul moyen de faire mes calculs est :

i est un entier = 1
maSomme est un entier

matable..affichageactif = faux

boucle(matable..occurences)
tableselectplus(matable, i)
masomme += matable.rubrique[i]
i++
fin

matable..affichageactif = vrai


Donc forcement, si je fait ça pendant la saisie, il y à de fortes chances que
l'utilisateur péte un cable ;-)

Pour l'instant j'enregistre les données à chaque sortie de ligne, et je
réalise les calculs sur les fichiers Fic correspondants à ma table, mais ça
fait beaucoup d'accés réseau pour rien.

Merci d'avance,

Seb,



--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Posté le 26 octobre 2005 - 08:37
Bonjour,

Ton tableselectplus est inutile si tu précises l'index de la ligne en cours....

Soit tu fais :

boucle(matable..occurences)
tableselectplus(matable, i)
masomme += matable.rubrique[i]
i++
fin


et là ton utilisateur devient fou comme tu dis

Soit tu fais

pour i= 1 to tableoccurence(matable)
masomme += matable.rubrique[i]
fin

et il est inutile de se "déplacer" avec le tableselectplus, cela se passera en mémoire uniquement.

Bon dev

Fred
Posté le 26 octobre 2005 - 08:56
salut
surtout ne pas faire tableselectplus

pour i=1 à matable..occurrence
masomme += matable.rubrique[i]
fin

cela marche très bien
Posté le 26 octobre 2005 - 18:06
Merci de vos réponses :

Mémoriser les valeurs dans des variables en temps réel, c'est exclu dans mon cas vu le nombre et la complexité des calculs. Si je choisi cette solution, je crée directement une variable de type tableau qui sera une image de ma table.

Par contre, pour le tableselectplus, j'ai pas essayé depuis la version 9, mais je suis certain à 90% que si on accède par son indice à une ligne qui n'est pas affichée, on à un joli plantage...

En écrivant ça je me rends compte que c'est le cas sur une table fichier, mais peut être pas sur une table mémoire.... je vais tester de ce pas.

En tout cas merci.