BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
CHUNantes
Obsidian | Level 7

Hello.

With this code :

DATA work.tableau1;
   LENGTH Colonne1 Colonne2 Filler Colonne3 Colonne4 $200.;
   Colonne1 = "Nom :";
   Colonne2 = "DOE";
   Filler = "";
   Colonne3 = "Sexe : Masculin";
   Colonne4 = "Situation juridique : Séparé";
   OUTPUT;
   Colonne1 = "Nom usuel :";
   Colonne2 = "DOE";
   Filler = "";
   Colonne3 = "Téléphone :";
   Colonne4 = "06.12.34.56.78";
   OUTPUT;
   Colonne1 = "Prénom :";
   Colonne2 = "John";
   Filler = "";
   Colonne3 = "Pays :";
   Colonne4 = "France";
   OUTPUT;
   Colonne1 = "Né(e) le :";
   Colonne2 = "01/01/2000";
   Filler = "";
   Colonne3 = " ";
   Colonne4 = " ";
   OUTPUT;
   Colonne1 = "Adresse habituelle :";
   Colonne2 = " ";
   Filler = "";
   Colonne3 = "Adresse secondaire :";
   Colonne4 = " ";
   OUTPUT;
   Colonne1 = "121 Baker Street";
   Colonne2 = " ";
   Filler = "";
   Colonne3 = " ";
   Colonne4 = " ";
   OUTPUT;
   Colonne1 = " ";
   Colonne2 = " ";
   Filler = "";
   Colonne3 = " ";
   Colonne4 = " ";
   OUTPUT;
   Colonne1 = "LONDON";
   Colonne2 = " ";
   Filler = "";
   Colonne3 = " ";
   Colonne4 = " ";
   OUTPUT;
RUN;

ods escapechar='^';
options nodate nonumber orientation=portrait;
ods pdf file="C:\Temp\SAS\test.pdf"
        /*STYLE= STYLES.BIGGERFONT*/
        startpage=never
;

