TUTORIEL · QLIK SENSE

Les boucles dans le script Qlik

Utiliser FOR...NEXT, FOR EACH, DO...LOOP et la clause WHILE sans perdre de vue les données produites.

CHAPITRE 01

Répéter avec FOR...NEXT

Intermédiaire
Exemple Qlik Sense
FOR vMois = 1 TO 12
    TRACE Chargement du mois $(vMois);
NEXT vMois
À quoi ça sert ?

Le compteur prend successivement les valeurs comprises entre la borne de départ et la borne de fin.

✓ Avantages

  • Évite de répéter douze blocs presque identiques

△ Points de vigilance

  • Une boucle inutile peut rendre le script plus difficile à lire
1 / 5

CHAPITRE 02

Charger une série de fichiers

Intermédiaire
Exemple Qlik Sense
Ventes:
LOAD * INLINE [ID_VENTE, Montant];

FOR vMois = 1 TO 3
    CONCATENATE (Ventes)
    LOAD
        ID_VENTE,
        Montant
    FROM [lib://Donnees/Ventes_$(vMois).qvd] (qvd);
NEXT vMois
À quoi ça sert ?

Le compteur est injecté dans le nom du fichier. Chaque LOAD ajoute les lignes à la même table grâce à CONCATENATE.

✓ Avantages

  • Traitement compact de sources répétitives

△ Points de vigilance

  • Une convention de nommage fragile peut provoquer des erreurs
2 / 5

CHAPITRE 03

Parcourir une liste avec FOR EACH

Intermédiaire
Exemple Qlik Sense
FOR EACH vRegion IN 'Nord', 'Sud', 'Ouest'
    TRACE Région traitée : $(vRegion);
NEXT vRegion
À quoi ça sert ?

La variable reçoit chaque valeur de la liste à tour de rôle.

✓ Avantages

  • Très lisible pour une liste explicite

△ Points de vigilance

  • Une longue liste codée en dur devient difficile à maintenir
3 / 5

CHAPITRE 04

Répéter tant qu’une condition est vraie

Intermédiaire
Exemple Qlik Sense
LET vPage = 1;

DO WHILE vPage <= 5
    TRACE Traitement de la page $(vPage);
    LET vPage = vPage + 1;
LOOP
À quoi ça sert ?

La condition est évaluée à chaque passage. La variable utilisée doit évoluer pour que la boucle puisse se terminer.

✓ Avantages

  • Adapté aux traitements pilotés par une condition

△ Points de vigilance

  • La condition de sortie doit être maîtrisée
4 / 5

CHAPITRE 05

WHILE dans un LOAD : créer plusieurs lignes

Avancé
Exemple Qlik Sense
CalendrierContrat:
LOAD
    ID_CONTRAT,
    DateDebut + IterNo() - 1 AS Date
RESIDENT Contrats
WHILE DateDebut + IterNo() - 1 <= DateFin;
À quoi ça sert ?

IterNo() indique le numéro de l’itération pour la ligne source. Ici, une période est développée en une ligne par jour.

✓ Avantages

  • Très pratique pour développer des intervalles

△ Points de vigilance

  • Peut générer beaucoup de lignes
5 / 5