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
Diamond | Level 26
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

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 1 reply
  • 1328 views
  • 0 likes
  • 2 in conversation