proc report data=work.tableau1 STYLE(REPORT) = [RULES = NONE FRAME = VOID FONT_SIZE = 12PT WIDTH=100%];
    columns Colonne1 Colonne2 Filler Colonne3 Colonne4;
    define Colonne1 / 'Patient IPP :' style(header)=[just=r background= WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne2 / '123456789' style(header)=[just=l background = WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Filler   / ' ' style(header)=[background = WHITE font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne3 / 'Gestionaire :' style(header)=[just=r background = WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne4 / 'J1' style(header)=[just=l background = WHITE Font_face=Arial Font_size=12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    COMPUTE Colonne1;
       count+1;
       IF count LE 5 THEN DO;
          CALL DEFINE(_ROW_,'style','style={background=#F7F7F7 Font_face=Arial Font_size=9pt}');
          CALL DEFINE('_C3_','style','style={background=WHITE Font_face=Arial Font_size=9pt}');
       END;
       IF count IN (6,7) THEN DO;
          CALL DEFINE('Colonne1','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=#F7F7F7 borderleftwidth=1
                                                 borderrightcolor=WHITE borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=WHITE borderbottomwidth=1
                                                }');
          CALL DEFINE('Colonne2','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=WHITE borderleftwidth=1
                                                 borderrightcolor=#F7F7F7 borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=WHITE borderbottomwidth=1
                                                }');
       END;
       IF count IN (8) THEN DO;
          CALL DEFINE('Colonne1','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=#F7F7F7 borderleftwidth=1
                                                 borderrightcolor=WHITE borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                }');
          CALL DEFINE('Colonne2','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=WHITE borderleftwidth=1
                                                 borderrightcolor=#F7F7F7 borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                }');
       END;
    ENDCOMP;
run;

ods pdf close;
ods listing;

I am not able to get proper background for the column in the middle of the report (column Filler) as :

CALL DEFINE('_C3_','style','style={background=WHITE Font_face=Arial Font_size=9pt}');

Is not interpreted.

And I can't remove borders :

CHUNantes_0-1757409442179.png

I have tried to PUT a COMPUTE Colonne2 block to get borders for that column but this is worse 😞

 

How can I set borders for each row / column the way I want ?

 

How can I set the background colour for specific column ?

 

Thanks for your help

1 ACCEPTED SOLUTION

Accepted Solutions
Kathryn_SAS
SAS Employee

Since PROC REPORT reads left to right on the Column statement, I would suggest adding a dummy variable at then end and use that in the Compute block.

ods escapechar='^';
ods listing close;
options nodate nonumber orientation=portrait;
ods pdf file="C:\Temp\test.pdf"
        /*STYLE= STYLES.BIGGERFONT*/
        startpage=never
;

proc report data=work.tableau1 STYLE(REPORT) = [RULES = NONE FRAME = VOID FONT_SIZE = 12PT WIDTH=100%];
    columns Colonne1 Colonne2 Filler Colonne3 Colonne4 dummy;
    define Colonne1 / 'Patient IPP :' style(header)=[just=r background= WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne2 / '123456789' style(header)=[just=l background = WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Filler   / ' ' style(header)=[background = white font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne3 / 'Gestionaire :' style(header)=[just=r background = WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne4 / 'J1' style(header)=[just=l background = WHITE Font_face=Arial Font_size=12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
	define dummy / computed noprint;
    COMPUTE dummy;*Colonne1;
       count+1;
       IF count LE 5 THEN DO;
          CALL DEFINE(_ROW_,'style','style={background=#F7F7F7 Font_face=Arial Font_size=9pt}');
          CALL DEFINE('_C3_','style','style={background=WHITE Font_face=Arial Font_size=9pt}');
       END;
       IF count IN (6,7) THEN DO;
          CALL DEFINE('Colonne1','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=#F7F7F7 borderleftwidth=1
                                                 borderrightcolor=WHITE borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=WHITE borderbottomwidth=1
                                                }');
          CALL DEFINE('Colonne2','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=WHITE borderleftwidth=1
                                                 borderrightcolor=#F7F7F7 borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=WHITE borderbottomwidth=1
                                                }');
       END;
       IF count IN (8) THEN DO;
          CALL DEFINE('Colonne1','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=#F7F7F7 borderleftwidth=1
                                                 borderrightcolor=WHITE borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                }');
          CALL DEFINE('Colonne2','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=WHITE borderleftwidth=1
                                                 borderrightcolor=#F7F7F7 borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                }');
       END;
    ENDCOMP; 
run;

ods pdf close;
ods listing;

View solution in original post

2 REPLIES 2
Kathryn_SAS
SAS Employee

Since PROC REPORT reads left to right on the Column statement, I would suggest adding a dummy variable at then end and use that in the Compute block.

ods escapechar='^';
ods listing close;
options nodate nonumber orientation=portrait;
ods pdf file="C:\Temp\test.pdf"
        /*STYLE= STYLES.BIGGERFONT*/
        startpage=never
;

proc report data=work.tableau1 STYLE(REPORT) = [RULES = NONE FRAME = VOID FONT_SIZE = 12PT WIDTH=100%];
    columns Colonne1 Colonne2 Filler Colonne3 Colonne4 dummy;
    define Colonne1 / 'Patient IPP :' style(header)=[just=r background= WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne2 / '123456789' style(header)=[just=l background = WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Filler   / ' ' style(header)=[background = white font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne3 / 'Gestionaire :' style(header)=[just=r background = WHITE Font_face=Arial font_size = 12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
    define Colonne4 / 'J1' style(header)=[just=l background = WHITE Font_face=Arial Font_size=12pt borderwidth = 0]
                                      style(column)=[borderrightcolor=#F7F7F7 borderrightwidth=1
                                                     borderleftcolor=#F7F7F7 borderleftwidth=1
                                                     bordertopcolor=#F7F7F7 bordertopwidth=1
                                                     borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                    ]
    ;
	define dummy / computed noprint;
    COMPUTE dummy;*Colonne1;
       count+1;
       IF count LE 5 THEN DO;
          CALL DEFINE(_ROW_,'style','style={background=#F7F7F7 Font_face=Arial Font_size=9pt}');
          CALL DEFINE('_C3_','style','style={background=WHITE Font_face=Arial Font_size=9pt}');
       END;
       IF count IN (6,7) THEN DO;
          CALL DEFINE('Colonne1','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=#F7F7F7 borderleftwidth=1
                                                 borderrightcolor=WHITE borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=WHITE borderbottomwidth=1
                                                }');
          CALL DEFINE('Colonne2','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=WHITE borderleftwidth=1
                                                 borderrightcolor=#F7F7F7 borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=WHITE borderbottomwidth=1
                                                }');
       END;
       IF count IN (8) THEN DO;
          CALL DEFINE('Colonne1','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=#F7F7F7 borderleftwidth=1
                                                 borderrightcolor=WHITE borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                }');
          CALL DEFINE('Colonne2','style','style={background=WHITE Font_face=Arial Font_size=9pt
                                                 borderleftcolor=WHITE borderleftwidth=1
                                                 borderrightcolor=#F7F7F7 borderrightwidth=1
                                                 bordertopcolor=WHITE bordertopwidth=1
                                                 borderbottomcolor=#F7F7F7 borderbottomwidth=1
                                                }');
       END;
    ENDCOMP; 
run;

ods pdf close;
ods listing;
CHUNantes
Obsidian | Level 7
Thank you very much for this tip 😉 !!

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 881 views
  • 2 likes
  • 2 in conversation