Hi, Teresa:
I'm not sure what you mean by an "output line listing" -- do you mean you do NOT want a PROC TABULATE table?
Currently, it looks like you have a 3 dimensional table:
[pre]
table
coname='COUNTY:'*type='SCHOOL TYPE:'*distname='SCHOOL DISTRICT:', /* PAGE dimension */
schname='SCHOOL NAME', /* ROW dimension */
total*f=comma9. pbe*f=comma9.*(sum pctsum*f=comma9.2) /* COL dimension */
/ row=float rtspace=50;
[/pre]
Or do you mean that you want a different kind of report from Proc Tabulate, perhaps a report without the PAGE dimension. right now, it looks like you have a separate logical page for every unique combination of county, school type, and district. Then you should have school name going down the rows with total and the sum of PBE and PCTSUM of PBE going across the columns.
Proc Tabulate uses table operators to arrange the structure of the table. So, every comma (,) means start a new dimension. If you have 2 commas in your table statement, then you would have 3 dimensions -- page, row and column. If you have 1 comma in your table statement, then you would have 2 dimensions, row and column. And if you have no commas in your table statement, then you would have only the column dimension in your table. The asterisk operator (*) tells Proc Tabulate to "nest" or "stack" columns...
So, if you wanted to simply eliminate the PAGE dimension, you could change the comma after SCHOOL DISTRICT to an asterisk:
[pre]
table coname='COUNTY:'*type='SCHOOL TYPE:'*distname='SCHOOL DISTRICT:' * schname='SCHOOL NAME',
total*f=comma9. pbe*f=comma9.*(sum pctsum*f=comma9.2)
/ row=float rtspace=50;
[/pre]
However, that would leave school nested within district nested within type nested within county. If you mean you want a simple proc print listing, then you
could just run a PROC PRINT with the appropriate VAR statement -- but PROC PRINT will not calculate summaries and/or percents for you.
If you still want a summary report -- only "flattened", then you might try PROC REPORT with the GROUP usage for county, type, district and school name. However, since you are using a special denominator in TABULATE, you may need to get into issues of using COMPUTE blocks with PROC REPORT. For that, you might be better off contacting Tech Support for help.
Yet another option is to have PROC TABULATE create an output data set for you by modifying the PROC TABULATE statement:
[pre]
proc tabulate data=kasch_update noseps out=work.tabout;
[/pre]
And in this case, a simple PROC PRINT on WORK.TABOUT may be what you want. You will probably have to rename some of the calculated variables in the WORK.TABOUT dataset because PROC TAB does not use your LABEL statement to name the variables.TABULATE also adds some automatic variables to the output dataset _TYPE_, _PAGE_ and _TABLE_ that are explained in the TABULATE documentation, but you can pretty much figure out what they mean by comparing your TABLE statement to the output dataset.
cynthia