|
| somme d'une colonne table fichier |
| Débuté par defonpre.alain, 17 jan. 2005 16:40 - 4 réponses |
| |
| | | |
|
| |
| Posté le 17 janvier 2005 - 16:40 |
WinDev 5.5 Bonjour à tous et merci de votre aide, voici mon soucis :
Eléments
1 Table fichiers nomée : "MaTable" (avec des colonnes fichiers et d'autres calculées) 1 Champ d’affichage nomée : "AffichTotalHt"
Une des colonne nomée "Ht" est de type calculée, je souhaite afficher le total de cette colonne dans un champ nomé "AffichTotalHt"
J'ai saisi le code ci-dessous dans la table (affichage d’une ligne de la table) : --------------------------------------------- i est un entier somme est un reel pour i=1 à tableoccurrence("MaTable",1) somme = somme + Ht[i] fin AffichTotalHt = somme ----------------------------------------------
Cela fonctionne, mais le calcul s’arrête à ce qui est visible dans la table (à l’ecran) Il faut être placer sur le dernier enregistrement de la table pour que total de tous les enregistrements de la colonne Ht soient pris en compte. Ma question: comment faire pour que le calcul se fasse sur la totalité des enregistrements de la table (enregistrements visibles et hors de vision) quelque soit la position de l'enregistrement selectionné.
Par avance, je vous remercie de bien vouloir, si cela est possible, me présenter la boucle de traitement précise (parenthèses, guillemets, points et virgules) car j'ai déja essayé diverses boucles et cela ne fonctionnent toujours pas.
Alain |
| |
| |
| | | |
|
| | |
| |
| Posté le 17 janvier 2005 - 17:12 |
Essayez ceci :
I,Z sont des entiers; Somme est un reel I=1; Z=tableoccurrence(MaTable)+1 Tantque I<Z Somme=Somme+Ht[I]; I++ FIN AffichTotalHT=Somme
Cela donne quoi? |
| |
| |
| | | |
|
| | |
| |
| Posté le 17 janvier 2005 - 22:37 |
Thierry,
Tout d'abbord, merci de votre aide précieuse, votre code accelére de façon significative l'affichage du résultat (AffichTotalHT=Somme) et il me servira à l'avenir, mais après essais, le résultat se fait toujours sur les enregistrements présents à l'écran.
Dans cette table, à l'ouverture de la fenêtre il y a 22 enregistrements à l'écran, mais j'en est saisis 23 en tout. J'ai complété de votre code pour compter le nombre d'enregistrements total de la table en ajoutant en sortie de boucle:
//I,Z sont des entiers; Somme est un reel //I=1; Z=tableoccurrence(MaTable)+1 //Tantque I // Somme=Somme+Ht[I]; I++ //FIN //AffichTotalHT=Somme ------------------------------------------------- NbEnregis = Z ------------------------------------------------- et du coup, je connais le nombre d'enregistremets, soit 23, ça c'est bon, y'a du progrés !! Auriez-vous une autre idée complémentaire, vraiment ça m'arrangerai ? D'avance merci.
Alain |
| |
| |
| | | |
|
| | |
| |
| Posté le 18 janvier 2005 - 00:14 |
Bonsoir As tu essayé d ajouter un tableselectplus dans ta boucle
I,Z sont des entiers; Somme est un reel I=1; Z=tableoccurrence(MaTable)+1 Tantque I Somme=Somme+Ht[I]; I++ TableSelectPlus(MaTable,I)
FIN AffichTotalHT=Somme Voir également le TablePosition En espérant t'avoir aiguillé Bon Développement
"alain" <defonpre.alain@laposte.net> a écrit dans le message de news: 41ec178a@news.pcsoft.fr...
Thierry,
Tout d'abbord, merci de votre aide précieuse, votre code accelére de façon significative l'affichage du résultat (AffichTotalHT=Somme) et il me servira à l'avenir, mais après essais, le résultat se fait toujours sur les enregistrements présents à l'écran.
Dans cette table, à l'ouverture de la fenêtre il y a 22 enregistrements à
l'écran, mais j'en est saisis 23 en tout. > J'ai complété de votre code pour compter le nombre d'enregistrements total de la table en ajoutant en sortie de boucle:
//I,Z sont des entiers; Somme est un reel //I=1; Z=tableoccurrence(MaTable)+1 //Tantque I // Somme=Somme+Ht[I]; I++ //FIN //AffichTotalHT=Somme ------------------------------------------------- NbEnregis = Z ------------------------------------------------- et du coup, je connais le nombre d'enregistremets, soit 23, ça c'est bon,
y'a du progrés !!
Auriez-vous une autre idée complémentaire, vraiment ça m'arrangerai ? D'avance merci.
Alain
|
| |
| |
| | | |
|
| | |
| |
| Posté le 18 janvier 2005 - 09:39 |
Bjr,
ta colonne HT est-elle renseignée lors de l'ajout d'une ligne dans la table ou est-elle calculée lors de l'affichage d'une ligne ? Si c'est le second cas, c'est normal que ton total ne se fasse que sur les lignes déjà affichées, donc celle dont la colonne HT est renseignée
A+ |
| |
| |
| | | |
|
| | | | |
| | |
|