04-17-2015 08:21 PM
I need highlight each other row and at same time color letter if a>4000, but my code below doesn't work.... can you guys see issue? Thanks!
a>4999.9999999 and mod(count,2)=1 then
call define(_row_, "style", "style=[color=red background=white]");
a>4999.9999999 and mod(count,2)=0 then
call define(_row_, "style", "style=[color=red background=lightgrey]");
mod(count,2)=1 and a=<4999.9999999 then
call define(_row_, "style", "style=[background=white]");
mod(count,2)=0 and a=<4999.9999999 then
call define(_row_, "style", "style=[background=lightgrey]");
04-18-2015 09:13 AM
You really need to post more of your code. for example, if the COLUMN statement is:
COLUMN A ID xxx yyy zzz; Then it should be OK for you to test A in the COMPUTE block for ID. But if the COLUMN statement is:
COLUMN ID A xxx yyy zzz; then going by the PROC REPORT "left-to-right" rule, at the point in time when PROC REPORT is handling the value for ID, it has not yet placed the value for A on the report row, so the value of A cannot be tested in the compute block for ID.
Another possibility, which nobody can comment on because you did not include your DEFINE statement for A is whether A is a default usage of DISPLAY or (more likely) since A is numeric a DEFAULT usage of SUM. If A is a default usage of SUM, then you have to test on A.SUM as the compound name (variable_name.statistic - -which is how PROC REPORT wants to reference numeric variables with a usage of ANALYSIS, which is the default usage if you do NOT have a DEFINE statement or you do not list a usage on the DEFINE statement for a numeric variable).
All of this is outlined well in the PROC REPORT documentation. And, here's an example to get you started http://support.sas.com/resources/papers/proceedings13/366-2013.pdf it uses SASHELP.CLASS, starting around page 12.