Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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é ?
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
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
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 ?
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))';
Merci je vais essayer cela !