PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Calcul personnalisé dans une table et colonnes clonées
Calcul personnalisé dans une table et colonnes clonées
Débuté par Pierrot, 14 oct. 2020 22:35 - 4 réponses
Membre enregistré
3 messages
Posté le 14 octobre 2020 - 22:35
Bonjour,

J'ai une table hiérarchique dans la laquelle j'ai une colonne (cachée) me servant de modèle que je clone selon certains paramètres (entre 0 et x fois).
J'ai ajouté des calcul de totaux à chaque création de colonne à l'aide de TableFormuleAjoute et ça fonctionne ... de la même manière pour chaque colonne.

Mon problème vient du fait que je veux personnaliser le total en fonction de la colonne clonée. Mais dans les procédures déclarées et appelées par TableFormuleAjoute, je ne sait pas comment récupérer le nom de la colonne pour laquelle le total est entrain d'être calculé.

Est-ce que quelqu'un a une idée ?

Merci d'avance !
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 15 octobre 2020 - 07:25
Bonjour,
Tu as bien donné un nom à ton champ. Il suffit de récupérer ce nom et de le passe dans TableFormuleAjoute.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
3 messages
Posté le 15 octobre 2020 - 09:56
Ha, merci pour la réponse, mais c'est pas exactement ce que je cherche.
Voici mon code de création des colonnes :
SI PAS ChampExiste(sCol) ALORS
ChampClone(TABLE_ressources.COL_template,sCol)
{sCol,indChamp}..Visible = Vrai
{sCol,indChamp}..Titre = gtaRessources[sNom].nom
TableFormuleAjoute("TABLE_ressources."+sCol,"Total",totalInit,totalPlus,totalFin)
FIN


dans le cas ou il y a 3 colonnes de créé de cette manière, toutes auront les même procédures utilisées pour les cumul.
Ce que je cherche, c'est à l'intérieur de la procédure totalFin, de récupérer le nom de la colonne en train d'être totalisée.
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 15 octobre 2020 - 14:14
MonParent ou MonParent..Nom peut être

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
3 messages
Posté le 16 octobre 2020 - 09:20
Non, ça n'a pas marché, mais j'ai réussi à surmonter le problème en compliquant un peu les choses
- rajout d'une variable de type procédure dans la structure stockant les colonnes à afficher
- La procédure locale totalFin servant au calcul final de total est définie en tant que Closure (excellent article expliquant et donnant des exemples : https://johjo.developpez.com/tutoriels/windev/procedures-internes-et-closures/…)
- lors de l'affectation d'une instance de ma structure, la propriété de type variable est affectée avec cette procédure totalFin (qui accepte le nom de colonne en paramètre)
- cette variable de type procédure est passée en paramètre à la fonction TableFormuleAjoute

Bref, c'est plus compliqué que ça n'a le droit de l'être, mais ça marche !

Merci Voroltinquo pour tes suggestions !