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

[WD9] Calcul dans un champ table

3 réponses
Avatar
Eric
Bonjour,

Dans une table d'une fenêtre, j'ai un champ table dans laquelle j'ai des
données suviantes:
Produit1 Auto1 3
Produit1 Auto2 6
Produit1 Auto3 1
Produit1 TotalAuto 10
Produit2 Vélo1 10
Produit2 Vélo2 15
Produit2 Vélo3 2
Produit2 Vélo4 2
Produit2 TotalVélo 29

Tous les 3 à 10 enregistrements, selon le critère de la colonne "Produit",
je dois afficher le total des pièces. (TotalAuto, TotalVélo)
J'aimerai que dès qu'une modification a lieu, le total soit mis à jour.

J'ai regardé les différentes fonctions de l'aide en ligne, mais je n'ai pas
trouvé la solution idéale.
Dans quelle direction me conseillez-vous de chercher ?

D'avance merci
Eric

3 réponses

Avatar
Michel HERRSCHER
Bonjour,

Dans un message Eric disait :

Bonjour,

Dans une table d'une fenêtre, j'ai un champ table dans laquelle j'ai
des données suviantes:
Produit1 Auto1 3
Produit1 Auto2 6
Produit1 Auto3 1
Produit1 TotalAuto 10
Produit2 Vélo1 10
Produit2 Vélo2 15
Produit2 Vélo3 2
Produit2 Vélo4 2
Produit2 TotalVélo 29

Tous les 3 à 10 enregistrements, selon le critère de la colonne
"Produit", je dois afficher le total des pièces. (TotalAuto,
TotalVélo)
J'aimerai que dès qu'une modification a lieu, le total soit mis à
jour.

J'ai regardé les différentes fonctions de l'aide en ligne, mais je
n'ai pas trouvé la solution idéale.
Dans quelle direction me conseillez-vous de chercher ?




table mémoire avec calcul à la menotte ...

--
Michel HERRSCHER CONSULTANT
Président WINDASSO - Association des utilisateurs WxxDEV(c)
Tel : +33450870912 Fax:+33450871741
http://www.windasso.org
Avatar
Eric
J'ai trouvé une solution en utilisant les fonctions TableOccurence, Table
Select et TableSelectPlus.
Il me reste encore un problème.
J'ai dû créer un bouton séparé pour effectuer la recalculation.
L'idéal serait de pouvoir commander la recalculation à la sortie de la
ligne.

Mais comme pour recalculer je vais visiter toutes les autres lignes, le WD
me l'interdit. Car pour lui je suis toujours dans la ligne que je viens de
modifier. (Il est pas d'accord !!!!!)

Merci

Code du boutonRecalcul pour info
nEnregTotal=0
nEnreg = TableSelect(TABLEREL)
nEnregTotal = TableOccurrence(TABLEREL)
i est un entier
mTotal, mSousTotal est un monétaire
i=1
mTotal=0
mSousTotal =0
BOUCLE
SI (i > nEnregTotal) ALORS SORTIR
TableSelectPlus(TABLEREL,i)
SELON ColType
CAS 20
mTotal += Total
mSousTotal += Total
TableEnregistre(TABLEREL)
CAS 91
Total= mTotal *(1+TVA)
TableEnregistre(TABLEREL)
CAS 92
Total= mTotal *(0+TVA)
TableEnregistre(TABLEREL)
CAS 93
Total= mTotal *(1+0)
TableEnregistre(TABLEREL)
FIN
i++
FIN
Avatar
Adrien
ca depend si tu est sur uen table mémoire ou une table fichier.

sur une table mémoire c'est plus facile :

POUR i = 1 a ListeOccurence(TABLEREL,toTotal)
SELON ColType
CAS 20
mTotal[i] += Total[i]
mSousTotal[i] += Total[i]
CAS 91
Total[i]= mTotal[i] *(1+TVA)
CAS 92
Total[i]= mTotal[i] *(0+TVA)
CAS 93
Total[i]= mTotal[i] *(1+0)
FIN
FIN

et pour une table fichier

POUR i = 1 a ListeOccurence(TABLEREL,toTotal)
TABLEREL = i
SELON ColType
CAS 20
mTotal += Total
mSousTotal += Total
TableEnregistre(TABLEREL)
CAS 91
Total= mTotal *(1+TVA)
TableEnregistre(TABLEREL)
CAS 92
Total= mTotal *(0+TVA)
TableEnregistre(TABLEREL)
CAS 93
Total= mTotal *(1+0)
TableEnregistre(TABLEREL)
FIN

A+
Adrien.

"Eric" a écrit dans le message de news:
423c2857$
J'ai trouvé une solution en utilisant les fonctions TableOccurence, Table
Select et TableSelectPlus.
Il me reste encore un problème.
J'ai dû créer un bouton séparé pour effectuer la recalculation.
L'idéal serait de pouvoir commander la recalculation à la sortie de la
ligne.

Mais comme pour recalculer je vais visiter toutes les autres lignes, le WD
me l'interdit. Car pour lui je suis toujours dans la ligne que je viens de
modifier. (Il est pas d'accord !!!!!)

Merci

Code du boutonRecalcul pour info
nEnregTotal=0
nEnreg = TableSelect(TABLEREL)
nEnregTotal = TableOccurrence(TABLEREL)
i est un entier
mTotal, mSousTotal est un monétaire
i=1
mTotal=0
mSousTotal =0
BOUCLE
SI (i > nEnregTotal) ALORS SORTIR
TableSelectPlus(TABLEREL,i)
SELON ColType
CAS 20
mTotal += Total
mSousTotal += Total
TableEnregistre(TABLEREL)
CAS 91
Total= mTotal *(1+TVA)
TableEnregistre(TABLEREL)
CAS 92
Total= mTotal *(0+TVA)
TableEnregistre(TABLEREL)
CAS 93
Total= mTotal *(1+0)
TableEnregistre(TABLEREL)
FIN
i++
FIN