logo

ODS : Titres très longs dans ODS RTF

Bonjour,
je fais un tableau avec une PROC REPORT dans un fichier RTF.
Je voudrais que mes titres de colonnes soient écrits verticalement et non horizontalement (il sont très longs).
J’ai vu qu’on arrivait à ce résultat dans une sortie HTML en ajoutant style(header)={htmlstyle= »mso-rotate:90″}
Mais ça ne marche pas sur une sortie RTF.
Auriez-vous une idée sur la manière d’obtenir ce résultat ?
Merci d’avance.

Bonjour.
Si vous voulez éviter d’avoir sur une ligne des titres trop longs, vous pouvez incruster des caractères spéciaux dans les labels et utiliser tout simplement l’option SPLIT de la proc REPORT.

ODS RTF FILE="c:\temp\test vertical.doc" ;
 PROC REPORT DATA=sashelp.shoes SPLIT=" " NOWD ;
    COLUMNS _ALL_ ;
 RUN ;
ODS RTF CLOSE ;

Ici l’espace sert d’indication pour revenir à la ligne, mais on peut modifier les labels pour incruster à l’endroit voulu (y compris après chaque lettre !) un caractère de retour à la ligne.

PROC CONTENTS DATA=sashelp.shoes OUT=work.labels (KEEP=name label) NOPRINT ;
RUN ;
DATA _NULL_ ;
    SET work.labels END=fin ;
    LENGTH newLabel $ 200 ;
    newLabel = PRXCHANGE("s/(.)/¤$1/",-1,STRIP(COALESCEC(label,name))) ;
    newLabel = SUBSTR(newLabel,2) ; /* élimine le 1er ¤ ajouté en tête */
    IF _N_=1 THEN CALL EXECUTE ("DATA work.export ; SET sashelp.shoes ; LABEL ") ;
    CALL EXECUTE (name !! "=" !! QUOTE(STRIP(newLabel))) ;
    IF fin THEN CALL EXECUTE ("; RUN ;") ;
RUN ;
ODS RTF FILE="c:\temp\test vertical.doc" ;
 PROC REPORT DATA=work.export SPLIT="¤" NOWD ;
    COLUMNS _ALL_ ;
 RUN ;
ODS RTF CLOSE ;