BookmarkSubscribeRSS Feed
JanA
Calcite | Level 5

Hi.

(Carried over from a different topic.) 

 

I use "proc tamplate" like this:

 

 

  proc template;                                                               

       define style Appendix2;         

       parent = styles.rtf;                                                    

       .

       .

      replace headersandfooters from cell;                                   

      replace color_list /                                

         'bgA1' = cx999999;                                                    

      replace colors /                       

         'tableborder' = color_list('bgA1');              

        .

        .

        .

      style SystemFooter from Titlesandfooters /                                

         just = L;                                         

   end;                                                                       

run;           

 

 

got this warning:  WARNING: Could not locate style reference 'Appendix2.colors("notefg")'.

                            WARNING: Could not locate style reference 'Appendix2.colors("notebg")'.

                            WARNING: Could not locate style reference 'Appendix2.colors("bylinefg")'.

                      etc

                                  

 

 

to get rid of the warning i could put this in the code:

replace colors /                       

         'tableborder' = color_list('bgA1')                                

         'notefg' = color_list('bgA1')                                      

         'notebg' = color_list('bgA1')                                      

         'bylinefg' = color_list('bgA1')                                       

         .

         .

         

        'link1' = color_list('bgA1')                                      

         'contentfg' = color_list('bgA1')                                      

         'contentbg' = color_list('bgA1');

 

 

is it becouse i have to define color for any style, is it not predefine?

 

 

BR

Jan

Jan

            

 

                                                    

1 REPLY 1
Cynthia_sas
SAS Super FREQ
Hi:
REPLACE was deprecated starting in SAS 9.2. This paper describes the new behavior of the STYLE and CLASS statements in PROC TEMPLATE: http://www2.sas.com/proceedings/sugi31/053-31.pdf

If you are using a version of SAS earlier than 9.2 and you do you the REPLACE statement, you must account for all the attributes when you do a REPLACE. So that warning was telling you that SAS and ODS were looking for those attributes from the color_list that were listed in the warning and did not find them in your template.

This is a version specific question. So it matters what version of SAS you're using whether REPLACE will work or not.

I always tended to avoid it in early versions of SAS because understanding how inheritance was changed by the use of REPLACE was sometimes difficult, especially with a parent template.

Writing new styles has become easier since SAS 9.2. Refer to this paper for examples: https://support.sas.com/resources/papers/proceedings10/033-2010.pdf

cynthia

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register 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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 1 reply
  • 883 views
  • 0 likes
  • 2 in conversation