Bonjour à tous
Je recherche depuis plusieurs jours (et sans succès) la possibilité de récupérer la somme d'un champ cumulé (et calculé) d'un sous-état sur un autre sous-état du même état principal !
Je m'explique :
J'ai un état principal "ListeSalariés_Paie", qui liste tous mes salariés (informations administratives) donc groupé par "code salarié"
Dans cet état, j'ai des sous états, dont un "Détail des Heures d'Absences" qui liste par "date" et par "type d'heure", le nombre d'heures d'absence de chacun de mes salariés : donc groupé la aussi par code salarié et lié par ce même code au champs père de l'état principal bien sûr...
Je récupère dans le pied de groupe de mon sous-état la somme totale d'absence pour chacun de mes salariés par un "Somme" : jusque là rien d'exceptionnel
Mais je dois également différencier la somme du nombre d'heure d'absence selon un certain type d'absence : pour cela je teste un champ "type d'absence" avec un "VraiFaux" et si "Vrai" je fais un "Somme" du nombre d'heures ...
CtlDetHAbsALierParHAbsCode =VraiFaux([TypeAbsLierHReg]=Vrai;Somme([DetHAbsPeriode]);0)
Ma première problématique à été de récupérer la somme totale d'heures de ce type d'absence dans le pied de groupe de mon sous-état : en effet, on ne peux faire une somme d'une expression "VraiFaux", ce qui me parait normal ....
Pour contourner cela, j'ai fais un cumul "en continu" de mon champs "CtlDetHAbsALierParHAbsCode" puis j'ai récupéré cette valeur en faisant référence à ce contrôle : je récupère bien la somme du nombre d'heure pour mon type d'heure particulier dans le pied de groupe de mon sous-état
CtlDetHAbsALierParHSalCode =[CtlDetHAbsALierParHAbsCode]
Enfin, et c'est là mon gros problème, je souhaite récupérer cette valeur dans un autre sous-état du même état principal comme enoncé plus haut (pour une question d'organisation et de mise en valeur)
Je fais donc référence tout simplement à ce contrôle (en gérant l'absence d'heures par un "IsError") !
NbTotalHAbsALier =VraiFaux(IsError([États]![ListeSalariés_Paie]![Détail des Heures d'Absences]![CtlDetHAbsALierParSalCode]);0;[États]![ListeSalariés_Paie]![Détail des Heures d'Absences]![CtlDetHAbsALierParSalCode])
Cela fonctionne bien ... si je n'ai qu'une seule valeur dans le détail de mon sous-état ou que le type demandé se trouve en première position de mon sous-état !!
En effet, la valeur récupérée ne correspond qu'à la PREMIÈRE OCCURRENCE du détail de mon sous-état et pas à la valeur inscrite dans le pied de groupe de ce dernier !!!
Je m'arrache les cheveux car je trouve cela illogique et incompréhensible !!
Pouvez-vous m'aider ?
Merci.
Partager