PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → TCD avoir une colonne calculée en %
TCD avoir une colonne calculée en %
Débuté par priv!rzzn07ry+qryr-rM201+616nyr0r4tvr5+p1z, 15 jan. 2025 13:45 - 1 réponse
Membre enregistré
1 message
Posté le 15 janvier 2025 - 13:45
Bonjour à tous

J'ai un tableau TCD qui me fait la somme des augmentations dans une colonne
Et la somme des salaires dans une autre
J'aimerai avoir une 3' colonne calculée, qui me ferait la somme des augmentations / la somme des salaires

C'est normalement possible, un exemple a été publié dans la LST 120, que je n'ai pas malheureusement

Si quelqu'un peut m'aider sur le sujet
Merci
Membre enregistré
175 messages
Posté le 15 janvier 2025 - 15:27
Bonjour

Je vois votre problème, vous souhaiter avoir un tableau croisé dynamique, j'ai beaucoup de solution sur les tableaux pour vous

1. je vois seulement 3 colonne sur votre souhait, vous pouvez dynamiser les résultats, pour ce cas, voilà un programme pour vous, ce n'est pas simple mais il s'agit d'une piste dont vous pouvez utilisez

// EDD (01/25) : créer une table avec 5 colonne, une 1 er colonne identifiant invisible de type numérique

// EDD (01/25) : créer un champ bouton avec ce programme ci - dessous
LOCAL
cSalariés is ClSalariés
tbSalariés is tableau of ClSalariés = cSalariés:Liste()
FOR i = 1 _TO_ TableauOccurrence(tbSalariés)
TableAjouteLigne(TBL_Tcd, i, tbSalariés[i]:m_sMatricule, tbSalariés[i]:m_mSomme_Augmentation, ...
tbSalariés[i]:m_mSomme_Salaire, tbSalariés[i]:m_nPourcentage)
END
TableSelectMoins(TBL_Tcd)
Info("La liste d'information des salariés est réussie.")

// EDD (01/25) : créer une nouvelle classe ClSalariés
ClSalariés est une Classe
m_sMatricule is string
m_mSomme_Augmentation is monétaire
m_mSomme_Salaire is monétaire
m_nPourcentage is numérique
FIN

// EDD (01/25) : créer une nouvelle méthode Liste() dans la classe ClSalariés
// EDD (01/25) : vous pouvez faire des récupérations dans un fichier HFSQL ou autre ... par exemple
PROCÉDURE Liste()
LOCAL
eEntier is entier
tbSalariés is tableau of ClSalariés
eEntier = TableauAjouteLigne(tbSalariés)
tbSalariés[eEntier]:m_sMatricule = "A001"
tbSalariés[eEntier]:m_mSomme_Augmentation = "500"
tbSalariés[eEntier]:m_mSomme_Salaire = "1000"
tbSalariés[eEntier]:m_nPourcentage = tbSalariés[eEntier]:m_mSomme_Augmentation / tbSalariés[eEntier]:m_mSomme_Salaire
eEntier = TableauAjouteLigne(tbSalariés)
tbSalariés[eEntier]:m_sMatricule = "A002"
tbSalariés[eEntier]:m_mSomme_Augmentation = "300"
tbSalariés[eEntier]:m_mSomme_Salaire = "900"
tbSalariés[eEntier]:m_nPourcentage = tbSalariés[eEntier]:m_mSomme_Augmentation / tbSalariés[eEntier]:m_mSomme_Salaire
eEntier = TableauAjouteLigne(tbSalariés)
tbSalariés[eEntier]:m_sMatricule = "A003"
tbSalariés[eEntier]:m_mSomme_Augmentation = "250"
tbSalariés[eEntier]:m_mSomme_Salaire = "800"
tbSalariés[eEntier]:m_nPourcentage = tbSalariés[eEntier]:m_mSomme_Augmentation / tbSalariés[eEntier]:m_mSomme_Salaire
eEntier = TableauAjouteLigne(tbSalariés)
tbSalariés[eEntier]:m_sMatricule = "A004"
tbSalariés[eEntier]:m_mSomme_Augmentation = "250"
tbSalariés[eEntier]:m_mSomme_Salaire = "800"
tbSalariés[eEntier]:m_nPourcentage = tbSalariés[eEntier]:m_mSomme_Augmentation / tbSalariés[eEntier]:m_mSomme_Salaire
eEntier = TableauAjouteLigne(tbSalariés)
tbSalariés[eEntier]:m_sMatricule = "A005"
tbSalariés[eEntier]:m_mSomme_Augmentation = "300"
tbSalariés[eEntier]:m_mSomme_Salaire = "900"
tbSalariés[eEntier]:m_nPourcentage = tbSalariés[eEntier]:m_mSomme_Augmentation / tbSalariés[eEntier]:m_mSomme_Salaire
eEntier = TableauAjouteLigne(tbSalariés)
tbSalariés[eEntier]:m_sMatricule = "A006"
tbSalariés[eEntier]:m_mSomme_Augmentation = "300"
tbSalariés[eEntier]:m_mSomme_Salaire = "900"
tbSalariés[eEntier]:m_nPourcentage = tbSalariés[eEntier]:m_mSomme_Augmentation / tbSalariés[eEntier]:m_mSomme_Salaire
RENVOYER tbSalariés

Pour cet exemple, ce serait une modèle pour que vous aurez une vision sur des modèles de classe

NB : Attention, à chaque information d'une colonne, il faut utiliser les membres directement pour une membre.
Pas comme çà
tbSalariés[eEntier]:m_nPourcentage = 300 / 900
mais çà
tbSalariés[eEntier]:m_nPourcentage = tbSalariés[eEntier]:m_mSomme_Augmentation / tbSalariés[eEntier]:m_mSomme_Salaire

Cordialement
Mr.RATSIMANDRESY
Niry Aina Eddy





: Lecture d'une table pour une piste de programmation