Hi:
There's a difference between plain TEXT output, such as that which is written to the LISTING destination or OUTPUT window and the type of output created by ODS RTF (which is an ASCII text file, but which contains RTF control strings).
Before the introduction of the Output Delivery System, many companies captured their LISTING output to a plain ASCII text file and then used some other process or program (sometimes in SAS, sometimes not) to write RTF control strings around the output report lines. Once -this- RTF file was created, they then imported the file into publishing programs like Ventura Publishing or Adobe PageMaker or Quark in order to "tweak" the report or combine several different report pieces together and then this intermediate file was written to PDF format.
You really need to know whether you're creating LISTING output or RTF output from your program. If you do not see any ODS RTF statements in your program, then you might see a macro call something like %WRITERTF (as described here:
http://www2.sas.com/proceedings/sugi28/143-28.pdf ), then it's possible you are not using the Output Delivery System at all.
If your LISTING output is being written to an ASCII text file, then you might see PROC PRINTTO statements in your program. Or you might see ODS LISTING FILE= statements. Or, if you are running on the mainframe, you might find that your SYSOUT DD statement is writing to a DSN= file instead of to SYSOUT=A.
The BOX option in PROC REPORT, in the LISTING destination, will draw a box around and between report rows. It draws the box with the FORMCHAR= characters --- primitive, but effective as a way to show dividers between report rows.
When you use PROC REPORT, you are building REPORT ROWS -- those report rows may contain observations (if you are creating a detail report), but what you want to do is put blank lines between report rows. You can only use the BREAK statement or ORDER or GROUP usage variables. So if your observation identifier (such as NAM) occurs one time for every observation, then you can simply use:
[pre]
BREAK AFTER NAM/ SKIP;
[/pre]
...to put a blank line after every value of NAM. But, if NAM is the same for a GROUP of observations, then this is not going to put a blank line between the report row that displays every observation. Since NAM is both a GROUP variable and a BY variable in your code, I suspect that more than one observation will be grouped for each NAM.
The issue now is that all the rest of your variables seem to be DISPLAY usage, except for TIM. This means that you cannot perform BREAK processing on any other variable. You can only have a BREAK statement or a COMPUTE AFTER block with a LINE statement for a GROUP or ORDER variable.
So, you know your DATA -- which variable in the data represents each observation?? DATE?? TYP??? MEM??? If you do not have an "observation level" variable to use, you might need to make one in a DATA step program prior to the PROC REPORT. Using _N_ is a handy way to capture a unique obs number. Something like what is shown in the (untested) program below.
Before you go too far down this road, I would recommend that you take the time to understand exactly what type of output you're creating and what is happening to it. It seem like a lot of extra work to bypass ODS PDF or ODS RTF in favor of writing and then post-processing an ASCII text file.
cynthia
[pre]
** capture the _n_ into a variable called OBSNO;
data final;
set mydata; /* you did not have DATA= in your PROC REPORT so I made this name up */
obsno = _n_;
run;
** Now, use OBSNO as an ORDER variable so a SKIP can be added;
** but use NOPRINT for OBSNO so you do not see it on the report.;
PROC REPORT data=final nowd HEADLINE HEADSKIP;
COLUMN NAM obsno DTT TYP PPP DES SDC TIM;
DEFINE NAM / GROUP WIDTH=5 'Name';
DEFINE obsno / ORDER NOPRINT;
DEFINE DTT / 'Date' DISPLAY FORMAT=mmddyy10. WIDTH=10 CENTER;
DEFINE TYP / 'Type';
DEFINE DES / 'Contact/Account' WIDTH=15;
DEFINE PPP / 'Entry Type' WIDTH=5;
DEFINE MEM / 'Type';
DEFINE SDC / DISPLAY WIDTH=65 FLOW 'Entry Description';
DEFINE TIM / 'Time Spent' ANALYSIS SUM;
BREAK AFTER NAM / SUMMARIZE DOL SKIP SUPPRESS;
BREAK AFTER OBSNO / SKIP;
BY NAM;
TITLE1 'Weekly Sales Activities';
TITLE2 ' ';
run;
[/pre]