Publié le :
Reporting CREATION_INTERNE

Création d'un Tagset ODS pour Multiples Feuilles de Style

Ce code est également disponible en : Deutsch English Español
Ce programme utilise la procédure TEMPLATE pour définir un nouveau 'tagset' (tagsets.multi_url). L'objectif est de surcharger le comportement par défaut de l'événement 'stylesheet_link' pour permettre l'inclusion de multiples URLs de feuilles de style (CSS) séparées par des espaces, générant une balise <link> HTML pour chacune d'elles.
Analyse des données

Type : CREATION_INTERNE


Le code ne lit aucune source de données externe ni interne (tables SAS). Il agit sur la structure de sortie ODS.

1 Bloc de code
PROC TEMPLATE
Explication :
Définition de la structure du tagset. L'événement 'stylesheet_link' initialise une boucle ('urlLoop') qui parcourt la chaîne des URLs fournie, la découpe selon les espaces, et déclenche l'événement 'link' pour générer le code HTML approprié pour chaque fichier CSS.
Copié !
1PROC TEMPLATE;
2
3 
4 define tagset tagsets.multi_url;
5 
6 define event stylesheet_link;
7 break /IF !exists(url);
8 SET $urlList url;
9 trigger urlLoop ;
10 unset $urlList;
11 END;
12 
13 define event link;
14 putq '<link rel="stylesheet" type="text/css" href=' $current_url; '>' nl;
15 END;
16 
17 define event urlLoop;
18 eval $space_pos index($urlList, " ");
19 
20 DO /while $space_pos ne 0;
21 
22 SET $current_url substr($urlList,1,$space_pos);
23 SET $current_url trim($current_url);
24 
25 trigger link;
26 
27 SET $urlList substr($urlList,$space_pos);
28 SET $urlList strip($urlList);
29 
30 eval $space_pos index($urlList, " ");
31 done;
32 
33 /* when space_pos is 0 it's either the only link or the last link */
34 SET $current_url $urlList;
35 trigger link;
36 END;
37 END;
38RUN;
2 Bloc de code
ODS
Explication :
Instanciation de la destination ODS utilisant le tagset défini précédemment. On spécifie le fichier de sortie 'multi_url_out.txt' et on passe une liste de trois fichiers CSS au paramètre 'stylesheet'.
Copié !
1ods tagsets.multi_url file="multi_url_out.txt" stylesheet=(url="file1.css file2.css file3.css");
2ods tagsets.multi_url close;
3 
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.