PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Calcul personnalisé dans une table et colonnes clonées
Calcul personnalisé dans une table et colonnes clonées
Iniciado por Pierrot, 14,oct. 2020 22:35 - 4 respuestas
Miembro registrado
3 mensajes
Publicado el 14,octubre 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 !
Miembro registrado
4.365 mensajes
Publicado el 15,octubre 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
Miembro registrado
3 mensajes
Publicado el 15,octubre 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.
Miembro registrado
4.365 mensajes
Publicado el 15,octubre 2020 - 14:14
MonParent ou MonParent..Nom peut être

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
3 mensajes
Publicado el 16,octubre 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 !