IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

QlikView Discussion :

Création d'un calendrier avec date début et date de fin


Sujet :

QlikView

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Création d'un calendrier avec date début et date de fin
    Bonjour,

    Je souhaiterai créer deux calendriers sous qlikview (étape effectuée) afin de mentionner les variables "dates de début" et "date de fin" d'un intervalle de temps.
    Le problème que je rencontre est le suivant:
    Je n'arrive pas à récupérer les variables "Date_Debut" et "Date_Fin" qui contiennent les informations retenues de la table (Passage).

    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Euh, là, je crois que j'ai besoin d'une explication ...
    Qu'est-ce que tu n'arrives pas à faire exactement ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    je te remercie tout d'abord pour ton implication dans ce sujet.

    Concernant le résultat escompté...Je t'explique.

    Mon souhait est de créer deux calendriers sous qlikview: le premier me permettant de choisir une "Date de début" et le second une "Date de fin".
    Ces deux selections doivent me permettre de filtrer le nombre de passage durant la période [Date de début-Date de fin] .

    Ps: Il est à noter que ma source de donnée contient une table (Date de passage) où les variables "Date de début" & "Date de fin" pourront récupérer la date souhaitée.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Il suffit de créer un objet calendrier basé sur le champ date.
    Le fait de sélectionner une date va sélectionner le ou les enregistrement(s) ayant la valeur de ta date, un peu comme s'il s'agissait d'une zone de sélection.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Tout à fait cela est valable pour une une unique date.
    Par contre mon souhait est de créer un intervalle de temps délimitée par une date de début et une date de fin qui me permettra de savoir le nombre de passage réalisée durant cette même période.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Je crois avoir compris

    Le mieux serait de dupliquer tes champs dans deux tables indépendantes.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Passages:
    Load Personne,Date_Deb,Date_Fin from mabase;
    SelDeb:
    Load distinct Date_Deb as Sel_Deb resident Passages;
    SelFin:
    Load distinct Date_Fin as Sel_Fin resident Passages;
    Tu pourras ensuite créer tes deux zones calendrier basées sur Sel_Deb et Sel_Fin.
    Comme elles seront independantes (pas de même nom dans une autre table), le fait de sélectionner une date de début et une date de fin ne changera rien à ta sélection.
    Il faudra donc utiliser un set analysis ou des expressions if pour ne prendre en compte que ce qui t'intéresse.
    Par exemple, une dimension calculée du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If(Date_Deb>=Sel_Deb and Date_Fin<=Sel_Fin, champ, null() )
    En cochant "Supprimer les valeurs nulles", on n'aura plus que les passages compris dans la période.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Je viens de tester cette méthode, mais j'ai des erreurs au niveau de mon script.
    Est ce que tu penses que cela est plus simple en rajoutant les variables directement au niveau du calendrier comme indiqué dans la pièce jointe ?
    Images attachées Images attachées  

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Ce sera plus simple, mais par exemple, on pourra saisir n'importe quelle date.
    Ou indique nous quelle erreur est donnée par ton script ...

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    En fait même avec la création du calendrier et des variables j'ai du mal à trouver la solution.
    Je t'ai mis en pièce jointe les différentes étapes que j'ai suivies pour essayer de l'accomplir.
    étape1 : création de variable "début"----->fichier: variable.
    étape2 : Affectation de la variable "début" au calendrier----->fichier: calendrier.
    étape3: Le résultat obtenu sous forme numérique (même si le paramètre date est appliqué) ----->fichier:résultat.

    Peux-tu m'orienter vers la solution à travers cette méthode? et pourquoi les valeurs numériques s'affichent en choisissant la date dans le calendrier ?
    Images attachées Images attachées    

  10. #10
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Dans les propriétés de ta zone calendrier, dans l'onglet Nombres, tu coches "Outrepasser le format" et "Date"
    Comme l'objet peut aussi afficher une glissière, la présentation par défaut est celle en numérique.
    Après avoir saisi une date, ta variable contient simplement la date.
    Dans tes formules, tu peux tester cette date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If(madate>=varDebut and madate<=varFin,expression,null() )

  11. #11
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je me permet de déterrer ce sujet, car je n'y trouve pas la réponse à la question.

    J'ai des données avec une colonne "Date document".

    On me demande de pouvoir sélectionner une date de début et une date de fin, et effectuer les analyses sur la période délimitée par ces deux dates.

    J'ai donc créé deux calendriers, liés à deux variables "date_debut" et "date_fin".

    Ensuite, pour tester, j'ai créé une liste de sélection à partir de ma colonne "Date document".

    Evidement, sans rien faire de plus, je n'obtiens aucun résultat : quelles que soient les bornes que je choisi, j'ai l'ensemble des dates qui s'affichent.
    J'ai donc modifié l'expression de ma liste de sélection pour prendre :
    "if([Date document] >= $date_debut and [Date document] <= $date_fin, [Date document], 0)"

    Et là, j'ai :
    - L'ensemble des dates comprises entre les deux dates
    - Une ligne blanche

    Cette solution n'est pas vraiment acceptable, puisque je peux toujours sélectionner toutes les dates "hors période" en choisissant la ligne vide.
    Bon, ça, à la limite, je dois pouvoir la filtrer, donc ça me gêne pas trop.

    En revanche, j'ai créé un graphique.

    En expression, j'avais "sum(CA)", CA étant une colonne de la même table qui celle qui contient [Date document].

    J'ai changé en :
    "sum(if([Date document] >= $date_debut and [Date document] <= $date_fin, CA, 0))"

    Sauf que là, j'ai un magnifique "Aucune donnée à afficher".

    Aussi, ça ne me plaît pas, car cela veut dire que je vais devoir me coltiner ce test sur tous les graphiques... Certaines expressions sont assez compliquées comme ça, en rajouter en plus un niveau avec ce bornage de dates.

    J'avais pour idée de créer une table temporaire à chaque changement de $date_debut et $date_fin, ne contenant que les données de ma table d'analyse, bornées selon la période choisie, puis baser tous mes graphiques sur les données de cette table plutôt que la table originale... Ou alors calculer une colonne "entre les deux bornes".
    Sauf que je ne sais pas comment déclencher un événement sur choix d'une date dans un calendrier.
    Et aussi, j'ai un peu peur de démultiplier les petits pains en mémoire et me retrouver avec une usine à gaz...

    Une solution ?
    On ne jouit bien que de ce qu’on partage.

  12. #12
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Je viens d'avoir une idée (certainement stupide mais bon, on fait ce qu'on peut).

    J'ai ajouté une colonne dans ma table qui contient la formule (sous forme littérale) suivante :

    'if([Document date] >= $date_debut and [Document date] <= $date_fin, 1, 0)' as PeriodeAnalyse

    Avec dans l'idée, par la suite, dans mes graphiques, de faire cette toute petite modification :

    sum(CA * PeriodeAnalyse)

    Au détail près qu'il faudrait évaluer l'expression au moment du calcul... Je ne trouve malheureusement pas comment faire

    Si PeriodeAnalyse était une variable, ce serait :

    =sum(CA * $(PeriodeAnalyse))

    Mais vu que c'est une colonne de ma table, ça marche pas
    On ne jouit bien que de ce qu’on partage.

  13. #13
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Bon, je tiens (presque) le bon bout...

    J'ai rajouté la colonne suivante :

    '=if([Date document] >= Date(''$(date_debut)'', ''DD/MM/YYYY'') and [Date document] <= Date(''$(date_fin)'', ''DD/MM/YYYY''), 1, 0)' as FlagPeriode

    Et dans mon graphique, je fais :

    sum(CA * $(=$(=FlagPeriode)))

    Ca marche presque : j'ai bien des données, sauf que mon test est systématiquement false...
    Je comprends pas pourquoi...

    J'ai essayé aussi :

    '=if(Date([Date document], ''DD/MM/YYYY'') >= Date(''$(date_debut)'', ''DD/MM/YYYY'') and Date([Date document], ''DD/MM/YYYY'') <= Date(''$(date_fin)'', ''DD/MM/YYYY''), 1, 0)' as FlagPeriode

    Reste à savoir ensuite si de toute façon mes modifications de $date_debut et $date_fin sont bien prises en compte...
    On ne jouit bien que de ce qu’on partage.

  14. #14
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Trouvé...

    Finalement, j'étais parti dans une voie de garage.

    La formule dans le graphique est "tout simplement" :

    Sum({$<[Date document] = {">=$(=date_debut)<=$(=date_fin)"}>} CA)

    Et ça marche nickel

    Bon, seul hic, c'est qu'il faut que je me trimbale cette formule assez peu lisible partout...
    On ne jouit bien que de ce qu’on partage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête paramétrée date début et date fin
    Par roman33 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 03/05/2010, 15h56
  2. [V5] Saisir une invite sur date début et date fin
    Par ilalaina dans le forum Deski
    Réponses: 2
    Dernier message: 26/02/2010, 14h31
  3. Réponses: 1
    Dernier message: 18/06/2008, 01h10
  4. Réponses: 3
    Dernier message: 17/05/2007, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo