DATA Step, Macro, Functions and more

Proc Report Set a Column Bold based on another Column

Reply
Occasional Contributor
Posts: 6

Proc Report Set a Column Bold based on another Column

I have a Proc Report that goes like this

 

Proc Report Data=Table1;

Column A B C;

compute A;

   if B eq 0 then call define(_col_,"style","style={font_weight=bold}");

endcomp;

Run;

 

However, it doesn't work. 

 

The log says that B is uninitialized. Is there a way to solve it? Thanks before.

 

Super User
Posts: 9,687

Re: Proc Report Set a Column Bold based on another Column

proc report is from left to right .

compute A;
---->
compute B;
or
compute C;
Occasional Contributor
Posts: 6

Re: Proc Report Set a Column Bold based on another Column

Sorry, I don't think I get the point. So how do I compute/set variable A based on Variable B? Thanks.
Super Contributor
Posts: 264

Re: Proc Report Set a Column Bold based on another Column

proc reports reads the variable from left to right, when computing A, B has no value. You have to clone B:

 

Proc Report Data=Table1;
  columns B=_B A B C;

  define _b / noprint;

  compute A;
     if _b eq 0 then call define(_col_,"style","style={font_weight=bold}");
  endcomp;
run;
Super User
Posts: 9,687

Re: Proc Report Set a Column Bold based on another Column

compute block is calculated from left to right.
So when you compute it at A , SAS can't know the value of B, because B is after A.
Change :
compute A;
---->
compute B;
or
compute C;

Occasional Contributor
Posts: 6

Re: Proc Report Set a Column Bold based on another Column

I try to do like below (re-arranging the column)

 

Proc Report Data=Table1;

Column B A C;

compute A:

   if B eq 0 then call define(_col_,"style","style={font_weight=bold}");

endcomp;

Run;

 

And still unsuccesful, can you let me know what did I miss out? Thanks.

Super User
Posts: 9,687

Re: Proc Report Set a Column Bold based on another Column

You are defining  _COL_ ,so you can only highlight A not B.
Change it as 

compute B:
SAS Super FREQ
Posts: 8,743

Re: Proc Report Set a Column Bold based on another Column

Hi: for a concrete example of how PROC REPORT works, review this related posting:

http://communities.sas.com/t5/Base-SAS-Programming/PROC-REPORT-SAS-log-reporting-dataset-variables-a...

 

It has some pseudo-code examples of PROC REPORT's left-to-right processing and how a COMPOUND name has to be used for numeric variables.

 

cynthia

Ask a Question
Discussion stats
  • 7 replies
  • 284 views
  • 0 likes
  • 4 in conversation