DATA Step, Macro, Functions and more

Wrapped text strings in the first column cause unwanted white space in subsequent rows in PROC REPOR

Reply
Regular Learner
Posts: 1

Wrapped text strings in the first column cause unwanted white space in subsequent rows in PROC REPOR

Hi all,

Hope someone can help me with the below issue. As I have not been able to the issue myself and I am running out of ideas. Smiley Happy

I have a similar question as have been previously posted (getting proc report spanrows to work correctly with long lines of text in PDF output) and the work around Usage Note 45549: Wrapped text strings in the first column cause unwanted white space in subsequent ...) mentioned. However, my output format is txt and not ODS PDF. Does this change the anything regarding how to work around this problem? 

kind regards

FHeinen

Super User
Super User
Posts: 7,403

Re: Wrapped text strings in the first column cause unwanted white space in subsequent rows in PROC R

If your going to plain text file, then you would need to put the breaks in yourself.  So create a dataset as you want the output to look like then proc report very basic code.  This is a bit of a hack, but shows the kind of thing:

data have;
  var1="This is an example of a description that is too long so it wraps down to the next line";
  var2="Manager"; var3=3; id=1; output;
  var2="staff"; var3=2; id=2; output;
  var2="peer"; var3=3; id=3; output;
run;

proc sort data=have out=inter (keep=var1) nodupkey;
  by var1;
run;

data inter (drop=i);
  set inter;
  retain id;
  length var_res $30;
  if _n_=1 then id=1;
  do i=1 to countw(var1);
    if lengthn(strip(var_res)||" "||scan(var1,i," ")) <= 30 then var_res=strip(var_res)||" "||scan(var1,i," ");
    else do;
      output;
      id=id+1;
      var_res=scan(var1,i," ");
    end; 
  end;
run;

proc sql;
  create table WANT as
  select  B.VAR_RES as VAR1,
          A.VAR2,
          A.VAR3
  from    WORK.HAVE A
  left join WORK.INTER B
  on      A.ID=B.ID;
quit;
Super Contributor
Posts: 394

Re: Wrapped text strings in the first column cause unwanted white space in subsequent rows in PROC R

Whe you say the output format is text, I assume you're writing to the SAS listing (or some other non-styled output file). In this case the solutions that rely on ODS styles won't work and SPANROWS doesn't apply. You'll have to fall back to the old-school PROC REPORT listing options. Check out the WIDTH and FLOW options on the DEFINE statement for example.

Ask a Question
Discussion stats
  • 2 replies
  • 170 views
  • 0 likes
  • 3 in conversation