Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
dmartin90
New Contributor

utilisation variable dans expression

Bonjour,

Je galère depuis un moment sur ce point.
Pour essayer de faire simple j'ai une variable qui contient mes ventes prévisionnelles de la façon suivante "ventes _moyennes_jour x nombre de jours jusqueà la prochaine date de livraison":

LET v_Ventes_Previsionnelles = 'num(sum(SORTIESMOYENNESJOURTOTAL)*NetWorkDays(today(),date(DATEPROCHAINELIVRAISON,'&chr(39)&DateFormat&chr(39)&')))';

Je souhaite utiliser cette variable dans une autre variable pour compter le nombre d'articles en ruptures prévisionnelles, c'est à dire ceux dont le stock actuel est inférieur à ces ventes prévisionnelles de la façon suivante :

LET v_Compt_Art_Rupt_Prev = 'count({<[QTEPHYSSTOCKDEPOT]={"<$(=v_Ventes_Previsionnelles)"}>} DISTINCT ARTICLECODE)';

Sauf que ça ne fonctionne pas ... problème de syntaxe ou incompatibilité ?

Tags (1)
1 Solution

Accepted Solutions
sfatoux72
Valued Contributor

Re: utilisation variable dans expression

Bonjour Daniel,

Le problème c'est que le calcul de tes Ventes_Professionnelles s'applique à tout tes articles et nom pas article par article.

Pour le faire article par article, et pouvoir les compter par la suite, il faudrait plutôt essayer quelques chose comme ça:

LET v_Compt_Art_Rupt_Prev = 'Sum(Aggr(If([QTEPHYSSTOCKDEPOT] < $(v_Ventes_Previsionnelles), 1, Null()), ARTICLECODE))';

Je ne l'ai pas testé, mais je pense que c'est la piste à suivre

4 Replies
sfatoux72
Valued Contributor

Re: utilisation variable dans expression

Bonjour Daniel,

Le problème c'est que le calcul de tes Ventes_Professionnelles s'applique à tout tes articles et nom pas article par article.

Pour le faire article par article, et pouvoir les compter par la suite, il faudrait plutôt essayer quelques chose comme ça:

LET v_Compt_Art_Rupt_Prev = 'Sum(Aggr(If([QTEPHYSSTOCKDEPOT] < $(v_Ventes_Previsionnelles), 1, Null()), ARTICLECODE))';

Je ne l'ai pas testé, mais je pense que c'est la piste à suivre

dmartin90
New Contributor

Re: utilisation variable dans expression

Merci, ça m'a effectivement parfaitement aiguillé et j'ai trouvé comment faire fonctionner !

Autre interrogation :

J'ai la variable suivante qui permet de:
LET v_Stock = 'max(aggr(sum({<[Date]={"$' & '(=num(max(Date)))"}>}QTEPHYSSTOCKDEPOT),ARTICLECODE,Site))';

Lorsque j'inclus cette variable dans une autre je perds une partie de l'expression.

Exemple :

LET v_Valeur_Stock_PV = '$(v_Stock)*$(v_PVTTC)';

Si j'affiche le contenu de v_Valeur_Stock afin d'avoir un visu de l'expression j'obtiens ça :

max(aggr(sum({<[Date]={""}>}QTEPHYSSTOCKDEPOT),ARTICLECODE,Site))*max(aggr(sum({<[Date]={""}>}PVTTC),ARTICLECODE,Site))

En gros, Qlikview perd la fonction permettant de récupérer la date max.

Erreur de syntaxe ?

sfatoux72
Valued Contributor

Re: utilisation variable dans expression

Je pense que le problème vient du fait que tu utilises LET, et du coup la partie $(=num(max(Date))) de l'expression est évaluée dans le script et retourne "".

Essaye d'utiliser SET :

SET v_Stock = 'max(aggr(sum({<[Date]={"$' & '(=num(max(Date)))"}>}QTEPHYSSTOCKDEPOT),ARTICLECODE,Site))';

dmartin90
New Contributor

Re: utilisation variable dans expression

Merci je vais essayer cela !