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.
compute A; ----> compute B; or compute C;
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;
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;
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.
You are defining _COL_ ,so you can only highlight A not B. Change it as compute B:
Hi: for a concrete example of how PROC REPORT works, review this related posting:
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
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.