5 Replies Latest reply: Jan 25, 2017 8:13 AM by Sébastien Fatoux RSS

    Chargement dans une variable du contenu d une requete

    jean marie heller

      Bonjour

       

      je souhaite charger dans une variable le résultat d'une requête

       

      cette requête est conditionnée par deux autres variables chargées par l'utilisateur grâce à l'extension de saisie des variables

      j'aimerais vérifier dans cette table la présence du couple ( annee / secteur) et si cette occurence existe afficher un graphique , sinon rien

      bien sûr cela doit être dynamique et je ne peux pas passer par un rechargement des données

       

      je pensais écrire quelque chose de ce style ( dans mon exemple il s'agit de annee / secteur mais cela peut être n'importe quoi d'autre )

       

      TEMPS:

      load * inline [

      annee,secteur,donnee

      2016, NORD,1000

      2016, EST,5000

      2016, SUD,300

      2015, NORD,3000

      2015, EST,2000

      .....

      ];

      LET v_existe_dans_table = ... ?

      LET v_donnee_issue_de_table=  ?    ( comment dois-je écrire le let ( avec des peek  , des pick , des lookup .. ) afin d'avoir la donnée d'un e part et la certitude de l'existence du couple annee/secteur dans la table )

       

      et pour mes graphiques je compte utiliser un set analysis de ce style

       

      Sum({$<Type_Fait={'Facture'}, secteur={'$(v_SECTEUR)'}, annee{'$(v_annee)'}=>}[CA])

       

       

      merci par avance

        • Re: Chargement dans une variable du contenu d une requete
          Sébastien Fatoux

          Bonjour,

           

          Essaye comme ceci :

           

          TEMPS:
          load * inline [
          annee,secteur,donnee
          2016, NORD,1000
          2016, EST,5000
          2016, SUD,300
          2015, NORD,3000
          2015, EST,2000
          ]
          ;

          SET v_existe_dans_table = count({$<secteur={'£(v_SECTEUR)'}, annee={'£(v_annee)'}>}donnee);
          SET v_donnee_issue_de_table = sum({$<secteur={'£(v_SECTEUR)'}, annee={'£(v_annee)'}>}donnee);
          LET v_existe_dans_table = replace(v_existe_dans_table, '£', '$');
          LET v_donnee_issue_de_table = replace(v_donnee_issue_de_table, '£', '$'); 

           

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

           

           

          Expression dans la condition d'affichage du graphique :    =$(v_existe_dans_table)

          Expression pour récupérer la valeur  :     =$(v_donnee_issue_de_table)

           

           

           

           

           

            • Re: Chargement dans une variable du contenu d une requete
              jean marie heller

              Bonjour Sebastien ,

               

              merci cela fonctionne et m'a permis de régler mon soucis

              dans la suite de mon application j'ai un problème avec la manipulation du set analysis que j'ai crée grace à ton explication, je souhaite faire la somme du CA selon la valeur de quelques champs / variables

              j'ai écrit ceci  :

              je souhaite présenter la somme du CA pour un représentant donné ( chargé dans la variable v_id_user ) et cela fonctionne bien

               

              Sum(

              {

              $<Type_Fait={'Facture'},Representant_Piece={'$(v_id_user)'}>

              }

              CA)

               

              mais je désire permettre la consultation soit à l'utilisateur connecté ( v_id_user ) soit à un utilisateur nommé informatique ET la valeur d'une variable qui doit être positive

               

              j'ai écrit

               

              Sum(

              {

              $<Type_Fait={'Facture'},Representant_Piece={'$(v_id_user)'}>+

              $<Type_Fait={'Facture'},'Informatique'={'$(v_id_user)'},{'$(v_variable)'}>0>

              }

              CA)

               

              cela ne fonctionne pas , j'ai un doute sur la syntaxe et notamment le test positif

              as tu une astuce de plus pour moi ?

               

              merci par avance

                • Re: Chargement dans une variable du contenu d une requete
                  Sébastien Fatoux

                  Bonjour,

                   

                  C'est normale que ton set analysis ne fonctionne pas. Entre les <...> tu modifies ta sélection définie par $, tu dois spécifier un champ existant dans ton model et définir sa nouvelle ensemble de sélection.

                  Dans ton cas, 'Informatique' et {'$(v_variable)'} ne sont pas des champs, et tu ne peu pas utiliser >0 (par exemple pour sélectionner les CA>0   ==> CA = {">0"})

                   

                  Je ne comprend pas ce que tu veux faire.

                  Un set analysis ne sert pas à permettre la consultation en fonction de condition, mais à modifier la sélection de l'utilisateur ou à en forcer une.

                   

                  Si tu veux établir de la sécurité basée sur l'utilisateur connecté et limiter les données qu'il peux voir à celles aux quelles il est associé, il faut utiliser le Section Access. ATTENTION, faire une copie de ton application avant de l'utiliser, car si mal définit tu pourrais ne plus pouvoir accéder à ton application.

                   

                  Concernant ta variable qui doit être plus grande que zéro, si c'est une contrainte sur cette variable tu peux aller dans les propriétés du document (CTRL+ALT+D) dans l'onglet Variables

                  Community_1200075.png

              • Re: Chargement dans une variable du contenu d une requete
                jean marie heller

                Bonjour

                merci pour les éclaircissements, Il ne s'agit pas de sécurité active , selon l'utilisateur connecté , mais bien d'une vision "particulière" pour un utilisateur donné , donc bien de l'ensemble de données à consulter

                 

                disons que mon utilisateur sur une variable choisie par lui même peut voir uniquement son secteur , ou l'ensemble des secteurs ( ce que j'ai symbolisé par "informatique" )

                j'aurais voulu dire la somme du chiffre pour le représentant = ( utilisateur courant ) ( ma variable user )

                ou selon son choix une vision plus étendue ( tous les représentants )

                donc  representant={'$(v_id_user)'}  d'un coté  si une autre variable ( appelons la mode par exemple = 1 )

                OU     representant= tous si j'ai changé une autre variable ( mode = tous )

                 

                pour moi cela ressemble bien à un set analysis , que j'avais du mal à définir