PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → calcul dans une table mappé sur un classe tableau
calcul dans une table mappé sur un classe tableau
Iniciado por GB, mar., 28 2024 7:29 PM - 5 respostas
Membro registado
328 mensagems
Popularité : +8 (10 votes)
Publicado em março, 28 2024 - 7:29 PM
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
Membro registado
328 mensagems
Popularité : +8 (10 votes)
Publicado em março, 29 2024 - 6:09 PM
Up
Membro registado
152 mensagems
Popularité : +1 (1 vote)
Publicado em março, 29 2024 - 6:32 PM
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
Membro registado
328 mensagems
Popularité : +8 (10 votes)
Publicado em março, 29 2024 - 7:34 PM
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
Membro registado
546 mensagems
Publicado em março, 30 2024 - 10:15 AM
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
Membro registado
328 mensagems
Popularité : +8 (10 votes)
Publicado em março, 30 2024 - 10:40 AM
Bonjour,


Je vais essayer