Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Briinou
Contributor III
Contributor III

variable dans condition

Bonjour,

Je tourne en rond :

J'ai un calcul à faire dans mon application. Ce dernier est conditionné par les filtres temporels :

=if((GetSelectedCount(ANNEE)=0 and GetSelectedCount(MOIS)=0),count(distinct {$<ANNEE={'2018'},MOIS={'06'},MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)<>0 and GetSelectedCount(MOIS)=0), count(distinct {$<MOIS={'06'}, MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)=0 and GetSelectedCount(MOIS)<>0),count(distinct {$<ANNEE={'2018'},MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)<>0 and GetSelectedCount(MOIS)<>0),count(distinct {$<MOIS_ENTREE=>} ID_GRC),

'-'))))

Si pas de sélection sur ANNEE et MOIS : affichage de la donnée la plus récente (ici juin 2018)

Si sélection sur ANNEE mais pas sur MOIS : affichage de la donnée sur le mois le plus récent de l'année courante (ici juin)

Si pas de sélection sur ANNEE mais sur MOIS : affichage de la donnée sur l'année courante pour le mois sélectionné

Si ANNEE et MOIS sélectionnés : affichage de la donnée selon l'année et le mois

Dans une optique d'automatisation des calculs à chaque chargement, je ne souhaites plus avoir en "dur", les conditions de formules.

Du coup, j'ai créé des variables :

$(MOIS_MAX) : Mois d'aujourd'hui-1, ('01','02',...)

$(ANNEE_N) : Max du champ "ANNEE"

$(ANNEE_N1) : Max du champ "ANNEE"-1

$(ANNEE_N2) : Max du champ "ANNEE"-2

Cependant, je n'arrive pas à intégrer ces variables :


Test 1 :

=if((GetSelectedCount(ANNEE)=0 and GetSelectedCount(MOIS)=0),count(distinct {$<ANNEE={$(ANNEE_N)},MOIS={$(MOIS_MAX)},MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)<>0 and GetSelectedCount(MOIS)=0), count(distinct {$<MOIS={$(MOIS_MAX)}, MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)=0 and GetSelectedCount(MOIS)<>0),count(distinct {$<ANNEE={$(ANNEE_N)},MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)<>0 and GetSelectedCount(MOIS)<>0),count(distinct {$<MOIS_ENTREE=>} ID_GRC),

'-'))))

Retour erreur : "Error : Error in set modifier ad hoc element list ',' or ')' expected"

Test 2 :

=if((GetSelectedCount(ANNEE)=0 and GetSelectedCount(MOIS)=0),count(distinct {$<ANNEE={"$(ANNEE_N)"},MOIS={"$(MOIS_MAX)"},MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)<>0 and GetSelectedCount(MOIS)=0), count(distinct {$<MOIS={"$(MOIS_MAX)"}, MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)=0 and GetSelectedCount(MOIS)<>0),count(distinct {$<ANNEE={"$(ANNEE_N)"},MOIS_ENTREE=>} ID_GRC),

if((GetSelectedCount(ANNEE)<>0 and GetSelectedCount(MOIS)<>0),count(distinct {$<MOIS_ENTREE=>} ID_GRC),

'-'))))

Retour : 0

je suis sûre que c'est tout bête... Mais je n'arrive pas à trouver. Merci de votre aide !

1 Solution

Accepted Solutions
ogautier62
Specialist II
Specialist II

Bonjour,

par exemple dans la variable mettre :

=maxString(IDarticle)

==> ne pas oublier le signe = devant

l'expresson régulière est :

= sum({<IDarticle = {"$(vArticle)"} >} Montant)

je te conseille de ne pas mettre de $ ou () dans les noms de variable, ça embrouille

vANNEE_N =    = max(Annee)

Annee = {"$(vANNEE_N)"}

cdt

View solution in original post

2 Replies
ogautier62
Specialist II
Specialist II

Bonjour,

par exemple dans la variable mettre :

=maxString(IDarticle)

==> ne pas oublier le signe = devant

l'expresson régulière est :

= sum({<IDarticle = {"$(vArticle)"} >} Montant)

je te conseille de ne pas mettre de $ ou () dans les noms de variable, ça embrouille

vANNEE_N =    = max(Annee)

Annee = {"$(vANNEE_N)"}

cdt

Briinou
Contributor III
Contributor III
Author

Bonjour Olivier,

Merci pour ces explications, ça fonctionne !

Après vérification, il me manquant le "=" devant mes formules de variables.. Et c'était ça qui coinçait.