PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e 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 guest, ago., 19 2005 1:13 PM - 5 respostas
Publicado em agosto, 19 2005 - 1:13 PM
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 em agosto, 19 2005 - 1:44 PM
salut

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

tu veux dire quelque chose comme ça:

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

merci

fred
Publicado em agosto, 19 2005 - 6:58 PM
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 em agosto, 20 2005 - 4:33 AM
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 em agosto, 22 2005 - 11:36 AM
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