The SAS Output Delivery System and reporting techniques

Question about SAS reporting

Occasional Contributor
Posts: 11

Question about SAS reporting

Hi all.
I apologize in advance if this area is not the right one.
We have a project where the customer want to see a report by selecting a choice through combo-box or data input.
The question is: is it necessairy to develop a mask of multiple choice/data input in Java server pages, or SAS (which solution?) has a native function that implement the needed functionality?
Waiting for a kind feedback,
i'm available for clarification or further question
Posts: 8,744

Re: Question about SAS reporting

So many choices for ways to do what you want. The answer really depends on the software that is available to you.

In Base SAS, you could develop a SAS Macro program with parameters and the user would only have to change the parameters to run and submit the program. (This would fall more into the category of the user supplying data input, in the form of a program call...something like:
User 1:


...where the %RUNREGION Macro program was pre-defined and available for either user to run with different parameters.) An example of a SAS Macro application can be found here:

Or, with SAS Enterprise Guide, you could set up a project to produce the report (and do any needed data selection/data manipulation) and define parameters that were needed to run the report. When the user ran the report, they would be prompted for the value. I believe you can set up the parameter choices and how they will be displayed when you define the parameters. There are some nice screen shots of such an applcation in EG in these paper: (custom tasks in EG) (customs tasks if you have EG, and the SAS Add-in for Microsoft Office)

If you had SAS/AF (Application Facility), you could develop a SAS-based menuing system to prompt and produce a report. You can see some sample screens in this paper:

Another approach is one where you develop your own prompting "front end" and call SAS in batch or client mode to satisfy the report request. This might involve using SAS on a server or using SAS Integration Technologies or using SAS Data Providers. Here are some papers that discuss some examples:

If you have SAS/IntrNet, you can either use htmSQL and the Application Dispatcher to create HTML forms in order to prompt the user for report parameters or you could develop your own HTML front end and just call the Application Dispatcher program. Some discussion of SAS/IntrNet capabilities is contained in these papers: (a comparison of SAS/AF versus SAS/IntrNet) (SAS/IntrNet & Java)

Last, but certainly not least, with the SAS Enterprise Intelligence Platform and its suite of client applications, you can develop stored processes that run directly in applications like Word, Excel, PowerPoint, SAS Enterprise Guide, SAS Web Report Studio or a web-based Information Delivery Portal (which is where you'd implement custom Java server pages). Here's some information about using the Enterprise Intelligence Platform:

You can also use webAF and the JavaBeans included in that software, with certain other web tier configurations and SAS servers, to design your own front end applcation as described here:

At any rate, without knowing what SAS software you have available to use, it's very hard to point you to starting information. The simple answer to your question is ... yes, it's possible to give a user a report based on choices they make through some kind of combo-box or data input. Your choices run from the very simple code-based methods to much more complex methods. Perhaps your best bet is to work with your SAS Sales Representative or SAS Consulting for a design based on what software and programming expertise you or the customer has available.

Occasional Contributor
Posts: 11

Re: Question about SAS reporting

Hi Cynthia, and thanks very much for the quick and detailed answer.

Regarding the software SAS available for the above project, the products in use are:
SAS Base
SAS Enterprise BI Server, including:
• SAS Table Server
SAS Enterprise Guide
SAS/ACCESS Interface to ODBC
SAS/ACCESS Interface to Oracle

I can add further information and question:
- the reports/OLAP cube we need to develop are supposed to be published on a web link (at the moment, not the SAS Portal)
- do you think the customized filters for a multiple choice, after which a static/dynamic report has to be visualized , need a Java develop on the custom mask to be realized, or combo-box and button choice can also be developed in EG for example?

Thanks in advance for the attention, bye
Posts: 8,744

Re: Question about SAS reporting

I'd suggest that you investigatee the capabilities of stored processes before going down the Java development road. Here are a few of my papers on stored processes in SAS 9.1.3 -- you can see some screenshots of simple prompts:

Stored processes get better in SAS 9.2 because the prompting framework has changed to support dynamic and cascading prompts for stored processes. Here's a paper about EG 4.2 and Stored Processes:

And more on stored processes in SAS 9.2:

Hope this helps,
Posts: 0

Reading Box delimited mainfram flat file into SAS

Hi everybody,

I have trouble importing Box () delimited text file from mainframe into SAS. The Problem here is DSD is not recognizing the Box delimiters and all the variables are going into wrong containers. I can not use pointers or fixed length or mixed input to read the file. This is very large flat file and I have enclosed the flat file sample data to look at and import into SAS, some reason Box delimiters are not appearing in the email test, in that case you replace the '+' into box delimiters.

I have also given the sample code to import the file.

Original Data:

AA01 AB02AC09AD10AE200
AA01 AB0123AC09AD1044AE4500

Replace the Pluses(+) symbols into Box delimiters

+AA01 ++AB02+AC09++AD10+++AE200+
+AA01 ++AB0123+AC09++AD1044+++AE4500+

DATAFILE 'C:\mainframFlafile.txt' ' DBMS = DLM REPLACE;

DATA WORK.testdata ;
%let _EFIERR_ = 0;
infile 'C:\mainframFlafile.txt' delimiter = '' MISSOVER DSD lrecl=385 ;
informat var1 $4;* var1to var100
format var1 $4;
input var1$;
if _ERROR_ then call symputx('_EFIERR_',1);

I appreciate if anyone can help me to read this file into SAS.

Thank you,

Super Contributor
Super Contributor
Posts: 3,174

Re: Reading Box delimited mainfram flat file into SAS

Best to start a NEW POST rather than piggyback on someone else's post in the future.

And, as I replied on sas-l @ ittoolbox: you will be best served by sharing the SAS-generated (expanded) log information (COPY/PASTE in a post reply) with a PUTLOG _ALL_; to show the SAS-generated variable values as well as the input record.

Also, there is possibly a translation performed between the EBCDIC mainframe and the ASCII-based OS platform, contributing to this issue.

Suggestion: start out by capturing the SAS-generated DATA step code (from PROC IMPORT), make a change to add the PUTLOG _ALL_;, rerun the SAS program code, and inspect the output, and then post to a new thread with your challenge

Scott Barry
SBBWorks, Inc.
Posts: 1,566

Re: Reading Box delimited mainfram flat file into SAS

A Scott said, it is bad to piggyback on someone else's post. If this reply doesn't suit, please start a new post.
"Square box" delimiters don't exist, or rather could be anything. Find out the character code(s) on the platform reading the data. The hex code I got from your post is 1C. So replace
Ask a Question
Discussion stats
  • 6 replies
  • 5 in conversation