Hello
I have SAS 9.4 on a Windows environment.
We have been using DDE to print multiple output onto a worksheet where the output is placed side by side across the worksheet. However we would like to move away from DDE as it seems to be slow on the latest Windows version to the point of being unusable.
I don't believe ods tagsets.ExcelXP permits side-by-side layout
.
Does ODS Excel within 9.4 permit side-by-side layout, and if so how is this specified please?
Thanks
An example might help. Why can you not create the output files, and join them together? Quite simple you could even use Excel nomencalture, eg:
dataset1 ROWNO A B C D
dataset2 ROWNO E F G H
Merged:
ROWNO A B C D E F G H
You could also try the option;
PAGE_ORDER_ACROSS | no | If set to yes, the worksheet page order will be set to print across, then down |
Look in the guidance:
https://support.sas.com/rnd/base/ods/odsmarkup/excelxp_help.html
Thanks RW9. I am trying to mimic the level of output location control that DDE provides.
I had considered joining the output together and using proc report styling hacks to make it appear as two outputs. But this might not always work as we have many reports that have been built using DDE over the years.
The tagset option PAGE_ORDER_ACROSS creates one output per worksheet, whereas I am trying to control multiple SAS outputs within one worksheet e.g. the audience wants to compare tables side by side when printed on paper.
Not with tagset. You can try this:
http://www.sascommunity.org/wiki/A_Poor/Rich_SAS_Users_Proc_Export
Never used it myself. If it was me, I would change the whole process, never seen the point in multiple outputs on one sheet, or big Excel files. Excel is really not a reporting environment, not a data transfer file format etc.
Maybe not ideal but this shows a combined data set split across by the data set name. Use of IN= options in the Work.All would allow conditional assignment of better text than the data set name. To compare data the two sets should be sorted the same.
data work.one; input grp x y; datalines; 1 3 28 1 2 56 1 5 33 ; run; data work.two; input grp x y; datalines; 1 3 28 1 2 56 1 5 23 ; run; data work.all; length source $42.; set work.one work.two indsname=temp; source = temp; run; proc report data=work.all; column source,(grp x y); define source /across; run; quit;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.