PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → calcul dans une table mappé sur un classe tableau
calcul dans une table mappé sur un classe tableau
Débuté par GB, 28 mar. 2024 19:29 - 5 réponses
Membre enregistré
328 messages
Popularité : +8 (10 votes)
Posté le 28 mars 2024 - 19:29
Bonsoir à tous,

Question surement un peu bête...

J'ai des classes d'objet représentant une "ligne" (exemple Mcomposant)
J'ai des classes tableau d'objet (exemple CTableauxComposant)

Dans mes fenêtres, je vais avoir des tables et des zone répétées qui vont être mappées sur ces tableaux.

Je dois effectuer des calculs en sortie de chaque colonne ou champs.

Dans la version précédente de mon appli (codée en procédurale), je faisais ces calculs via une procédure locale à la fenêtre et dans le code de sortie de mes colonnes de table.
A présent je ramène toutes ces procédures dans les méthodes de mes classes.

Je ne vois pas trop comment coder ma table en utilisant mes méthodes de classe pour qu'en sortie de colonne mes autres colonnes soit mise a jour ?
un table enregistre + table affiche me fait sortir de la saisie de ligne...

J'ai l'impression que le code de calcul doit rester dans la table ? et le faire manuellement dans chaque colonne ?

merci d'avance
Membre enregistré
328 messages
Popularité : +8 (10 votes)
Posté le 29 mars 2024 - 18:09
Up
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 29 mars 2024 - 18:32
Bonjour,

Dans ce genre de cas, je mappe les colonnes de ma table sur une propriété qui renvoie le résultat du calcul.

Exemple :
j'ai une classe CFacture qui contient un tableau de CLigneFacture

Pour afficher le total de la facture, je crée une propriété de la classe CFacture (ex: p_moTotalFactureHTVA)
Cette propriété parcoure le tableau des lignes pour en faire le total et le renvoyer
Lors de l'affichage de la table par tableaffiche, le mapping va interroger la propriété pour avoir le résultat.

Il faut juste bien veiller, après les saisies, que le contenu de la classe soit bien à jour avec ce qui a été saisi.

C'est un peu fastidieux au début mais c'est très fiable. La fenêtre ne fait presque rien d'autre que d'accepter les saisies et afficher le contenu des variables.

Cordialement,
Pierre

--
Pierre
Membre enregistré
328 messages
Popularité : +8 (10 votes)
Posté le 29 mars 2024 - 19:34
Bonsoir,

Je vois ! Dans ton exemple tu parles d'un total de facture, je n'ai pas de soucis avec ça car c'est sur un champ saisie ou libellé.

La je parle de saisie des lignes facture :

Dans la table qui affiche les lignes facture, si j'ai par exemple :

col_prix_achat
col_coeff_vente
col_prix vente (prix achat x coeff vente)

Y a t il une solution pour faire qu'en sortie de col coeff_vente, la colonne prix_vente soit mise a jour, sans passer par un tableaffiche qui provoque la sortie de saisie de la ligne (car il y a d'autres colonnes a renseigner).

l'affection manuelle est elle la seule solution :

code en sortie de col coeff_vente
clmaligne.p_coeff_vente = 1,5
col_prix_vente = clmaligne.p_prix_achat

avec code de la propriété affectation de p_coeff_achat
m_moprix_vente = m_moprix_achat * m_rcoeff_vente
Membre enregistré
546 messages
Posté le 30 mars 2024 - 10:15
Bonjour,
vous précisez "tableaffiche qui provoque la sortie de saisie de la ligne".
Après avoir mémorisé la cellule de la table dans une variable, un DonneFocus ou RepriseSaisie après le TableAffiche ne fait-il pas l'affaire ?
Cdlt
Membre enregistré
328 messages
Popularité : +8 (10 votes)
Posté le 30 mars 2024 - 10:40
Bonjour,


Je vais essayer