Figures 1 and 2 show two different worksheets of the same Excel workbook. ...
You can download a copy of the sample data and code used in this paper from
the SAS ... An ODS destination controls the type of output that's generated (HTML
, RTF, PDF, etc.). ... The files are available to anyone who has network access.
SUGI 31
Hands-on Workshops
! "
!# $%! $ $ % % 0 # ! % # #
"
"
%
0 #
# !
" " +* 2 2
! 2
2
! & ' . /
,--,
"" "
#
# 1 % % 4
/ #
( "0
" ) "
0
# % * 1 2
# 1
3
* #
#
*
#
&$%'() $ '& # 5
" "
" * ,
*
#
"0
0
"
(
+
5
, % &$ , #
#
2 # "
%% #
: %
" !" %
# 68 * % + # 68 # #
6 # 6
(;' 6 6 %6. 0 !"
# % # 2 # # 89 " " +
! % 5
6 % #
#
)
'
2 6 # ,.
2
# " =
%
!
2
2 #
. #
*
7 %
% # #
6
# " @ # "" " # 2 #
)
# "
" # !
2
#
& ' # " % @
# @ %B
%
& '
#
@ "
*
8
.
# 2
! %" 6
! 2
2
2 #
5 ( # # 1 " " % # 0 # !
# %"
2?
!
# #
# ! ! &8 % ! "
ods ods * ods
?
# #
'
,--, 8?
,'( . #!
(
2
"
" 5
"
" "
')$ )$ ( / 0 %1 1 $ @
# # %"
-
5
" #
" " " #
%
, #
" " +A ' 9 5 8 5 @ &86 !
# 3
# !
" 7 #
" 6 !
!
&8 @ 6#
%"
#*
0
6 #
!
% !
% . 2
# 0 #
,--,
; 2
" @ # 2 # #
? @ 2 2 2 / %"
#
listing close; tagsets.ExcelXP style=style-name file=file-name ... ; Your SAS code here; tagsets.ExcelXP close; % # !
+ .
#
6
"
6@
,
$
& '
#
SUGI 31
Hands-on Workshops
# #
@
%
""
# %
+ .
# & '
"
#
"
#
#
"
#
# %
#
/'
@
" *
#
B
ods listing; proc template; list styles; run; quit; #
#
@
#
# *
$ • • •
+ .
# & ' "
#
#
@
*
# # $ 0 0 *
$ #
0
? "
@ #
#
""
!
#
% 2
$
% *
*
#
# " 6
* "
* "0
" *
"
#
" B
"
2 " #
%
# # 65
5
! %"
% " % 6
!
# & ' # ! % # * " " # ! % File ➨ Save As # Microsoft Excel Workbook (*.xls)
$$ &3 ) $4 '( %" 8 A
" %
#
20
#
!
%
2
/
# 3
0
20
2
# % *
$4 5
# !
. * B
$
! File ➨ Open # 65 % 6 " # ;9' # http://Web-server/directory/aedata.xml 2 Open %" # & '
,
@ @
2+ #
*
#
"
"
& &3 '( ')$ )$ "
#
%
# # & ' / 2 "
'
%
&0 %'&
&$
0 #
#
%
;
?
%
*
#
"
",
%
! % # 6
#
!
&8 %B
#
*
;
#
libname mylib 'some-directory'; * Location to store tagsets and styles; ods path mylib.tmplmst(update) sashelp.tmplmst(read); # '( %" " %
%
+ . " #
# # $@9C # %
#
0 3 %
#
# @
# "
8 A % + . " # # # % mylib.tmplmst " sashelp.tmplmst " 6 6 ( @ % mylib.tmplmst < " = 89@ tmplmst.sas7bitm # # 3
8' # #
/ '(
2 # % #
# 2 @
# @ 8
8 A
A %
% #
"
#
?
#
# %
# %
%
# # # 6 " 6 # # # 8 A #
@ % *
# %
/' ( 5
9 A " #
/
# #
SUGI 31
Hands-on Workshops
$4
5
/5 $!3
@ "
# *
$ #
"" " " $ 2 #
2 # 8 0 # ! $ 2 # # # % 2 #
*
@ %
# "
# * #
'( # !
@ !
" /' ( 8 A
&8 2 2
%"
# % # " " 5 # " 2 " #
" *
*
# #
6 % % #
!
&8
%" 6 ! &8
6
B
%include 'ExcelXP.sas'; /
8 A % # * # "" %> $ # 6 # # ! &8
* Specify path to the file, if necessary;
% #
"
%
""
#
+
!
&8 " " # @
6
% #
" "
""
%" % *
%
#
6
# # %
#
# # * .
"
#
"" B
#
filename temp temp; ods tagsets.ExcelXP file=temp options(doc='help'); ods tagsets.ExcelXP close; #
% "
$4
)3
# $ #
2
/
"
2
#
#
'
*
"
#
%
*
#
$1/
2 # ( # #
5
, #
%"
""
!
#
#
"
#
# % # @ #
#
% %
6
; ? "
# #
5
" "
#
/ # # /' ( @ 8 A
'(
# * %
# ; ; ? ; ?
"
% #
+
? #
% %" 6 "
#
" " # @
6
% *
; %
? 6
* . (
0 "# 8' "
#
) &3 '( $' ( @ # !
(
# %"
!
@ # @
% !$ $4 &8 ! "
'( $' % !$ $4
#
)/$
4
# # 89 " 5
/
#
%
+
$ 5
/
2 # (;'
"
" # " " ))) ,--D.
#
'%6#''6 # %
"
" #"
!
2 #
'%6#''6
#
!
2
2B
options center; title; footnote; ods listing close; ods tagsets.ExcelXP path='output-directory' file='aedata.xml' style=SUGI31; proc print data=sample.aedata noobs label; by protocol; where protocol eq 'ABC 123';
D
# "
SUGI 31
Hands-on Workshops
id patient; id visit / style=rowheader_r_border style(header)=header_r_border; var aecode; var aetext--treat; run; quit; proc print data=sample.aedata noobs label; by protocol; where protocol eq 'XYZ 987'; id patient; id visit / style=rowheader_r_border style(header)=header_r_border; var aecode; var aetext--treat; run; quit; proc tabulate data=sample.aedata; by protocol; where protocol eq 'ABC 123'; var aesev; class aetext; class aesevc / style=rowheader_r_border; classlev aesevc / style=rowheader_r_border; table aetext*aesevc,aesev*pctn / box={label='' style=header_box}; keyword all pctn; keylabel pctn='Percent'; run; quit; proc tabulate data=sample.aedata; by protocol; where protocol eq 'XYZ 987'; var aesev; class aetext; class aesevc / style=rowheader_r_border; classlev aesevc / style=rowheader_r_border; table aetext*aesevc,aesev*pctn / box={label='' style=header_box}; keyword all pctn; keylabel pctn='Percent'; run; quit; ods tagsets.ExcelXP close; % # # "
# 6 # #
; #
!
!
&8 "
6
6
"" %
" # ; ? B " # 6&/F )GH6 # (;' " #" " " 2 # " "
*
# "
#
/' #
#
#
* # 89
"
" #
% ""
" %
%
" #
6
* ?
#
# 89 6 ( ,?6
#
#
* # *
# #
# # 2 #
"
#
# "
""
*
(;' *
9 8@9 " #
!
*
* "
:
B
style=class-name style=[attribute-name1=value1 attribute-name2=value2 ...] style=class-name [attribute-name1=value1 attribute-name2=value2 ...] # class-name *
#
% #
"
attribute-name *
E
#
%
SUGI 31
Hands-on Workshops
# %
% # #
+ .
# %
#
@ # 6 ! # 6# J
""
# 0
*
#
% %" ! %" # (;' " # #
" *
5 6 !6
#
#
#
:
" "
/
# 9
#
!
%" %
" 6# # ""
# ;
# J !6 !
?
*
+ .
% B style=[just=center bordertopwidth=3 borderbottomwidth=3 borderleftwidth=0 borderrightwidth=3] #
# % 2
* & ' % # ! &8 +6& ' " # 2 " 2
" % 5
?
D #
*
# 5 # , ? D E I
% # (/ 5
"
6
*
-
# %
%
& ' # & ' #
* & ' " *
, % &$ ?
-
%
# #
"
#
'
.
"
6
#
!% 6
5
: 2 # % "
6
6
!
# "
%
% "
%
%
# 0K %
%
:
%
+6
2 #
6
6 #
% #
6 ,78
6.
# 89
I
"
!#
#
"
#
! #
5
#
".
"
#
# # # #
B
6 2 #
# %"
9
3
"
* #
# #
#
#
!
5 # ?
" #
#
+ '(
/ !#
#
SUGI 31
Hands-on Workshops
*
8+ '(
%
#
, ? #
5
"
# (/ % #
%5 %
+6
D7
! 6
" # % # # @
! % J:G6B
#
%
# #
#
6.
% 2 %
$# 6 %
,$!#)/!$ 5
-
'
,
# "
. %
B
# #
#
3 $$ &3 $4 / !( &3 7 %'
6
-
D
2 # " %
2 #
$
3
#! 6 & $4
6
!% 6 # %
"" 9 #
#
;
*
% &$ %'
! %
#
!# "
#
% "
%
%
()% ')$ )$
#
# 6 #
"
" #
#
?
(;'
# ""
6
%
:
!
% !
#
#
!
%
!
#
%
style data_z8 from data / tagattr='format:00000000'; # 6 J:G6 # # % 6--------6 % # # ! : % % # 89@ 89 # % * * B
# 6 % #
6 %"
!
var aecode / style(data)=data_z8; #
*
@
#
%
6
J:G6
H
" # # "
!" " FG % # 6 J:G6
#
! # #
%
#
SUGI 31
Hands-on Workshops
!
3& &3 ) $'
'%6 4
%
# #
"
!
!
2 2
# *
$ &!
&8 2
#
%" A
"" " # # % %
J
" %
%% # 2 #
%
" # # 2 # 2 #
#
2 # % # 2 #
# #
# # "" A J
%
#
%
/
" #
#
%"
# %
#
B
options center; title; footnote; ods listing close; ods tagsets.ExcelXP path='output-directory' file='aedata.xml' style=SUGI31; ods tagsets.ExcelXP options(sheet_name='Data - Trial 1'); * Proc PRINT #1 here w/ style override; ods tagsets.ExcelXP options(sheet_name='Data - Trial 2'); * Proc PRINT #2 here w/ style override; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2'); * Proc TABULATE #2 here; ods tagsets.ExcelXP close; #
2 #
!(9) $ &3 '/) &
#
! %
&8 # # #
# #
%
# *
#
%
($4 *'% $4
% # ' # /
# # * A %
#
5
% &$ %'
#
,
* #
% 68
%
()% ')$ )$
% #
#
# * # 6
%
# # #
# 6
# # %
6 #
%
proc print data=sample.aedata noobs label split='*'; by protocol; where protocol eq 'ABC 123'; id patient; id visit / style=rowheader_r_border style(header)=header_r_border; var aecode / style(data)=data_z8; var aetext--treat; label protocol = 'Protocol Identifier' patient = 'Patient*Identifier' visit = 'Visit*Identifier' aecode = '*Code' aetext = '*Preferred Term' aesev = '*Severity' frequency = '*Frequency' aesevc = '*Severity' treat = '*Treatment'; run; quit;
G
# * #
% * #
8'
#
# B
SUGI 31
Hands-on Workshops
%
# ' ( ' 6&/F )GH6
% ;
% # $ 6 # #
% AJ5;
% " # % % #
#
- HE
% K
#
%
L
# # AJ5;
$ (;'
#
# # $ # #
8'
K AJ5;
"
#
# # 89
#
#
%
" #
#
@ % * #
#
- HE
"
%
# < "
"
#
%" # # # 6 = - HE * #
#
" #
%
# 89
"
"
%" %
" #
"
(;'
# $
"
#
AJ5; !" "
" #
2
"
#
!
# #
*
"
B
options center; title; footnote; ods listing close; ods tagsets.ExcelXP path='output-directory' file='aedata.xml' style=SUGI31; ods tagsets.ExcelXP options(sheet_name='Data - Trial 1' width_fudge='0.7'); * Proc PRINT #1 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Data - Trial 2' width_fudge='0.7'); * Proc PRINT #2 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1' width_fudge='0.75'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2' width_fudge='0.75'); * Proc TABULATE #2 here; ods tagsets.ExcelXP close; $# 89
# # $ "
AJ5; # %
"
#
% # # % $
#
#
# * #
# # #
%
# 1 " # ' A % # ( @'; J @'; J$ (;' 8 @ " 6
4!&3 &3 $4 #1 3%') /!# / /!
# "
% #
" +5
# D.
# (/ " 5 ?
options center !(9) $ &3 '/) &
# % "
%
* 5
#
9 2 #
% #
% # # * "
A
# 9> @ # " % # # (/ " # "" % # *
# " % !" options nocenter
"
($4 *'% $4 $!#)/!$
# (;'
"
#
@ *
# #
#
* % K
6
#
&$
"
#
#
(;'
%'
#
@
9 5 #
% " % ? D $# # # # (;' " # "
9 "
%"
#
()% ')$ )$
"
" #
"
)
1 %
#
!
"" &8
#
) %"
SUGI 31
Hands-on Workshops
% "
"
#
# %% 0 " # "" ! %
#
%
2 0
#
# % #
% %
#M+
# 6 % #6 ( @'; J @';
% "
0
( @'; % #
# "
%
#
#
J @'; # % B
#
# %" J$ A "
#
%
.N
# # " 6# # @
J$
&+# %
A #
"
"
:
6
"
% 6
: 6 6
#
#
#
" %
#
"
"
%
#
6 : 6 # *
" #
: .N+
6
(;'
2
" #
#
.
# * " # " : # # $ AJ5;
#
" ( +6 +6 6,
! % @8A 6 G G6 /
# (;' " # # ' 99 @ 6. # * 6 * 6 " * . # # * %" # " # !
*
#
% , # # % G # ( @'; J @'; J$ A (;' " B
# " "
#
ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1' width_fudge='0.75' absolute_column_width='21, 8, 8'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2' width_fudge='0.75' absolute_column_width='21, 8, 8'); * Proc TABULATE #2 here; #
# # %
# "
#
# * % 2 #
% "
K
%
% "
# *
!(( &3 *%'7 & '/) & 4 !( % !&( !)$'* /$ % $' $4
$# 2 # * # 89 " " ,, % * # # " 6 : 6 # L L " # FROZEN_HEADERS='2' !
#
#
#
# #
%
6
5
6
" !
( @';
# J @';
% # # " # "" ! % E% # 59@F JA 9 # " 59@F JA 9 ML L # : " , *
# %
5
5 "" # 68
* #
* %6 #
68
"
* %
2 # %6
# %
2 #
# "
5 6A
/
# !" 2 # 5 # HEADACHE 5 E # * 6A A 6 * # # " # #
* A 6 2 #
" 5 5
# !" # 6 * 6 % (All) % #
# "0
-
J$
()% ')$ )$
5 2 #
"
5 ! %"
5
#
:
#
% #
5
#
2 #
#
#
% &$ %'
# "
#
# Severe *
+
!
*
A
SUGI 31
Hands-on Workshops
5 6 6 # # %
# @ % 5
"
%
#
" (;'
; @5 ' 9 / % " %" # " " B
5
% 2
# 89 "
#
"
ods tagsets.ExcelXP options(sheet_name='Data - Trial 1' frozen_headers='2' autofilter='all');
" * # * 6 6 # ! @
6 6 :
width_fudge='0.7'
* Proc PRINT #1 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Data - Trial 2' frozen_headers='2' autofilter='all');
width_fudge='0.7'
* Proc PRINT #2 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1' width_fudge='0.75' absolute_column_width='21, 8, 8' frozen_headers='no' autofilter='none'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2' width_fudge='0.75' absolute_column_width='21, 8, 8' frozen_headers='no' autofilter='none'); * Proc TABULATE #2 here; % &$ '% &$!$ '& !&( %
#
"
# "
%
!$ &3 '/) & 4 !( % %'
# % "
# %" *
#
# ""
" 89@ 89 (;' " # " " # " ORIENTATION='landscape' ORIENTATION='portrait' # @ # "
# " "
#
"
#
5
"
, A
#
2 #
*
#
B"
"
# @ %
% "
# #
'1-2' #
# @ (;'
"
#
% "
%" # # 89 (;' "
#
# # 89 / #
"
#
" "
#
"
%
# "
#
#
O : # 9@$J9 8 # @
"
" %" # # # 89 "
"
"
" # * "
#
% # 'none'
% &$ 4 !( % !&( *''$ %
@ # " 5@@ (
#
% # ( % " J5@@ 9 "
@
#
# #
!
" #
&8 #
%# '
!
# *
# #
% (
" J
"
# '
#
% !
"
#
B
title '&CAdverse Event Data by Trial'; footnote '&LPrinted &D&RPage &P of &N'; # "
' # "
%
# 5@@ @ # " " ! # ! 68
"
#
" "
%
#
%
%"
# 6
# # !
# K
! 6 1
*
5 # # 6&D6 # #
*
6
6&C6
#
"
#
! 68 1 "
6
"" # %
0K
#
% "
# "
SUGI 31
Hands-on Workshops
$4 * &!/ !
$ #
'(
# %
"
#
#
""
B
options nocenter; title '&CAdverse Event Data by Trial'; footnote '&LPrinted &D&RPage &P of &N'; ods listing close; ods tagsets.ExcelXP path='output-directory' file='aedata.xml' style=SUGI31; ods tagsets.ExcelXP options(sheet_name='Data - Trial 1' width_fudge='0.7' frozen_headers='2' autofilter='all' orientation='landscape' row_repeat='1-2'); * Proc PRINT #1 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Data - Trial 2' width_fudge='0.7' frozen_headers='2' autofilter='all' orientation='landscape' row_repeat='1-2'); * Proc PRINT #2 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1' width_fudge='0.75' absolute_column_width='21, 8, 8' frozen_headers='no' autofilter='none' orientation='portrait' row_repeat='none'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2' width_fudge='0.75' absolute_column_width='21, 8, 8' frozen_headers='no' autofilter='none' orientation='portrait' row_repeat='none'); * Proc TABULATE #2 here; ods tagsets.ExcelXP close;
'%$ &3 5
2
I # %" % 2
)/$ # # #
!
!
!
"" #
6
# %> #
%" " 3
4
$ 5
/
'%6#''6
2 2 # % # 2 # # !" # " * % -:
5
% #
&$' !
%" *
# # 2 & ' "
2
" %" #
#
& ' 6 "
2
#
#
,
2
2
# & ' #
% "
8 0 #
!
2 # $ # 2 # # # # # ! & '
$ $ 2
2
#
$
SUGI 31
Hands-on Workshops
*
;+
(
!0 &3 !& 5
/
'%6#''6 ! 5 /
/ % * ! File ➨ Save As " " # " "
2
2 & ' XML Spreadsheet (*.xml) * # & ' % 6%
#
#
# 6% # # ( *
# #
"
#
)
#
$4 !)$' !$
/ 6 # % %
# 6. 3
% # # 2 #
# % #
%" # * # * #
# #
#
# %
#
20
*
5
#
* # ;9'
! #
% #
% *
#
% # $
" *
/ $' !
!" # * ! % %" # % # 2 # + ! %" # % A * # # 1 # 2 # % # 2 5 ! %" 2 # % 6D-0 -H 6 3 # # % * # +# " #. # # 2 # % * # 6D6 # * # % 6J-J -HJ J* 6 # % %" 6A #P$ 9 6 % 6A #JJJ J # # * # ! 2 # % 5
# *
I
% 5 2 " # +J.
#
#
# #
" % 5
! #
%
*
(!$! '&0 % '& *%'
2 #
! % #
#
* # % # $ * # # 1 5 8 %
"
#
%
#
%" " !% 6
!% 6
*
# % # # # " # # " # # % # #
% %
!
#
%
I # #
%
% #
% % #+>.
# 2 #
% #
%
?
# * *
% #
" %
# +J. 6
% %
% !
* %
*
SUGI 31
Hands-on Workshops
#
! %"
#
%
#
!
%
5
I
*
%
% / 1
+
2.
8!
""
8
+ "! +
! 5 / / #&!
#
& ''( # &' #
# #
> .
.
""
#
& ' !
#
%" * % # * % " % " & ' % " # # & ' %" "" + % 2 & ' . # #
% !
# * # 6' &' & '
!" 5
# I # #
2
& ' " # ! & ' %" & ' # " # #
# *
" & '
, #
!"
2
"
%"
+ "!
/ 5 / &$' !
# 2
2
2
#
%"
""
&
& '
#
" " & '
8
!
#
* %"
#
1 & ' %
J J
! #
# & ' 0
JJ " !
/
&3 & , 5/ . !&( 5 / !
#
" *
#
2J J /
% / "
! # 8!
:
&' # #
"
& %
8 ! J" "
2
$
! ?,0 # +J.
!
#
!
*
"
%
Q% 2 # & ' " 6 # 6' &'
# %
#
"
2
%
#
# "
# #
5
& ' # " "
2
# " &8 % "6 %
! %" B
2
% % # % #
* 6 !
% 6
%" %
% # # %
3
2
# & ' % # & '
#
#
& '
# #
% &'&8,
%"
*
% 2
! * " * "
# #
# & '
2
*
"" "
" # B
%include 'LoadXL.sas'; %xlxp2sas(excelfile=mydata.xml, mapfile=ExcelXP.map); # % %
# 5
% + .% 2 2 # # # ! %"
# &'&8, % * " ( # # # ; 9
# # "
%xlxp2sas(excelfile=mydata.xml, mapfile=ExcelXP.map, library=sasuser);
D
# ' (9 9/ % # B
%
+ . %" # # $@9C % # &'&8,
/
SUGI 31
Hands-on Workshops
, # 5
#
!
# %"
2 #
I % # 2 2 #
%
! $ # % "# J A #JJJ J-J -HJ
2 # # # # %
$ 5
H # %" 5 2 # "
*
=+
;"
"
# 6 I
2+
"#
H
#
#
! 3
# " 2 *
# A * * #
% #
- $
! / # % "# A #P$ D-0 -H
J J*
! $
9
-:
6 " # &'&8, % % 68 ! " " %
# #
5
&
# 6 #
$ %"
(' "" # 6 "# #+ .6 6 ,GN,6 " *
6 % 6,N,6
( 6 #
-
%" # # & ' %
# & '
# *
# $ #
% % # % %
* #
* # ;9'
B
filename myxml URL 'http://Web-server/mydata.xml'; %xlxp2sas(excelfile=FILEREF:myxml, mapfile=ExcelXP.map); #
%
&'&8, # 5' 9 5% $ * # *
# 8
# 3 *
;9' # # ;9' # * #
" #
#
#
"
" * %
"
*
# 2
#
# # *
2
"
!
*
" % >*
#
%
#
"
@ " 6 #
!
! ! #
% 8 "
# $
# *
# %
%let RV = %sysfunc(appsrv_header(Content-type,application/vnd.ms-excel)); options nocenter; title '&CAdverse Event Data by Trial'; footnote '&LPrinted &D&RPage &P of &N'; ods listing close; ods tagsets.ExcelXP file=_webout style=SUGI31; * Remainder of "final" SAS code; ods tagsets.ExcelXP close;
I
%
# B
SUGI 31
Hands-on Workshops
#
88 9 JA
9
" # $
# # #
#
# "
#
*
K ! %"
! %"
" #
#
# L
" "
>
+
% * "" " # ,--, ,--? ,--D.
# " * 5 ' 9 5 +J$ (@; . % # * # "
!
>
5
"
! %
%
%
8
%
#
'& /) '& #
) !"
!
&8 @
% # # & '0
!
& '' %
" "
%" % %
%
! #
2
& '
# # 2 # # # 1
"
& ' " % " @
# &'&8,
%
# 2 #
" # *
" * % #
#
"
%"
#
2
% *
!
&( 5
'( *'% % !$ &3 $4
)3
$1/
proc template; define style styles.SUGI31; parent = styles.Journal; /***************************************************************************** Use approximate "SUGI reddish brown" cx993300 for some foreground elements. Use black for other foreground elements. Use approximate "SUGI tan" cxffcc99 for some background elements. *****************************************************************************/ replace colors / 'docbg' = cxFFFFFF 'contentbg' = cxFFFFFF 'contentfg' = cx000000 'titlefg' = _undef_ 'link2' = cx0066AA 'link1' = cx004488 'bg5' = cxFFFFFF 'bg4' = cxFFFFFF 'fg4' = cx000000 'bg3' = cxFFFFFF 'fg3' = cx000000 'bg2' = cxffcc99 'bgA1' = cxFFFFFF 'fgA1' = cxff0000 'fg2' = cx993300 'fg' = cx993300; /*
/*
Header and Row Header cells
*/
/* /* /*
Border lines */ Header and Row Header cells Titles and Footnotes */
*/
Redefine some characteristics of some of the standard styles. style table from table / borderwidth = 0; style header from header / just = center font_weight = bold bordertopwidth = 3 borderbottomwidth = 3 borderleftwidth = 0 borderrightwidth = 0;
H
*/
SUGI 31
Hands-on Workshops
style rowheader from rowheader / font_weight = bold; /*
Controls border lines of some Header cells. style header_r_border just = bordertopwidth = borderbottomwidth = borderleftwidth = borderrightwidth =
/*
*/
from header / center 3 3 0 3;
Controls border lines of the TABULATE box cell. style header_box from just = bordertopwidth = borderbottomwidth = borderleftwidth = borderrightwidth =
/*
*/
header / center 3 3 0 3;
Controls border lines of some Row Header cells.
*/
style rowheader_r_border from rowheader / bordertopwidth = 0 borderbottomwidth = 0 borderleftwidth = 0 borderrightwidth = 3; /*
Assigns an Excel format to certain Data cells.
*/
style data_z8 from data / tagattr='format:00000000'; end; run; quit; #
#
%
" $ #
'/'%
5 *
"" ! 6
)
'%$ ( #1 5
# !
(
0 "" ""
# ""
5
#
%
( ?
%
! ""
# % !
6
%
# #
% +
;
! 2
! " "
#
/
# "
# ! #
5 !
#
# ! %: % # ""
#
#
# # L
;
?-
,--E.
*
! + ( :
G
-
2@@@
-/
SUGI 31
Hands-on Workshops
5/5 2 !
# 1
! %'
# *
!
"
%
#
#
""
!
%
%
( : 0
( "
&
" # # ! & ' # %" % 2 # * " 5' 9 5 FILEREF:fref " # % " # # & ' " %" ! & ' 1 % 2 # * " 5' 9 5 FILEREF:fref / " # & ' " % # 8 $ "" %> " 5 # 6 %" 0 # ! $ 2 2 # $ # 6 " # % # # %" " # # # ! 2 # # * % # # ! # "" 2 # 2 2 Y # # % % 2 2 # * % # # ! " N # # %" # # 0 5' 9 5 # # %" # ! 5' 9 5 # !" # 5' 9 5 % 0 # " N # * % # ' " Y * #
' (9 9/ ' ( '
'
#
%
1
'5 '
85 '
A
# &'&8,
*
;8
9(@
$@9C /
/
% * % & ,--, 6 *
# "B>>
# 1
,
%>"
,--? 6 ( 8 *
# "B>>
# "B>>
,
" %
# "B>>%
&'
R
!
! %>"
))) 6 # " B
+ !
#
*
# "B>>
9 "S
M>
6
8'
8'
@
R 09@
%>
" @
8 "
6 8 "
6
?I
* >
0
8
8
""
% 6 09@ 8 "
"" 09@
,G
#
>
EB #
)B
R@ "
& '6
% * ,H
#
! " ,G>-E,0,G "
9 # ??-> ?I0?- "
"
6& ' " %> >
(
*
*
,--D 6 # " &
" >
08
! " ,H>" HD0,H "
3
,--D 65 %
*
@
>
$ %>"
,
,--E 6
R
>
! ,2,># % > 6
B
B
)
#
J!%
"
!
%
6
)*%
HD
E,
SUGI 31
Hands-on Workshops
*)%$4 % % !( &3 6 ""
"
6 # "B>>
""
%>
%
(;' %>
8 %
*
# "B>>
6 # ""
#
*
8 %>
6 # 89 ""
#
6 *J
8 #>
# "B>>
! 6&' / (3
*
>
*
# "B>>
# 6
)>
> "
>
6 ,
""
%>
6 , >
>
>
"
##%
!#%
-)*. >) " >
>
>
J) ?>
J"
B JGD H "
J) ?>
J"
JGD H "
B
-)*. >) " >
&$ 2
#
2 #
(
#
*
#
" "
'&$! $ &*'% !$ '& /
%%
1
*
T
+ ""
!
%
0# % %>
2
" 2 # ". % >
" >
#
" # ;
@#
#
# B
%" * ,HE ? B +) ). IHH0G---
8#
" 5 %+
*
"
# %
2 " % %#%.
0
*
# " #
% ;
R % 2
1 %
#
" % 2
; *
% 2
"
,-
*
%"
% 2
"9 1