View Categories

Changement dynamique des abscisses dans un graphique

Objectif #

Dans cet exemple, vous allez voir comment créer un graphique qui affiche les dernières périodes avec une modification dynamique des abscisses (Année, Mois, Semaine) à partir d’un composant Liste radio.

Mise en oeuvre #

SQL #

La construction de la requête réside sur une structure à base d’UNION. Le paramètre :Choix permettant de sélectionner la bonne requête temporelle (Année, Mois ou Semaine). Le paramètre :BIBOARDCALC permet de ramener la date d’aujourd’hui quand sa valeur est à « _DATE ».

Code #

SELECT
    Rq.Temps,
    Rq.Quantités
FROM
(
    SELECT
        CAST(YEAR(demonstration.dbo.Commandes.DateLivraison) AS varchar) AS Temps,
        SUM(demonstration.dbo.Commandes_Details.Quantite) AS Quantités,
        YEAR(demonstration.dbo.Commandes.DateLivraison) AS Tri1,
        YEAR(demonstration.dbo.Commandes.DateLivraison) AS Tri2
    FROM demonstration.dbo.Commandes
    INNER JOIN demonstration.dbo.Commandes_Details
        ON demonstration.dbo.Commandes.NumCommande = demonstration.dbo.Commandes_Details.NumCommande
    WHERE demonstration.dbo.Commandes.DateLivraison > DATEADD(year, -25, :BIBOARDCALC1)
        AND :Choix = 'Année'
    GROUP BY
        YEAR(demonstration.dbo.Commandes.DateLivraison),
        YEAR(demonstration.dbo.Commandes.DateLivraison)

    UNION

    SELECT
        CAST(YEAR(demonstration.dbo.Commandes.DateLivraison) AS varchar)
            + '-'
            + CAST(MONTH(demonstration.dbo.Commandes.DateLivraison) AS varchar) AS Temps,
        SUM(demonstration.dbo.Commandes_Details.Quantite) AS Quantités,
        YEAR(demonstration.dbo.Commandes.DateLivraison) AS Tri1,
        MONTH(demonstration.dbo.Commandes.DateLivraison) AS Tri2
    FROM demonstration.dbo.Commandes
    INNER JOIN demonstration.dbo.Commandes_Details
        ON demonstration.dbo.Commandes.NumCommande = demonstration.dbo.Commandes_Details.NumCommande
    WHERE :Choix = 'Mois'
        AND demonstration.dbo.Commandes.DateLivraison > DATEADD(month, -180, :BIBOARDCALC1)
    GROUP BY
        CAST(YEAR(demonstration.dbo.Commandes.DateLivraison) AS varchar)
            + '-'
            + CAST(MONTH(demonstration.dbo.Commandes.DateLivraison) AS varchar),
        YEAR(demonstration.dbo.Commandes.DateLivraison),
        MONTH(demonstration.dbo.Commandes.DateLivraison)

    UNION

    SELECT
        CAST(YEAR(demonstration.dbo.Commandes.DateLivraison) AS varchar)
            + '-'
            + CAST(DATEPART(week, demonstration.dbo.Commandes.DateLivraison) AS varchar) AS Temps,
        SUM(demonstration.dbo.Commandes_Details.Quantite) AS Quantités,
        YEAR(demonstration.dbo.Commandes.DateLivraison) AS Tr1,
        DATEPART(week, demonstration.dbo.Commandes.DateLivraison) AS Tri2
    FROM demonstration.dbo.Commandes
    INNER JOIN demonstration.dbo.Commandes_Details
        ON demonstration.dbo.Commandes.NumCommande = demonstration.dbo.Commandes_Details.NumCommande
    WHERE :Choix = 'Semaine'
        AND demonstration.dbo.Commandes.DateLivraison > DATEADD(week, -750, :BIBOARDCALC1)
    GROUP BY
        CAST(YEAR(demonstration.dbo.Commandes.DateLivraison) AS varchar)
            + '-'
            + CAST(DATEPART(week, demonstration.dbo.Commandes.DateLivraison) AS varchar),
        YEAR(demonstration.dbo.Commandes.DateLivraison),
        DATEPART(week, demonstration.dbo.Commandes.DateLivraison),
        DATEPART(week, demonstration.dbo.Commandes.DateLivraison)
) Rq
ORDER BY
    Rq.Tri1,
    Rq.Tri2

Note : Les valeurs numériques dans les formules DATEADD(week, -750, :BIBOARDCALC1) sont à adapter en fonction du contexte de votre projet. Si le test est effectué sur le schéma démonstration, il faut aussi effectué une modification. Les valeurs exemples dans ce cas de tests sont données pour un test en mai 20226.

Paramétrage #

Paramètre	Valeur	Type
BIBOARDCALC1	_DATE	Chaîne de caractères
Choix			Chaîne de caractères (pour test, on peut renseigner la Valeur par : Année, Mois ou Semaine

Tableaux de bord #

Visuel #

Configuration #

Liste Radio #
  • Liste Radio sans Datasource
  • Eléments: Année, Mois, Semaine
  • Rafraîchissement auto : coché
  • Colonnes : 3
  • Lien : Liste radio –> Graphique
Graphique – Histogramme #
  • Abscisse : Temps
  • Ordonnée : Quantités

Visuel final #

Retour en haut