PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → calculs ds table sur ouverture d'une fenêtre
calculs ds table sur ouverture d'une fenêtre
Iniciado por fred, 19,ago. 2005 13:13 - 5 respuestas
Publicado el 19,agosto 2005 - 13:13
bonjour,

losque j'ouvre une fenêtre contenant una table, je souhaiterai que les calculs se refassent dès cette ouverture.
Voici le code de la table:

nLigne est un entier
nLigne = TableCherche(COL_REF,COL_REF)
//si cette référence existait ds la table, on regroupe les lignes
SI (nLigne <> -1 ET nLigne<>Table) ALORS
COL_QTE += COL_QTE[nLigne]
COL_PUHT = nRecherchePrix(COL_REF, COL_QTE)
// COL_PU = COL_PUHT*(1+col_tva/100)
COL_TOTAL = COL_QTE*COL_PUHT
TableSupprime(Table,nLigne)
FIN

Pas de problème losque je suis en saisie, le calcul de la colonne "COL_TOTAL" se fait bien. Mais si je ré-ouvre cette fen^tre pour modification, la colonne "COL_TOTAL" n'est pas calculée et il faut alors cliquer sur une cellule de la table pour que les calculs s'effectuent.

Comment puis-je faire?

merci d'avance

cdt

fred
Publicado el 19,agosto 2005 - 13:44
salut

en ouverture de fenêtre : ExecuteTraitement(Table,trt.....) // mettre le traitement où se trouve le calcul du total
Publicado el 19,agosto 2005 - 15:07
bonjour,

tu veux dire quelque chose comme ça:

ExécuteTraitement(Table,trtAffichageLigne,COL_TOTAL=COL_PUHT*COL_PUHT)

merci

fred
Publicado el 19,agosto 2005 - 18:58
Non, la synthaxe n'est pas bonne
mais dis-moi, quand tu ouvre la fenêtre, tu dois bien remplir la table non ?
alors pourquoi ne pas calculer le total quand tu remplis la table ?
Publicado el 20,agosto 2005 - 04:33
Bonjour,
La table est remplie par quelle méthode ? ( table fichier ou table memoire ?)
Si la table (memoire) est remplie par une procedure local donc à la fin ou dans le traitement de la procedure metre le calcul de la colonne total.
sinon, Je pense que tu peut créé une procedure local ou tu mettras ton code de calcul exemple : plCalculTotal(), et dans le traitement d'initialisation de la fenetre mettre la procedure : plCalculTotal()



A++

Ali
Publicado el 22,agosto 2005 - 11:36
bonjour,

vous aviez raison, j'ais créé une petite procédure sur l'ouverture de la fenêtre:

//calcul des totaux
i est un entier
POUR i=1 A TableOccurrence(Table)
COL_TOTAL[i]=COL_PUHT[i]*COL_QTE[i]
FIN

cela fonctionne

merci encore

fred