Hi
I use SAS in mainframes, i use PROC PRINT to generate a report into a mainframe dataset. But SAS is splitting the records into multiple rows as the number of variables are more. I want all the variables of a record to be printed on a single row. I have no limitation on the LRECL of the dataset, i can extend it as much as to accommodate all variables in one row. I am not able to figure out any options to do this. Can any of you help me with this, please? I have been googling for the past 3 days with no luck. 😞
Thanks
Senthil
https://communities.sas.com/thread/48724
Is it the same? errors notes? Version?
Why are you using PROC PRINT instead of a DATA _NULL_ step to write to a file?
I do not think that you can print all to one row if you have too many variables. You may try width=minimal, and ls ps options?
Senthil,
If you follow the links that others have provided, the main idea is that SAS limits the width to 256 in the print file. However, you might try to work around this by defining your own output file (either in a DD statement in the JCL or in a SAS FILENAME statement). Assuming you had properly defined a file with a larger linesize:
//MYFILE DD ....
And assuming you had also tried OPTIONS LINESIZE=1000 (or whatever large value you would like), redirect the PROC PRINT output to this file using:
proc printto print=MYFILE;
Then see if your PROC PRINT behaves the way you would like. If that doesn't do the trick, you would have to resort to Tom's suggestion. Depending on the number of variables in your data set, that could be a burden.
Good luck.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.