PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → champ qui se recalcule pas à cause d'un tableau
champ qui se recalcule pas à cause d'un tableau
Débuté par G. Tenthorey, 28 déc. 2006 23:46 - 3 réponses
Posté le 28 décembre 2006 - 23:46
Bonjour,

Suite à ma question de l'autre jour je me permet de vous reformuler une nouvelle question car j 'ai pu cibler mon problème.

J'ai effectué 2 captures pour mieux démontrer

image1
http://img163.imageshack.us/my.php…
image2
http://img163.imageshack.us/my.php…

Ce que je fait c'est que lorsque j'ouvre une nouvelle fenêtre de facture , les champs tva et total contiennent chacun déja un nombre ( ce qui est faux ) il doit calculer ces deux champs en fonction de ce qui est affiché dans le tableau

C'est à dire si le tableau est vide, alors total = 0 et tva = 0 ce qui est logique
Actuellement lorsque j'ouvre une nouvelle fenêtre avec le tableau qui est vide, les nombre affichés dans le champ total et dans le le champ tva correspondent toujours au total de toute la table concernée ( et pas le total de ce qu'il y a dans mon tableau )


Regardez ce qui se passe sur la 2ème image, lorsque j'ajoute quelque chose dans le tableau, hop les 2 champs se calculent et juste.
( le montant total et tva viennent juste pour autant que le tableau ne soit pas vide )


Voici si jamais le code de l'ouverture de ma fenêtre
http://img158.imageshack.us/my.php…

Précision, dans les deux champs il y a une requête qui est effectué du type sum

En espérant qu'il sera possible de trouver une solution,

merci d'avance
Posté le 29 décembre 2006 - 08:52
Bonjour,

Si bien compris, Vous besoin seullement dissocier les champs de leurs rubriques fichier, ce sont des champs calculés.

Bon Dév.

CF
Posté le 29 décembre 2006 - 09:41
Bonjour,
pour faire simple:
vous pouvez conditionner votre traitement de calcul au fait que la table
source contienne au moins une ligne.

par ex:
si tableoccurence(NomTableSource)>0 alors
//effectuer les requetes de calcul
...
sinon
champ1=0
champ2=0
fin


G. Tenthorey a écrit :
Bonjour,

Suite à ma question de l'autre jour je me permet de vous reformuler une nouvelle question car j 'ai pu cibler mon problème.

J'ai effectué 2 captures pour mieux démontrer

image1
http://img163.imageshack.us/my.php…
image2
http://img163.imageshack.us/my.php…

Ce que je fait c'est que lorsque j'ouvre une nouvelle fenêtre de facture , les champs tva et total contiennent chacun déja un nombre ( ce qui est faux ) il doit calculer ces deux champs en fonction de ce qui est affiché dans le tableau

C'est à dire si le tableau est vide, alors total = 0 et tva = 0 ce qui est logique
Actuellement lorsque j'ouvre une nouvelle fenêtre avec le tableau qui est vide, les nombre affichés dans le champ total et dans le le champ tva correspondent toujours au total de toute la table concernée ( et pas le total de ce qu'il y a dans mon tableau )


Regardez ce qui se passe sur la 2ème image, lorsque j'ajoute quelque chose dans le tableau, hop les 2 champs se calculent et juste.
( le montant total et tva viennent juste pour autant que le tableau ne soit pas vide )


Voici si jamais le code de l'ouverture de ma fenêtre
http://img158.imageshack.us/my.php…

Précision, dans les deux champs il y a une requête qui est effectué du type sum

En espérant qu'il sera possible de trouver une solution,

merci d'avance








Posté le 29 décembre 2006 - 13:00
Merci beaucoup ça fonctionne à présent, je me suis calqué sur vos information merci à tous

Voici ce que j'ai fais.

J'ai fait ceci pour voir si il y a des lignes dans la table lors de l'ouverture de ma fenêtre.

champ_nbre_delignes = TableOccurrence(Table_T_facture_lignes_detail)

Le champ m'affiche " 0 " il y avait bien aucune ligne

Ensuite j 'ai fait ça

SI TableOccurrence(Table_T_facture_lignes_detail)=0 ALORS
champ_total_montant_facture= 0
champ_total_tva = 0
SINON

bResExec est un booléen=Faux
bResExec=HExécuteRequête(Requete_facture_total_facture, hRequêteDéfaut)
SI bResExec ALORS
champ_total_montant_facture=Requete_facture_total_facture.la_somme_ar_total_prix
HAnnuleDéclaration(Requete_facture_total_facture)
SINON
champ_total_montant_facture= 0
FIN

champ_nbre_delignes = TableOccurrence(Table_T_facture_lignes_detail)

bResExec2 est un booléen=Faux
bResExec2=HExécuteRequête(REQ_factures_total_tva, hRequêteDéfaut)
SI bResExec2 ALORS
champ_total_tva=REQ_factures_total_tva.la_somme_ar_total_tva
HAnnuleDéclaration(REQ_factures_total_tva)
SINON
champ_total_tva = 0
FIN

FIN

Table_T_facture_lignes_detail = HFiltreIdentique(T_facture_detail, T_facture_detail.fact_no, champ_no_facture)
TableAffiche(Table_T_facture_lignes_detail)

Et ca marche très bien à présent, je vous remercie.