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ée un lien avec un Calendrier avec IntervalMatch


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 13
    Points
    13
    Par défaut Crée un lien avec un Calendrier avec IntervalMatch
    Bonjour à tous ,

    Je cherche à relier mon calendrier à ma base de données SQL.
    J'ai une table "Project" qui contient divers champs, mais ceux qui m'intéresse c'est "CréationDuProjet" et "FinDuProjet" (soit deux dates).

    Et donc je voudrais lier cela à un calendrier que j'ai récupréré ici, j'ai regardé un peu sur la toile ils disent d'utiliser IntervalMatch mais jusqu'à maintenant je n'ai pas réussi à lié ces derniers.

    Pour rappeler mon objectif étant que lorsque je choisis une date cela me séléctionne tous les projets en cours de réalisation ce jour là.

    Si vous pensez que IntervalMatch n'est pas la solution faite le moi savoir.

    Merci d'avance,
    Bonne journée.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 419
    Points
    419
    Par défaut
    Ton code, ou au moins la partie qui concerne ta question, nous aurait aidés à voir ton problème.

    Si le calendrier est dans une table nommée Calendar où le champ Date contient la date, le code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Link_Cal_To_Proj:
    INTERVALMATCH (Date)
    Load distinct CréationDuProjet, FinDuProjet RESIDENT Project;
    Ceci crée une table de lien entre le calendrier d'un côté et ta table projet de l'autre. Mais il est aussi possible de remonter tous les projets dans la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Project_2:
    INTERVALMATCH (Date)
    Load distinct CréationDuProjet, FinDuProjet RESIDENT Project;
    Inner Join
    Load CréationDuProjet, FinDuProjet, NomProjet, TypeProjet (...)
    RESIDENT Project;
    Drop Table Project;
    (Attention, dans ce cas, à toujours faire des count(distinct ...) dans Project, le cas échéant)
    Tes projets sont alors liés à chacune des dates.
    En fait, dans la deuxième forme, les projets sont dupliqués autant de fois qu'il y a de jours en face. Mais avec QlikView cela ne nuit pas.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 13
    Points
    13
    Par défaut
    Merci d'avoir répondu rapidement, mais je n'étais plus au bureau ,

    Tu me dis
    Si le calendrier est dans une table nommée Calendar où le champ Date contient la date
    mais je n'ai pas fait de table dans ma database. Faut-il que j'en fasse une obligatoirement, si je veux lié mon calendrier à ma base de données SQL ?

    Voici mon code, qui est loin d'être parfait je le conçois bien car je suis débutant en la matière !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    LOAD ProjectBudgetRevise,
        ProjectDateAuto,
        ProjectDateClo,
        (...)
        ProjectWbs;
    SQL SELECT ProjectBudgetRevise,
        ProjectDateAuto,
        ProjectDateClo,
        (...)
        ProjectWbs
    FROM TLDB.dbo.Project;
     
     
     
    // Calendrier
     
    LET vDateMin = Num(MakeDate(2011,1,1));
    LET vDateMax = Floor(YearEnd(AddMonths(Today(), 12)));
    LET vDateToday = Num(Today());
    TempCalendar:
    LOAD  $(vDateMin) + RowNo() - 1 AS DateNumber,
    Date($(vDateMin) + RowNo() - 1) AS TempDate AUTOGENERATE 1 WHILE $(vDateMin)+IterNo()-1<= $(vDateMax);
    MasterCalendar:
    LOAD
    TempDate AS CalendarDate,
    Day(TempDate) AS CalendarDay,
    WeekDay(TempDate) AS CalendarWeekDay,
    Week(TempDate) AS CalendarWeek,
    Month(TempDate) AS CalendarMonth,
    Year(TempDate) AS CalendarYear,
    'Q' & Ceil(Month(TempDate)/3) AS CalendarQuarter,
    WeekDay(TempDate) & '-' & Year(TempDate) AS CalendarWeekAndYear,
    Month(TempDate) & '-' & Year(TempDate) AS CalendarMonthAndYear RESIDENT TempCalendar ORDER BY TempDate ASC;
    DROP TABLE TempCalendar;
    LET vDateMin = Num(MakeDate(2011,1,1));
    LET vDateMax = Floor(YearEnd(AddMonths(Today(), 12)));
    LET vDateToday = Num(Today());

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 13
    Points
    13
    Par défaut
    Bon j'ai avancé enfin je crois ,

    Je vous link mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    SET ThousandSep='*';
    SET DecimalSep=',';
    SET MoneyThousandSep='*';
    SET MoneyDecimalSep=',';
    SET MoneyFormat='#*##0,00 €;-#*##0,00 €';
    SET TimeFormat='hh:mm:ss';
    SET DateFormat='DD/MM/YYYY';
    SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
    SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';
    SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
     
    ODBC CONNECT TO Qlikview (XUserId is daJEUZFMUDbIEBBA, XPassword is CIPSSSNOTLaYWXJOJD);
     
     
     
    LOAD "AnnéeDeCalcul",
        DateDeCalcul,
        Indicateur,
        MoisDateDeCalcul,
        ValeurIndicateur;
    SQL SELECT "AnnéeDeCalcul",
        DateDeCalcul,
        Indicateur,
        MoisDateDeCalcul,
        ValeurIndicateur
    FROM TLDB.dbo.Performance;
     
     
     
    // Table Project
     
    LOAD ProjectBudgetRevise,
        ProjectBudgetTotalInit,
        ProjectChefDsi,
        ProjectChefEbis,
        ProjectConduiteChangement,
        ProjectDateAuto,
        ProjectDateClo,
        ProjectDescription,
        ProjectDirectionMetier,
        ProjectDomaineFonc,
        ProjectEcartAvancement,
        ProjectEcartPrixYtd,
        ProjectId,
        ProjectJournalEvenem,
        ProjectLinkLoi,
        ProjectLinkPlp,
        ProjectMoe,
        ProjectNotePriorite,
        ProjectNoteRisque,
        ProjectNouveauEvolu,
        ProjectPreEtudeON,
        ProjectProgramme,
        ProjectRealiseYtd,
        ProjectStatutLance,
        ProjectType,
        ProjectWbs,
        year(ProjectDateAuto) as YearD,
        year(ProjectDateClo) as YearF,
        month(ProjectDateAuto) as Month,
        day(ProjectDateAuto) as Day;
    SQL SELECT ProjectBudgetRevise,
        ProjectBudgetTotalInit,
        ProjectChefDsi,
        ProjectChefEbis,
        ProjectConduiteChangement,
        ProjectDateAuto,
        ProjectDateClo,
        ProjectDescription,
        ProjectDirectionMetier,
        ProjectDomaineFonc,
        ProjectEcartAvancement,
        ProjectEcartPrixYtd,
        ProjectId,
        ProjectJournalEvenem,
        ProjectLinkLoi,
        ProjectLinkPlp,
        ProjectMoe,
        ProjectNotePriorite,
        ProjectNoteRisque,
        ProjectNouveauEvolu,
        ProjectPreEtudeON,
        ProjectProgramme,
        ProjectRealiseYtd,
        ProjectStatutLance,
        ProjectType,
        ProjectWbs,
        year(ProjectDateAuto) as YearD,
        year(ProjectDateClo) as YearF,
        month(ProjectDateAuto) as Month,
        day(ProjectDateAuto) as Day
    FROM TLDB.dbo.Project;
     
     
    INTERVALMATCH (DateDeCalcul)
    LOAD DISTINCT ProjectDateAuto, ProjectDateClo RESIDENT Project; 
    /*
    LET vDateMin = Num(MakeDate(2000,1,1));
    LET vDateMax = Floor(YearEnd(AddMonths(Today(), 12)));
    LET vDateToday = Num(Today());
     
    TempCalendar:
    LOAD
      $(vDateMin) + RowNo() - 1 AS DateNumber,
      Date($(vDateMin) + RowNo() - 1) AS TempDate
    AUTOGENERATE 1
    WHILE $(vDateMin)+IterNo()-1<= $(vDateMax);
     
    MasterCalendar:
    LOAD
    	TempDate AS CalendarDate,
    	Day(TempDate) AS Day,
    	WeekDay(TempDate) AS CalendarWeekDay,
    	Week(TempDate) AS CalendarWeek,
    	Month(TempDate) AS Month,
    	Year(TempDate) AS Year,
    	'Q' & Ceil(Month(TempDate)/3) AS CalendarQuarter,
    	WeekDay(TempDate) & '-' & Year(TempDate) AS CalendarWeekAndYear,
    	Month(TempDate) & '-' & Year(TempDate) AS CalendarMonthAndYear
    RESIDENT TempCalendar ORDER BY TempDate ASC;
     
    DROP TABLE TempCalendar;
     
    LET vDateMin = Num(MakeDate(2000,1,1));
    LET vDateMax = Floor(YearEnd(AddMonths(Today(), 12)));
    LET vDateToday = Num(Today());
    */
    Mais le problème c'est que ici j'abandonne mon calendrier, or j'en ai besoin pour que le user puisse choisir une date et que cela me séléctionne tous les projets en cours de réalisation ce jour là.
    Donc il faudrait soit un calendrier complet (tous les jours même ceux ou il ne se passe rien sont affiché), soit que tous les jours où il y a un projet en cours soit affiché !

    En tout cas je travail dessus, mais une aide serai la bienvenue

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 13
    Points
    13
    Par défaut
    Il parait que la nuit porte conseil , dans mon cas c'est vrai !

    J'ai finalement reussi à lié mon Calendar à ma table de projet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    SET ThousandSep='*';
    SET DecimalSep=',';
    SET MoneyThousandSep='*';
    SET MoneyDecimalSep=',';
    SET MoneyFormat='#*##0,00 €;-#*##0,00 €';
    SET TimeFormat='hh:mm:ss';
    SET DateFormat='DD/MM/YYYY';
    SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
    SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';
    SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
     
    ODBC CONNECT TO Qlikview (XUserId is daJEUZFMUDbIEBBA, XPassword is CIPSSSNOTLaYWXJOJD);
     
    //Table Performance
     
    LOAD AnneeDeCalcul,
        DateDeCalcul,
        Indicateur,
        MoisDateDeCalcul,
        ValeurIndicateur;
    SQL SELECT AnneeDeCalcul,
        DateDeCalcul,
        Indicateur,
        MoisDateDeCalcul,
        ValeurIndicateur
    FROM TLDB.dbo.Performance;
     
     
    // Table Project
     
    LOAD ProjectBudgetRevise,
        ProjectBudgetTotalInit,
        ProjectChefDsi,
        ProjectChefEbis,
        ProjectConduiteChangement,
        ProjectDateAuto,
        ProjectDateClo,
        ProjectDescription,
        ProjectDirectionMetier,
        ProjectDomaineFonc,
        ProjectEcartAvancement,
        ProjectEcartPrixYtd,
        ProjectId,
        ProjectJournalEvenem,
        ProjectLinkLoi,
        ProjectLinkPlp,
        ProjectMoe,
        ProjectNotePriorite,
        ProjectNoteRisque,
        ProjectNouveauEvolu,
        ProjectPreEtudeON,
        ProjectProgramme,
        ProjectRealiseYtd,
        ProjectStatutLance,
        ProjectType,
        ProjectWbs;
    SQL SELECT ProjectBudgetRevise,
        ProjectBudgetTotalInit,
        ProjectChefDsi,
        ProjectChefEbis,
        ProjectConduiteChangement,
        ProjectDateAuto,
        ProjectDateClo,
        ProjectDescription,
        ProjectDirectionMetier,
        ProjectDomaineFonc,
        ProjectEcartAvancement,
        ProjectEcartPrixYtd,
        ProjectId,
        ProjectJournalEvenem,
        ProjectLinkLoi,
        ProjectLinkPlp,
        ProjectMoe,
        ProjectNotePriorite,
        ProjectNoteRisque,
        ProjectNouveauEvolu,
        ProjectPreEtudeON,
        ProjectProgramme,
        ProjectRealiseYtd,
        ProjectStatutLance,
        ProjectType,
        ProjectWbs
    FROM TLDB.dbo.Project;
     
     
     
     
     
    LET vDateMin = Num(MakeDate(2010,1,1));
    LET vDateMax = Floor(YearEnd(AddMonths(Today(), 12)));
    LET vDateToday = Num(Today());
     
    TempCalendar:
    LOAD
      $(vDateMin) + RowNo() - 1 AS DateNumber,
      Date($(vDateMin) + RowNo() - 1) AS TempDate
    AUTOGENERATE 1
    WHILE $(vDateMin)+IterNo()-1<= $(vDateMax);
     
    MasterCalendar:
    LOAD
    	TempDate AS IziDate,
    	Day(TempDate) AS Day,
    	Month(TempDate) AS Month,
    	Year(TempDate) AS Year
    RESIDENT TempCalendar ORDER BY TempDate ASC;
     
    DROP TABLE TempCalendar;
     
    LET vDateMin = Num(MakeDate(2010,1,1));
    LET vDateMax = Floor(YearEnd(AddMonths(Today(), 12)));
    LET vDateToday = Num(Today());
     
     
    INTERVALMATCH (IziDate)
    LOAD DISTINCT ProjectDateAuto, ProjectDateClo RESIDENT Project; 
    INNER JOIN
    LOAD ProjectDateAuto, ProjectDateClo, ProjectBudgetRevise, ProjectBudgetTotalInit, ProjectChefDsi, ProjectChefEbis, ProjectConduiteChangement, ProjectDescription, ProjectDirectionMetier, ProjectDomaineFonc, ProjectEcartAvancement, ProjectEcartPrixYtd, ProjectId, ProjectJournalEvenem, ProjectLinkLoi, ProjectLinkPlp, ProjectMoe, ProjectNotePriorite, ProjectNoteRisque, ProjectNouveauEvolu, ProjectPreEtudeON, ProjectProgramme, ProjectRealiseYtd, ProjectStatutLance, ProjectType, ProjectWbs
    RESIDENT Project;
    DROP TABLE Project;
    Merci pour ton aide Yvesduc !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Je me permets de remettre ce sujet en "non résolu" pour ajouté une question,

    En faite je me retrouve face à un problème, lorsque j'ai un projet non fini je ne met pas de date de cloture (Jusqu'à là, il me semble que c'est logique ) et du coup elle n'apparait pas sur QV car l'IntervalMatch ce fait entre la date d'ouverture et la date de cloture du projet. Ce que j'aimerai c'est que si je ne mets pas de date de cloture, premièrement QV déjà charge mes données dans ma table et puis deuxième que le calendier pointe sur mon projet depuis sa création jusqu'à aujourd'hui ( ex: ProjetDateAuto = 01/07/2011 ProjetDateClo = Null )



    Or j'ai cherché sur le net comment faire des Intervals Ouvert mais à chaque fois que j'ai essayé quelque chose cela ne fonctionnait pas.

    "Need help !"

    Merci d'avance,
    Cordialement,
    Giloux

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 132
    Points : 182
    Points
    182
    Par défaut
    Bonjour,

    Si j'ai bien compris tu souhaite qu'un clique sur un projet dont la date de fin n'est pas fixée va te donner les dates de tous les projets non terminés ( de date debut à aujourd'hui).
    Dans l'autre sens qu'un clique sur la date d'aujourd'hui va te donner les projets non terminés.

    Essaye en changeant:
    ProjectConduiteChangement,
    ProjectDateAuto,
    ProjectDateClo,

    par
    ProjectConduiteChangement,
    ProjectDateAuto,
    if(IsNull(ProjectDateClo),Today(),ProjectDateClo) as ProjectDateClo,

    Cela va te remplacer les valeurs null de ProjectDateClo par la date d'aujourd'hui.

    LA

    PS: Voila un script d'exemple copie/colle dans Qlikview, reload et ajoute deux objet list ( nomprojet et IziDate )
    et test ( les projets 15 à 17 n'ont pas de date de fin).
    IntervalMatch.txt

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 13
    Points
    13
    Par défaut
    Parfait,

    Merci beaucoup pour votre aide à tous les deux !

    Cordialement,
    Giloux.

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

Discussions similaires

  1. [Calendrier] Lien vers dossier client
    Par lodan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 12/05/2007, 11h11
  2. Liens : Aide à la programmation avec DirectX
    Par djbed dans le forum DirectX
    Réponses: 11
    Dernier message: 22/03/2007, 23h30
  3. Réponses: 1
    Dernier message: 14/05/2006, 19h52
  4. Calendrier avec php
    Par slaima dans le forum Langage
    Réponses: 1
    Dernier message: 12/12/2005, 17h58
  5. faire un lien vers un site avec un post en simultané
    Par zolive dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 10/08/2005, 10h07

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