ODS

SAS ODS PDF : Comment créer une ligne de séparation sous les titres (sur toute la largeur)

Simon 26/04/2017 5 views

Lors de la génération de rapports SAS© au format PDF, il est fréquent de vouloir soigner la mise en forme de l'en-tête. Une demande esthétique courante consiste à insérer une ligne horizontale séparant la zone des titres du corps du rapport.

Cependant, une confusion règne souvent entre le soulignement du texte et la création d'une bordure de conteneur. Si vous avez déjà tenté d'utiliser l'option underline dans l'instruction TITLE, vous avez sans doute remarqué qu'elle ne souligne que le texte (les caractères). Si votre titre est court, la ligne s'arrête net.

La question est donc : comment obtenir une ligne de séparation qui s'étend sur toute la largeur de la page, quelle que soit l'orientation (Portrait ou Paysage) et la longueur du texte ?

L'erreur fréquente : le mauvais élément de style

Pour modifier l'apparence globale des rapports, l'utilisation de PROC TEMPLATE est la méthode recommandée. Cependant, le choix de l'élément de style à modifier est crucial.

Beaucoup d'utilisateurs tentent de modifier l'élément SysTitleandFooterContainer en lui appliquant des règles de bordure (frame=below, rules=rows). Bien que cela semble logique, cette approche échoue souvent à produire les bordures visibles attendues dans la destination PDF.

La solution : Ciblez TitlesAndFooters

Pour obtenir une bordure qui agit comme une ligne de séparation sous l'ensemble de la zone de titre, il faut modifier l'élément de style TitlesAndFooters.

Voici comment procéder en créant un style personnalisé héritant d'un style existant (comme styles.statistical ou styles.pearl) :

Illustration
1PROC TEMPLATE;
2 define style styles.MonStylePDF;
3 parent=styles.statistical; /* ou le style de votre choix */
4
5 /* Modification de l'élément conteneur des titres et pieds de page */
6 style TitlesAndFooters from TitlesAndFooters /
7 borderbottomcolor = black
8 borderbottomwidth = 1pt
9 borderbottomstyle = solid;
10 END;
11RUN;

Mise en application

Une fois le modèle compilé, il suffit de l'appeler dans l'ouverture de votre destination ODS PDF :

1ods pdf file="C:\temp\mon_rapport.pdf" style=styles.MonStylePDF;
2 
3title1 "Rapport Mensuel";
4title2 "Données confidentielles";
5 
6PROC PRINT DATA=sashelp.class;
7RUN;
8 
9ods pdf close;

Contrairement à l'option underline qui est un attribut de police (font attribute), les propriétés définies dans TitlesAndFooters s'appliquent au conteneur (la boîte) qui héberge vos titres. En définissant une bordure inférieure (borderbottom) sur ce conteneur, SAS© trace une ligne sur toute la largeur allouée à l'en-tête de la page, créant ainsi une séparation nette et professionnelle, indépendamment du nombre de caractères dans vos titres.