%let name=beye4; filename odsout '.'; %let axisgray=gray88; %let titlegray=gray66; %let targetgray=gray11; /* Bar colors */ /* %let bargood=grayde; */ %let bargood=cxc2e699; %let barwarn=cxfa9fb5; %let barbad=cxff0000; /* Outline colors for the bars */ %let outgood=gray77; %let outwarn=gray77; %let outbad=gray77; %let backcolor=cxeff7ff; proc format; value monfmt -1='N' 0='D' 1='J' 2='F' 3='M' 4='A' 5='M' 6='J' 7='J' 8='A' 9='S' 10='O' 11='N' 12='D' ; run; proc format; value monthl -1='November' 0='December' 1='January' 2='February' 3='March' 4='April' 5='May' 6='June' 7='July' 8='August' 9='September' 10='October' 11='November' 12='December' ; run; PROC IMPORT DATAFILE= "spreadsheet.xls" DBMS=EXCEL OUT=raw1 REPLACE; SHEET="'Scenario4$'"; RANGE='A38:N51'; GETNAMES=NO; MIXED=NO; SCANTEXT=YES; RUN; proc sort data=raw1 out=raw1; by f1; run; proc transpose data=raw1 out=data1; by f1; run; data data1 (keep = f1 col1 month); set data1; if _name_ eq 'F2' then month=-1; if _name_ eq 'F3' then month=0; if _name_ eq 'F4' then month=1; else if _name_ eq 'F5' then month=2; else if _name_ eq 'F6' then month=3; else if _name_ eq 'F7' then month=4; else if _name_ eq 'F8' then month=5; else if _name_ eq 'F9' then month=6; else if _name_ eq 'F10' then month=7; else if _name_ eq 'F11' then month=8; else if _name_ eq 'F12' then month=9; else if _name_ eq 'F13' then month=10; else if _name_ eq 'F14' then month=11; run; proc datasets; modify data1; rename f1 = measure; rename col1 = target; run; PROC IMPORT DATAFILE= "spreadsheet.xls" DBMS=EXCEL OUT=raw2 REPLACE; SHEET="'Scenario4$'"; RANGE='A20:N33'; GETNAMES=NO; MIXED=NO; SCANTEXT=YES; RUN; proc sort data=raw2 out=raw2; by f1; run; proc transpose data=raw2 out=data2; by f1; run; data data2 (keep = f1 col1 month); set data2; if _name_ eq 'F2' then month=-1; if _name_ eq 'F3' then month=0; if _name_ eq 'F4' then month=1; else if _name_ eq 'F5' then month=2; else if _name_ eq 'F6' then month=3; else if _name_ eq 'F7' then month=4; else if _name_ eq 'F8' then month=5; else if _name_ eq 'F9' then month=6; else if _name_ eq 'F10' then month=7; else if _name_ eq 'F11' then month=8; else if _name_ eq 'F12' then month=9; else if _name_ eq 'F13' then month=10; else if _name_ eq 'F14' then month=11; run; proc datasets; modify data2; rename f1 = measure; rename col1 = actual; run; /* do some data-cleaning, so I can merge the two data sets cleanly */ data data2; set data2; /* if measure eq 'Average (mean) Customer Satisfaction Scores' then measure='Customer Satisfaction'; */ if measure eq 'Average (mean) Customer Satisfaction Scores (out of 5)' then measure='Average (mean) Customer Satisfaction Scores'; if measure eq 'Flight Utilization (ratio of passengers to capacity)' then measure='Flight Utilization'; run; proc sql; create table mydata as select unique data1.measure, data1.month, data1.target, data2.actual from data1 left join data2 on data1.measure=data2.measure and data1.month=data2.month; quit; run; data mydata; set mydata; if measure eq 'Average (mean) Customer Satisfaction Scores' then measure='Customer Satisfaction'; /* Convert certain values to millions */ if measure in ('Revenues' 'Expenses' 'Profits' 'Fuel Costs' 'Passenger Miles') then do; actual=actual/1000000; target=target/1000000; end; /* Convert passengers to thousands */ if measure in ('Passengers' 'Miles') then do; actual=actual/1000; target=target/1000; end; percent=actual/target; run; proc sort data=mydata out=mydata; by measure month; run; data myanno; set mydata; length function $8 color style $12; ysys='2'; hsys='3'; when='a'; length html $ 250; html='title='||quote( trim(left(measure))||'0D'x|| trim(left(put(month,monthl.))) ||'0D'x|| 'Target: '|| trim(left(put(target,comma7.2))) ||'0D'x|| 'Actual: '|| trim(left(put(actual,comma7.2))) ||'0D'x|| 'Percent of Target: '|| trim(left(put(percent,percent8.1))) ) ||' '|| 'href="beye4.xls"'; * Draw the colored bar; function='move'; xsys='2'; x=month; y=0; output; xsys='7'; x=-1.5; output; function='bar'; style='solid'; if measure in ('Revenues' 'Profits') then do; if percent < .65 then color="&barbad"; else if percent < .95 then color="&barwarn"; else color="&bargood"; end; else if measure eq 'Expenses' then do; if percent >= 1.25 then color="&barbad"; else if percent >= 1.05 then color="&barwarn"; else color="&bargood"; end; else if measure eq 'Market Share' then do; if percent < .65 then color="&barbad"; else if percent < .90 then color="&barwarn"; else color="&bargood"; end; else if measure in ('Flights' 'Passengers' 'Miles' 'Passenger Miles' 'Customer Satisfaction' 'Flight Utilization') then do; if percent < .75 then color="&barbad"; else if percent < .90 then color="&barwarn"; else color="&bargood"; end; else if measure in ('Cancelled Flights' 'Late Arrivals' 'Number of Minutes Late') then do; if percent >= 1.20 then color="&barbad"; else if percent >= 1.05 then color="&barwarn"; else color="&bargood"; end; else if measure in ('Fuel Costs') then do; if percent >= 1.25 then color="&barbad"; else if percent >= 1.05 then color="&barwarn"; else color="&bargood"; end; else do; color='cyan'; end; /* If this is the current/uncompleted month, don't color the bar */ /* */ if month eq 11 then color="&backcolor"; xsys='7'; x=+3; y=actual; if actual ne . then output; * Outline around the bar; function='move'; xsys='2'; x=month; y=0; output; xsys='7'; x=-1.5; output; function='bar'; style='empty'; if actual > target*1.2 then color="&outbad"; else if actual > target then color="&outwarn"; else color="&outgood"; xsys='7'; x=+3; y=actual; if actual ne . then output; * Draw the marker for the target value; function='move'; xsys='2'; x=month; y=target; output; xsys='7'; x=-2.2; output; function='draw'; line=1; size=4.0; color="&targetgray"; xsys='7'; x=+4.4; if target ne . then output; run; /* Now, for the other data ... */ PROC IMPORT DATAFILE= "spreadsheet.xls" DBMS=EXCEL OUT=raw3 REPLACE; SHEET="'Scenario4$'"; RANGE='A74:N78'; GETNAMES=NO; MIXED=NO; SCANTEXT=YES; RUN; proc sort data=raw3 out=raw3; by f1; run; proc transpose data=raw3 out=data3; by f1; run; data data3 (keep = f1 col1 month); set data3; if _name_ eq 'F2' then month=-1; if _name_ eq 'F3' then month=0; if _name_ eq 'F4' then month=1; else if _name_ eq 'F5' then month=2; else if _name_ eq 'F6' then month=3; else if _name_ eq 'F7' then month=4; else if _name_ eq 'F8' then month=5; else if _name_ eq 'F9' then month=6; else if _name_ eq 'F10' then month=7; else if _name_ eq 'F11' then month=8; else if _name_ eq 'F12' then month=9; else if _name_ eq 'F13' then month=10; else if _name_ eq 'F14' then month=11; run; proc datasets; modify data3; rename f1 = channel; rename col1 = actual; run; data data3; set data3; actual=actual/1000000; length html $ 250; html='title='||quote( trim(left(channel))||'0D'x|| trim(left(put(month,monthl.))) ||'0D'x|| 'Actual ($M): '|| trim(left(put(actual,comma5.1))) ) ||' '|| 'href="beye4.xls"'; run; PROC IMPORT DATAFILE= "spreadsheet.xls" DBMS=EXCEL OUT=data4 REPLACE; SHEET="'Scenario4$'"; RANGE='A96:C102'; GETNAMES=YES; MIXED=NO; SCANTEXT=YES; RUN; data data4; set data4; length html $ 250; html='title='||quote( trim(left(reason))||'0D'x|| 'Delayed: '|| trim(left(delayed)) ||'0D'x|| 'Cancelled: '|| trim(left(cancelled)) ) ||' '|| 'href="beye4.xls"'; run; PROC IMPORT DATAFILE= "spreadsheet.xls" DBMS=EXCEL OUT=data5 REPLACE; SHEET="'Scenario4$'"; RANGE='A82:C92'; GETNAMES=YES; MIXED=NO; SCANTEXT=YES; RUN; data data5; set data5; length html $ 250; html='title='||quote( trim(left(route))||'0D'x|| 'Percent of Total Passengers: '|| trim(left(put(passengers,percent7.1))) ||'0D'x|| 'Percent of Total Profits: '|| trim(left(put(profits,percent7.1))) ) ||' '|| 'href="beye4.xls"'; run; data anno5; set data5; length text $50; xsys='1'; ysys='2'; hsys='5'; when='a'; function='label'; position='4'; x=45; midpoint=route; text=trim(left(put(passengers,percent7.1))); output; x=100; midpoint=route; text=trim(left(put(profits,percent7.1))); output; if _n_ eq 1 then do; x=40; xsys='3'; ysys='1'; y=100; position='1'; text='Percent of Total:'; output; xsys='1'; x=45; ysys='1'; y=100; position='1'; text='Passengers'; output; x=100; ysys='1'; y=100; position='1'; text='Profits'; output; end; run; PROC IMPORT DATAFILE= "spreadsheet.xls" DBMS=EXCEL OUT=data6 REPLACE; SHEET="'Scenario4$'"; RANGE='A107:C117'; GETNAMES=YES; MIXED=NO; SCANTEXT=YES; RUN; data data6; set data6; length html $ 250; html='title='||quote( trim(left(route))||'0D'x|| 'Percent Cancelled: '|| trim(left(put(cancelled,percent7.1))) ||'0D'x|| 'Percent Delayed: '|| trim(left(put(delayed,percent7.1))) ) ||' '|| 'href="beye4.xls"'; run; data anno6; set data6; length text $50; xsys='1'; ysys='2'; hsys='5'; when='a'; function='label'; position='4'; x=45; midpoint=route; text=trim(left(put(cancelled,percent7.1))); output; x=100; midpoint=route; text=trim(left(put(delayed,percent7.1))); output; if _n_ eq 1 then do; x=40; xsys='3'; ysys='1'; y=100; position='1'; text='Percent:'; output; xsys='1'; x=45; ysys='1'; y=100; position='1'; text='Cancelled'; output; x=100; ysys='1'; y=100; position='1'; text='Delayed'; output; end; run; goptions ftitle="arial" ftext="arial" gunit=pct htitle=10 htext=7.75; goptions xpixels=300 ypixels=150; goptions noborder; symbol1 v=dot h=.1 c=white; symbol2 v=dot h=.1 c=white; goptions nodisplay; goptions device=gif; goptions cback=&backcolor; options nobyline; axis1 color=&axisgray label=none major=(number=5) minor=none offset=(0,0); axis2 color=&axisgray label=none major=none minor=none offset=(5,5); proc sql noprint; create table foo as select * from mydata where measure='Revenues'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 20 by 5) value=(t=1 '0' t=2 '5M' t=3 '10M' t=4 '15M' t=5 '$20M'); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="revplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Expenses'; quit; run; proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="expplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Profits'; quit; run; /* axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 10 by 2) value=(t=1 '0' t=2 '2M' t=3 '4M' t=4 '6M' t=5 '8M' t=6 '$10M'); */ axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 20 by 5) value=(t=1 '0' t=2 '5M' t=3 '10M' t=4 '15M' t=5 '$20M'); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="profplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Customer Satisfaction'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 5 by 1); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="satplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Market Share'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to .5 by .1) value=(t=1 '0 ' t=2 '10 ' t=3 '20 ' t=4 '30 ' t=5 '40 ' t=6 '50%'); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="mktplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Flight Utilization'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 1.00 by .2) value=(t=1 '0 ' t=2 '20 ' t=3 '40 ' t=4 '60 ' t=5 '80 ' t=6 '100%'); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="utilplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Flights'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 500 by 100); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="flitplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Passengers'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 80 by 20) value=(t=1 '0 ' t=2 '20 ' t=3 '40 ' t=4 '60 ' t=5 '80k'); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="passplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Miles'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 400 by 100) value=(t=1 '0 ' t=2 '100 ' t=3 '200 ' t=4 '300 ' t=5 '400k'); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="mileplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Passenger Miles'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 40 by 10) value=(t=1 '0 ' t=2 '10 ' t=3 '20 ' t=4 '30 ' t=5 '40M'); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="pmilplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Cancelled Flights'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 20 by 5); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="canplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Late Arrivals'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 100 by 20); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="lateplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Number of Minutes Late'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 3000 by 1000); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="minlplot"; run; proc sql noprint; create table foo as select * from mydata where measure='Fuel Costs'; quit; run; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 1.5 by .5) value=(t=1 '0 ' t=2 '.5 ' t=3 '1.0 ' t=4 '1.5M'); proc gplot data=foo; title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis3 haxis=axis2 noframe anno=myanno des="" name="fuelplot"; run; /* I could have gotten all the plots this way, but I wanted to customize the axes and formats used in each of them, so I had to do each one separately (see above). */ /* title1 ls=2.5 "#byval(measure)"; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; proc gplot data=mydata; format month monfmt.; by measure; plot actual*month=2 target*month=1 / overlay vzero vaxis=axis1 haxis=axis2 noframe anno=myanno des="" name="plot"; run; */ goptions xpixels=425 ypixels=150; axis3 color=&axisgray label=none major=(number=5) minor=none offset=(0,0) order=(0 to 20 by 5) value=(t=1 '0 ' t=2 '5 ' t=3 '10 ' t=4 '15 ' t=5 '$20M'); axis4 color=&axisgray label=none major=none minor=none offset=(3.5,3.5) value=(t=1 'N' t=2 'D' t=3 'J' t=4 'F' t=5 'M' t=6 'A' t=7 'M' t=8 'J' t=9 'J' t=10 'A' t=11 'S' t=12 'O' t=13 'N'); legend1 across=1 position=(right middle) label=(position=top j=l 'Channel') shape=bar(2,5) order=('Indirect via phone' 'Indirect via Internet' 'Direct via phone' 'Direct via counter' 'Direct via Internet'); title1 ls=2.5 "Revenue per Sales Channel "; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=5pct " "; pattern1 v=s c=cxb2cce2; pattern2 v=s c=cxf2f2f2; pattern3 v=s c=cxfed9a5; pattern4 v=s c=cxe4d7bc; pattern5 v=s c=cxdecbe4; /* pattern1 v=s c=cx8dd3c7; pattern2 v=s c=cxffffbc; pattern3 v=s c=cxbebada; pattern4 v=s c=cxfb8072; pattern5 v=s c=cx80b1d3; */ /* the order of the bar segments is sufficient, without colors */ /* pattern v=s c=graydd repeat=5; */ proc gchart data=data3; /* This month format causes bars with same month letter to be combined (such as January, June, and July all get summed under 'J') - so I have to hard-code the abbreviations in the axis statement. */ /* format month monfmt.; */ vbar month / discrete type=sum sumvar=actual subgroup=channel legend=legend1 coutline=&outgood noframe space=3.5 width=5 raxis=axis3 maxis=axis4 html=html des="" name="chanplot"; run; /* foofoo */ data anno_title; length function $8 color style $12 text $40; hsys='3'; when='a'; function='label'; position='5'; style='"arial"'; xsys='3'; x=25; ysys='3'; y=95; size=8; color="&axisgray"; text='Reason'; output; xsys='3'; x=15; ysys='3'; y=8; size=8; color="&axisgray"; text='(during last 30 days)'; output; xsys='1'; x=50; ysys='3'; y=95; size=10; color="black"; text='Delayed'; output; xsys='1'; x=50; ysys='3'; y=88; size=9; color="black"; text='flights'; output; run; goptions xpixels=300 ypixels=150; axis5 color=&axisgray label=none value=(justify=right); axis6 color=&axisgray label=none major=(number=5) minor=none offset=(0,0); title1 ls=3.5 h=10 " "; title2 a=90 h=5pct " "; title3 a=-90 h=9pct " "; footnote1 h=8pct " "; pattern v=s c=graydd; proc gchart data=data4 anno=anno_title; hbar reason / type=sum sumvar=delayed noframe nostats maxis=axis5 raxis=axis6 coutline=&outgood space=2 html=html des="" name="delaplot"; run; data anno_title; length function $8 color style $12 text $40; hsys='3'; when='a'; function='label'; position='5'; style='"arial"'; xsys='1'; x=50; ysys='3'; y=95; size=10; color="black"; text='Cancelled'; output; xsys='1'; x=50; ysys='3'; y=88; size=9; color="black"; text='flights'; output; run; goptions xpixels=200 ypixels=150; axis7 color=&axisgray label=none value=none; axis8 color=&axisgray label=none order=(0 to 8 by 2) minor=none offset=(0,0); title1 ls=3.5 h=10 " "; title2 a=90 h=5pct " "; title3 a=-90 h=5pct " "; footnote1 h=8pct " "; proc gchart data=data4 anno=anno_title; hbar reason / type=sum sumvar=cancelled noframe nostats maxis=axis7 raxis=axis8 coutline=&outgood space=2 html=html des="" name="cancplot"; run; goptions xpixels=200 ypixels=300; goptions gunit=pct htitle=5 htext=4; axis9 color=&backcolor label=none value=(j=right) value=(c=&axisgray) offset=(4,4); axis10 color=&backcolor label=none major=none minor=none value=none; pattern1 v=s c=&backcolor; title1 h=4 c=&axisgray "(last 30 days)"; title2 h=5 color=&bargood box=1 bcolor=&bargood color=black "Top 10 Routes"; title3 a=90 h=2pct " "; title4 a=-90 h=5pct " "; footnote1 h=1pct " "; proc gchart data=data5 anno=anno5; hbar route / descending type=sum sumvar=passengers noframe nostats maxis=axis9 raxis=axis10 coutline=same width=2 space=1.5 html=html des="" name="routtabl"; run; title1 h=4 c=&axisgray "(last 6 months)"; title2 h=5 color=&barwarn box=1 bcolor=&barwarn color=black "Worst 10 Routes"; title3 a=90 h=2pct " "; title4 a=-90 h=5pct " "; footnote1 h=1pct " "; proc gchart data=data6 anno=anno6; hbar route / descending type=sum sumvar=cancelled noframe nostats maxis=axis9 raxis=axis10 coutline=same width=2 space=1.5 html=html des="" name="worstabl"; run; /* foofoo */ data a; x=1; y=2; run; title "Placeholder"; proc gplot data=a; plot y*x / name="foo"; run; data titlanno; length function color $8 style $12 position $1 text $100 html $100; xsys='3'; ysys='3'; hsys='3'; when='a'; html='title='||quote('Help')||' '|| 'href="beye4_info.htm"'; function='label'; style='"arial"'; x=75; position='5'; color="&titlegray"; y=97; size=4.5; text='XYZ Commercial Airline'; output; y=y-5; size=4.5; text='Executive Dashboard'; output; y=y-5; size=2.5; text='(data as of 15nov2005)'; output; y=y-5; size=2.0; color="&axisgray"; text='This document is company confidential'; output; x=57; y=85; style='"webdings"'; size=7; color="&axisgray"; text='ñ'; output; /* foofoo y=91.5; size=2.5; style='"arial/it"'; text='(all values in thousand U.S. dollars)'; output; */ function='move'; y=82; x=93; output; function='bar'; y=y+3; x=x+5; style="solid"; color="graycc"; line=0; size=.1; output; function='move'; y=82; x=93; output; function='bar'; y=y+3; x=x+5; style="empty"; color="gray22"; line=0; size=.1; output; function='label'; y=82; x=94.3; position='3'; style='"arial"'; size=2; text='Help'; output; style="marker"; text='U'; size=1.5; x=43; y=85.0; color="&backcolor"; output; y=y+2.4; color="&bargood"; output; y=y+2.4; color="&barwarn"; output; y=y+2.4; color="&barbad"; output; style="markere"; text='U'; size=1.5; x=43; y=85.0; color="&outgood"; output; y=y+2.4; color="&outgood"; output; y=y+2.4; color="&outwarn"; output; y=y+2.4; color="&outbad"; output; y=y+2.4-.1; x=x-.2; color="&targetgray"; style='swissl'; text='-'; size=2.0; output; style='"arial"'; size=1.75; color="&axisgray"; position='6'; x=45.0; y=87.0; text="Incomplete Month"; output; y=y+2.4; text="Good"; output; y=y+2.4; text="Satisfactory"; output; y=y+2.4; text="Poor"; output; y=y+2.4; text="Target"; output; xsys='3'; ysys='3'; color="&axisgray"; size=.1; function='move'; x=60; y=0; output; function='draw'; x=60; y=80; output; function='move'; x=54; y=100; output; function='draw'; x=54; y=80; output; function='draw'; x=100; y=80; output; function='move'; x=60; y=20; output; function='draw'; x=100; y=20; output; function='move'; x=60; y=40; output; function='draw'; x=100; y=40; output; function='move'; x=80; y=40; output; function='draw'; x=80; y=80; output; run; goptions xpixels=900 ypixels=800; title; footnote; proc gslide des="" name="titles" anno=titlanno; run; goptions display; goptions device=gif; goptions xpixels=1100 ypixels=800; goptions border; ODS LISTING CLOSE; ODS HTML path=odsout body="&name..htm" style=minimal; proc greplay tc=tempcat nofs igout=work.gseg; tdef dashbrd des='Dashboard' 0/llx = 0 lly = 0 ulx = 0 uly = 100 urx =100 ury = 100 lrx =100 lry = 0 17/llx = 0 lly = 80 ulx = 0 uly =100 urx =20.0 ury =100 lrx =20.0 lry = 80 18/llx =20.0 lly = 80 ulx =20.0 uly =100 urx =40.0 ury =100 lrx =40.0 lry = 80 1/llx = 0 lly = 60 ulx = 0 uly = 80 urx =20.0 ury = 80 lrx =20.0 lry = 60 2/llx =20.0 lly = 60 ulx =20.0 uly = 80 urx =40.0 ury = 80 lrx =40.0 lry = 60 3/llx =40.0 lly = 60 ulx =40.0 uly = 80 urx =60.0 ury = 80 lrx =60.0 lry = 60 4/llx =60.0 lly = 40 ulx =60.0 uly = 80 urx =80 ury = 80 lrx =80 lry = 40 19/llx =80.0 lly = 40 ulx =80.0 uly = 80 urx =100 ury = 80 lrx =100 lry = 40 5/llx = 0 lly = 40 ulx = 0 uly = 60 urx =20.0 ury = 60 lrx =20.0 lry = 40 6/llx =20.0 lly = 40 ulx =20.0 uly = 60 urx =40.0 ury = 60 lrx =40.0 lry = 40 7/llx =40.0 lly = 40 ulx =40.0 uly = 60 urx =60.0 ury = 60 lrx =60.0 lry = 40 9/llx = 0 lly = 20 ulx = 0 uly = 40 urx =20.0 ury = 40 lrx =20.0 lry = 20 10/llx =20.0 lly = 20 ulx =20.0 uly = 40 urx =40.0 ury = 40 lrx =40.0 lry = 20 11/llx =40.0 lly = 20 ulx =40.0 uly = 40 urx =60.0 ury = 40 lrx =60.0 lry = 20 12/llx =60.0 lly = 20 ulx =60.0 uly = 40 urx =90 ury = 40 lrx =90 lry = 20 8/llx =89.0 lly = 20 ulx =89.0 uly = 40 urx =100 ury = 40 lrx =100 lry = 20 13/llx = 0 lly = 0 ulx = 0 uly = 20 urx =20.0 ury = 20 lrx =20.0 lry = 0 14/llx =20.0 lly = 0 ulx =20.0 uly = 20 urx =40.0 ury = 20 lrx =40.0 lry = 0 15/llx =40.0 lly = 0 ulx =40.0 uly = 20 urx =60.0 ury = 20 lrx =60.0 lry = 0 16/llx =60.0 lly = 0 ulx =60.0 uly = 20 urx =100 ury = 20 lrx =100 lry = 0 ; template = dashbrd; treplay 0:titles 17:satplot 18:mktplot 1:revplot 2:expplot 3:profplot 4:routtabl 19:worstabl 5:fuelplot 6:utilplot 7:flitplot 9:lateplot 10:minlplot 11:canplot 12:delaplot 8:cancplot 13:pmilplot 14:passplot 15:mileplot 16:chanplot des='' name="&name"; run; /* proc print data=data5; run; proc print data=anno5; run; proc print data=data4; run; proc print data=data3; run; proc print data=mydata; run; proc print data=data1; run; proc print data=data2; run; proc print data=raw1; run; proc print data=myanno; run; proc print data=data2; run; */ quit; ODS HTML CLOSE; ODS LISTING;