mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-12 01:36:43 +02:00
Fusion de deux lignes de travail parallèles sur main, complémentaires et non concurrentes :cd2e77eselectionnerFenetreViaDimensionMois() — sélectionne les 12 mois par qElemNumber sur la dimension maître Mois. C'est ce qui marche : les champs Date exposés sont dissociés des faits (100 % du total avant comme après), la dimension maître porte les vraies valeurs.4ef0e9fgarde-fou d'intégrité — refuse d'écrire le cache si la fenêtre n'est pas entièrement couverte. C'est pourquoi le cache est resté inchangé au lieu d'être corrompu.726fb84choisirPeriode() — le maillon manquant. Le dump des expressions donne la cause de fond : « Quantité N » = Sum({<Type_Cal={'N'}>} quantite) « Quantité COMP » = Sum({<Type_Cal={'$(vPeriod_comp)'}…>} quantite) Un pont de périodes duplique les lignes de faits ; Type_Cal marque la période analysée (N) ou de comparaison (COMP), et le champ Période (4 valeurs) décide de quelle période il s'agit. Sélectionner correctement les mois ne suffit donc pas : sous la période par défaut, « Quantité N » rend 0 sur tout mois hors période courante, même parfaitement sélectionné. Orchestration fusionnée : 1. choisirPeriode() essaie chaque valeur de Période et MESURE, sur un cube [Mois] × Quantité N, combien de mois de la fenêtre elle rend disponibles. Aucun libellé n'est deviné. 2. Si une période couvre les 12 mois → master measures (exactes sur toute la fenêtre). Sinon → agrégation directe des faits, en secours. 3. Dans les deux cas, la couverture des 12 mois est revérifiée avant persistance ; sinon l'extraction est refusée et le cache laissé intact. La tendance conserve la règle stricte de4ef0e9f(les 12 clés explicitement présentes, ou pas de tendance), qui écarte aussi le « +4100 % » calculé sur deux points pour un article vendu depuis mai. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DfqUihgixw4K1AmJhizWiu