Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Set Analysis | Variable | script

Bonjour,

Alors voici la colle que je rencontre :

Nous avons une application fonctionnel.

J'ai ajouté

  - une liste de sélection qui contient les champs : (choix unique et obligatoire)

  selector.indicator_period

  - '1' | 'Dernier mois'                                             | '{<date.month.auto_number={"$' & chr(39) & '(=Max(date.month.auto_number))"}>}'

  - '2' | 'Selection'                                                  | ''

  - '3' | 'Selection + mois precedent la selection'      | '{<date.month.auto_number={">=$' & chr(39) & '(=Min(date.month.auto_number)) <=$' & chr(39) & '(=Max(date.month.auto_number))"}>}'

  - une liste de sélection qui contient les champs : (choix multiple)

  selector.indicator

  - '1' | 'stockA'

  - '2' | 'stockB'

  - '3' | 'stockC'

Et j'aimerais ajouter un bouton qui vas sélectionner les clients qui ont un stock* supérieur a 0.

J'ai donc mis dans un bouton l'action sélection des champs client avec :

  '(' & chr(39) &

  concat(

  {<client.nom={"=sum($(=selector.indicator_period.field) $(=selector.indicator.name)) > 1"}>}

  client.nom, chr(39) & '|' & chr(39))

  & chr(39) & ')'

Je rencontre déjà deux premiers problèmes, dans ma table selector.indicator_period, le set analysis pour Selection + mois precedent.

Pour qu'il soit complet il faudrait qu'il contienne '>= (min(date) - (max(date) - min(date))) & <= max(date)'.

La je suis perdu dans les { ( ' " & "} ...

Deuxième soucis, comment gérer le fait qu'on puisse sélectionner plusieurs selector.indicator.name.

Si on sélectionne les 3 stocks, il faudrait sélectionner les clients dispo pour chaque stock et concaténer chaque en supprimant les doublons ?

Fin voila, si un courageux/généreux passe dans le coin, je suis preneur 

Merci,

ps = il y a peut étre une méthode beaucoup plus simple en passant par le script ?

16 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

Quelle est la différence entre les champs : date.annee.mois et date.mois ?

Que contiennent réellement ces champs ?

Not applicable
Author

C'est simplement le format de la date qui change, mais ce sont des champs de la même table.

J'efface les sélections de chaque avant d'en faire une nouvelle.

Je joue avec des listes de sélection dans mon appli' qui contiennent la date sur différents format.

sfatoux72
Partner - Specialist
Partner - Specialist

Ok,

Tu dis que ça fonctionne comme ceci, ça te retourne bien les mois désiré:

----------------------------------------------------------------------------------------------------------------------

'(' &

concat(DISTINCT

  {<

  $(= '$(= selector.indicator_period.field)')

  >}

date.month.year_month,  '|' )

& ')'

----------------------------------------------------------------------------------------------------------------------

Par contre dans ton expression tu as écris l'insertion de ton indicateur différemment:

----------------------------------------------------------------------------------------------------------------------

'(' &

concat(DISTINCT

{<

client.nom={"=$(=Concat('min(aggr(sum({< $(=selector.indicator_period.field) >} '& selector.indicator.field &'), date.month, %_customer.id)) > 1', ' and ')) "}

>}

client.nom, '|')

& ')'

---------------------------------------------------------------------------------------------------------------------

Essaye de l'écrire de la même façon

Not applicable
Author

J'avais essayé, ça me retourne un résultat nul.

Et si j'essaye sans passer par une variable, en mettant le Set en dur :

=

concat(

  DISTINCT

  {<

  client.nom={"=

  $(=Concat('

  min(

  aggr(

  sum(

  {<

  date.annee.mois=, date.annee,

  date.mois={'>=$(=(min(date.mois) - (Max(date.mois) - min(date.mois)))) <=$(=Max(date.mois))'}

  >}

  '& selector.indicator.field &')

  , date.month, %_customer.id)

  )

  > 1', ' and '))

  "}

  >}

client.nom, ',')

De la même manière le Set ne fonctionne pas, il renvoi un résultât nul.

Ce que je ne comprends vraiment pas, c'est qu'il semble fonctionner pour last month..

sfatoux72
Partner - Specialist
Partner - Specialist

Essaye d'écrire ton 3ème indicateur simplement de cette manière :

   

date.annee.mois=, date.annee=,  date.mois={">= $(=(Min(date.month) - (Max(date.month) - Min(date.month)))) <= $(=Max(date.month))"}

Not applicable
Author

Avec les  "   j'obtiens le message d'erreur : error in set modifier

Si ça ne passe pas dans le Set, est ce que je pourrais pas le sortir de l'expression et le mettre ailleurs ? Je n'ai plus d'idée la ^^


Edit : je suis entrain d’anonymiser une appli pour vous montrer, ca sera plus simple

Not applicable
Author

Impossible d'anonymiser complètement l'application..

J'ai testé diverse chose sans succés donc on mets de coté cette option (selection + previous), le reste fonctionne.

Merci beaucoup !!!