You "picture" in the attachment showed no details of what the "report" might actually look like so can't provide a better targeted example.
Here is an example of using Proc Tabulate to display some statistics and controlling the width of the area the labels appear in.
Proc tabulate data=sashelp.class;
class sex;
classlev sex/ style=[width=1.5in];
label sex='Student Sex';
var height;
table sex,
height='Student Height'*{style=[width=3in]}*(mean min max stddev)
;
run;
You should have the SASHELP.Class data set available and can run this code.
This demonstrates two different types of labels for Class (grouping variables) and Var (analysis variables).
The Classlev statement overrides the default (i.e. the procedure generic code) for setting the width of the column that the variable Sex label and values appear in. In this case I set that 1.5 inches. The example for height shows using table options to 1) override the default Label in line without use of a label statement and 2) how to override the width, setting it to 3 inches in this case to make it fairly obvious that we can set widths much longer than actually needed.
Proc Tabulate pretty much does all the statistics that Proc Means/Summary does as well as some percentages.
You can also "nest" in multiple dimensions and request multiple different tables in one procedure call. Tradeoffs: you have to explicitly state a variable is either a Class or Var variable and only those are used in the table(s). Any observation with a missing value for one or more of the class variables is excluded from the summary.
... View more