Enhancing SAS Output on Mainframes with IBM`s DCF
Transcrição
Enhancing SAS Output on Mainframes with IBM`s DCF
Enhancing SAS Output on Mainframes with IBM's DCF by Christel Ott & Rolf Annen Swissair Information Systems Abstract On the mainframe-platform SAS output tends to look rather poor. Instead of enhancing the appearance by transferring the output to PC applications, an elegant solution to the problem uses IBM's DCF on the mainframe. Your text SAS Output (PROC PRINT, PROC TABULATE) will look more professional and the integration of scalable SAS/GRAPH page segments will enrich your DCF documents. Text SAS Output To enable the use of DCF/GML together with SAS output you have to put your data on a file either by the procedure PROC PRINTTO or by PUT-statements together with the FILE-statement. In doing so you specify the appropriate DCF/GML tags by means of TITLE or FOOTNOTE statements or directly with PUT-statements. Example with PROC PRINTTO: proc printto file=script new; run; title 1 title2 M:h1 stitle='SEUGI' .This is a DCF/GML titleM:p•• proc print data=sasuser.crime; run; proc printto; run; , \ \. ': 576 Example with PUT-Statements: data_NUL~; set freq1 end=lastobs; by sorted; toplist=5; retain n ctotfreq ctotaver; file prt1; if _N_ 1 then do; put ".df isil1 0 type('isil gothic' 10) codepage t1 nOisil"; put " :rdef id=freq"; put " trules='none'''; put " rrules='none'''; put " crules='none'''; put" hp='O' cwidths='1.5cm * 1.5cm 2cm'."; put ":rdef id=tot"; put " trules='none'''; put " crules='none'''; put" hp='2' cwidths='* 1.5cm 2cm'."; end; if first.sorted then do; put ":h3." classtxt; put ".bf isil10"; put ".fo ofr; put ":table refid=freq page split='yes'. "; put ":thd refid=freq."; put ":c.CODE :c.TITLE :c.FREQ :c.AVERAGE"; put ".sp"; put ":ethd."; n=O; ctotfreq = 0; ctotaver= 0; end; n=n+1; if n <= toplist then do; put ": row. "; put ":c 1." code posneg ":c 2." title 1; put ":c 3." totcode 6.0 ":c 4." average 4.1"%"; ctotfreq=sum(ctotfreq,totcode); ctotaver=sum(ctotaver,average); end; if n=toplist+1 then do; put ".sp"; put ":row refid=tot."; put ":c 1.TOTAL FREQUENCY: "; put ":c 2." ctotfreq 6.0 ":c 3." ctotaver 4.1 "%"; put ":etable."; put ".fo on"; put ".pr; end; run; = 577 ",>"-"",."""",,,~------- ------------ The above output file will have to be included in a DCF/GML Master Script File with the imbed-command .IM before processing DCF. Example: * DCF/GML Master Script File---------------* :gdoc language='sgerman'. :body. .im script :egdoc. For DCF output examples see the end of this paper. Integration of scalable SASIGRAPH page segments on MVS In order to integrate SAS/GRAPH Output in a DCF/GML document you have to create a secondary page segment that you can include in a DCF or SCript document. The following steps outline the process of how to create and include such a page segment. 1. 2. 3. 4. Define a GDDM nickname. Allocate a new output file for the page segment. Use the correct fileref and the appropriate options in your SAS session. Include the page segment in your DCF document and process. 1. Defining a GDDM nickname GDDM nicknames are options and parameters that tell GDDM what type of device you are using, what type of graphics output to generate, and where to send the graphics output. You can place your various GDDM nicknames either in sequential data sets or in members of a partitioned data set (PDS) with a logical record length of 80 and a record format of F or FB. One single GDDM nickname file may contain as many nicknames as you like. The name of this data set can be anything you choose provided you allocate it later with the fiJeref of ADMDEFS. 578 Example: ADMMNICK NAME=PSEG1, TOFAM=4, TONAME=ADMIMAGE, DEVTOK=FINE240, PROCOPT=«OFDSTYPE,PSEG}, (OFFORMAT,IMAGE), (HRIPSPILL,NO), (HRIPSIZE,175,100,MILLS» * * * * * * * Note: The information in your nickname file must be in uppercase and begin in column 2. Position 72 must not be blank (in this case an asterisk{*». NAME= TONAME= DEVTOK= defines the name of the nickname defines the fileref to send the graphics output to GDDM device token to use for IBM 3800-type printers {e.g. FINE240: normal, IMG240: bold} PROCOPT= {Processing Options} {OFDSTYPE,PSEG}, (HRIPSIZE,175,100,MILLS) PSEG instead of DOC horizontal/vertical size in millimeters {also possible: inch or cent} 2. Allocate a new output file for the page segment Page segments are best stored in a partitioned data set {PDS} with record format of VBM and logical record length of 8206. Example: FILENAME ADMIMAGE 'E.SEUGI.ADMIMAGE' DISP={MOD,CATLG} RECFM=VBM LRECL=8206 BLKSIZE=8210 SPACE{8206,(300,600,1 0» DSORG=PO; FILENAME ADM IMAGE CLEAR; 3. Use the correct fileref and the appropriate options in your SAS session • Allocate your GDDM nickname file with the fileref ADMDEFS • Allocate the output file for the page segment. The file ref should match the TONAME= that you defined within the nickname file (in this case ADMIMAGE). Specify GOPTIONS DEVICE=GDDMFAM4 and GDDMNICKNAME=PSEG1 {nickname of GDDM nickname file defined with NAME=}. 579 Example: FILENAME ADMDEFS FILENAME ADMIMAGE 'E.SEUGI.ADMDEFS'; 'E.SEUGI95.ADMIMAGE(IMG1),; GOPTIONS DEVICE=GDDMFAM4 GDDMNICKNAME=PSEG1; proc gchart data=sasuser.crime; vbar burglary; run; Nickname File Output File E.SEUGI.ADMDEFS E.SEUGI.ADMIMAGE(IMG1 ) ADMMNICK NAME=PSEG1 TONAME=ADMIMAGE FILENAME ADMIMAGE 'E.SEUGI.ADMIMA (lMG1)'; FILENAME ADMDEFS 'E.SEUGI.ADMDEFS'; ~ , GOPTIONS device=gddmfam4 gddmnickname=PSEG1; 580 4. Include the page segment in your DCF/GML script file and process .*------------OCF/GML Script File ---------* :gdoc language='sgerman~. :body. :h1.Swissair Information Systems :p.text text text text text text text text text text text text text text text text text :fig frame=box place=inline; .si IMG1· inline :efig. :p.more text text text text text text text :egdoc. You will have to invoke DCF with the parameter SEGLlB('E.SEUGI.ADMIMAGE1 or by allocating the page segment file with ddname SCRPTSEG. Of course it is also possible to produce page segments for DCF/GML in batch or in SCL programs. You will then have to run TSO and DCF in batch mode. Conclusion Even on mainframes there are almost no restrictions to printing SAS output in appealing and attractive designs. As well as producing neat and sophisticated output, you may enjoy the benefits of the mainframe: central printing with post processing, time controlled batch processing and data security. Trademarks SAS®, SAS/GRAPH® are registered Trademarks of SAS Institute Inc., Cary, NC, USA. GODM, DCF are registered Trademarks of IBM®. References Observations 1Q92 : Using GDDM Interface Drivers with SAS/GRAPH Software, Martin Mi'ncey Authors & Contact Swissair Information Systems .CAMS Rolf Annen Christel Ott CH-8058 Zurich;.Airport +41 1 81233 03 (R. Annen) +41 1 81221 14 (C. Ott) +41 1 81291 71 FAX: Internet: [email protected] 581 ".,>:''''''''' ....~''''~,f~:;);;..~'3·~~''~'!'~.~~ .. l=~~1''1:~'''-=~'~~:5:.-,,'.,.,_"'C:.-~7,:::>t"'C~'P"'g..,,-.>-=~_~=-r.'=.. ,....-"·~'...-'''''.' .. ''''':i-~·--,.;:j~_.~.-:;-:-::-,'~-,'<_~~·~,--~-.. ~,->"'--;:"-'C-'"-_"7:.-",-,",""_"~·, 11 ") 5wiSsairC Cargo and Mail Performance (Revenue, Traffic, Yield) ~ MIS KE Monthly Report: February 1994 DICTIONARY English-German German-English Vocabulary absent-minded adj. zerstreut, geistesabwesend absurd adj. absurd, sinnwidrig, widersinnig, unsinnig, sinnlos accelerator s. 1. (Motor.) Gaspedal, Gashebel accelerator s. 2. (Anat.) Treibmuskel achievement s. AusfOhrung, DurchfOhrung, Vollendung, vollendetes Werk, Leistung, Errungenschaft, Heldentat, act as V.l. + prep. dienen als actual adj. tatsachlich, wirklich, eigentlich, real add V.l. hinzufOgen, hinzurechnen, hinzusetzen adult adj. erwachsen, reif adverb s. (Gram.) Adverb, Umstandswort aerial s. (Rad.) Antenne agent s. 1. Urheber, Handelnder, Wirkender agent s. 2. Ursache, Werkzeug, Agens, Mittel, wirkende Kraft air defence s. Luftschutz Alsatian dog s. (Zoo/.) deutscher Schaferhund, Wolfshund ambulance s. 1. (Mil.) Feldlazarett ambulance s. 2. (Motor.) Krankenwagen, Sanitatswagen amelioration s. 1. Verbesserung amelioration s. 2. Uiuterung, Veredelung amiable adj. liebenswOrdig, leutselig, freundlich, liebreich, reizend ancestor s. Ahn, Vorfahr, Stammvater apothecary s. (obs.) Apotheker appearance s. 1. Erscheinen, Sichtbarwerden, Auftreten, Vorkommen, Veraffentlichung appearance s. 2. aussere Erscheinung, Ausseres, Auss8hen, Anblick, Anschein, Schein applicant s. Bewerber, Antragsteller apprentice V.l. in die Lehre geben April fool s. Aprilscherz arachnoid adj. spinnenartig, spinnwebartig argumentative adj. streitsOchtig, streitlustig army s. (Mil.) Heer, Armee, Landstreitkrafte (pl.) article s. Abschnitt, Paragraph, Aufsatz, Artikel articulated lorry s. (Motor.) Sattelschlepper artificial adj. kOnstlich, gekOnstelt, erkOnstelt, erheuchelt, erdichtet, vorgetauscht, nachgemacht, unecht, aspire v.i. streben, trachten, sich sehnen, verlangen assault s. Beleidigung assembly line s. Montagebahn, Montagerampe, Montageband, Fliessband, I aufendes Band astonishment s. Erstaunen, Oberraschung, BestOrzung, Verwunderung attache-case s. Aktentasche, Aktenmappe, Stadtkoffer aware adj. gewahr, unterrichtet, in Kenntnis back s. (Anal.) ROcken backbone s. Wirbelsaule, ROckgrat back-seat s. (Motor.) ROcksitz back-seat driver s. Besserwisser bail out V.t. + adv. 1. loskaufen. auslasen, freikaufen bail out V.l. + adv. 2. (Naut.) ausschOpfen, leer schOpfen bait s. Kader, Lockspeise bale V.t. in Ballen verpacken, emballieren bale s. 1. Ballen bale s. 2. (obs.) Elend, Leid, Weh, Qual ballast s. (Naul.) Ballast ballast s. (Rai/w.) Bettung, (Stein)schotter bankrupt adj. bank(e)rott, zahlungsunfahig bankrupt s. Bankrotteur, Zahlungsunfahige(r) bare adj. nackt, unbekleidet, bloss, entblasst, bar, blank barge s. (Naut.) Lastkahn, Schleppkahn, Leichter, Kanalschiff, Zille, Schute barrel s. 1. Fass, Tonne Vocabulary barrel s. 2. Gewehrlauf, GeschOtzrohr, Walze, Trommel, Zylinder base s. 1. Basis, Grundlage base s. 2. (Chem.) Grundstoff, Base, Hauptbestandteil basin s.1. Becken, SchOssel, Schale, Bassin basin s. 2. (Geo/.) Stromgebiet, Mulde, Kessel, Talbecken basin s. 3. (Naut.) Hafenbecken, Innenhafen be aware of irr.v.i. + adj. gewahr sein um, unterrichtet sein Ober, in Kenntnis sein von be off irr.v.i. + adv. 1. fortgehen, abreisen, ausfallen be off irr.v.i. + adv. 2. verdorben sein (fish, eggs) be off irr.v.i. + prep. 3. frei werden von, sich ablasen von be over irr.v.i. + adv. 1. vorbeisein, Obrig sein, vorOber sein be over irr.v.i. + prep. 2. darOber sein, Obersteigen be up and about Camp. (wieder) auf den Beinen sein be up and coming Camp. f1ink sein, auf Draht sein, tOchtig sein be up and doing Camp. aktiv sein, rege sein, tiitig sein be up and running Camp. eingefOhrt sein, installiert sein bear s. (Zool.) Bar beat s. 1. Revier, Runde, Bezirk beat irr.v.t. 2. schlagen, prOgeln, besiegen beat up V.t. + adv. schlagen, rOhren, zusammentrommeln, verdreschen, verhauen become aware of irr.v.i. + adj. gewahr werden, unterrichtet sein Ober, in Kenntnis sein von behaviour s. Benehmen, Betragen, Verhalten behead V.t. enthaupten, kElpfen beheading s. Enthauptung behind bars s. hinter Gittern belch v.i. rOlpsen, aufstossen bend s. Kurve (Strasse), Biegung, KrOmmung best man s. BrautfOhrer bigoted adj. fanatisch fromm, bigott, blind ergeben, voreingenommen bin s. Kasten, Behalter birch s. (Bot.) Birke birchtree s. (Bot.) Birke bitchy adj. spOttisch, narglerisch • bladder s. (Anal.) Harnblase, Blase, Schwimmblase bland adj. mild, sanft, einschmeichelnd blissful adj. paradiesisch, glOckselig, wonnig, wonnevoll blond adj. blond (nur fOr Manner) . blonde adj. blond (nur far Frauen) blonde s. Blondine . blow up irr.v.i. + adv. 1. aufblasen,aufblahen blow up irr.v.i. + adv. 2. (in die Luft) sprengen, springen lassen blow up irr.v.i. + adv. 3. vergrassern (Photo) blunt adj. stumpf, abgestumpft, unempfindlich, plump, grob; barsch, derb, ungeschliffen, blunt v.t. stumpf machen, abstumpfen bluntness s. Stumpfheit;Plumpheit, Derbheit, taktlose Offenheit boarding-house s. (School J Pension boarding-school s. (School.) Internat, Pension at, Heimschule . boarding-school s. Internat, Pensionat, Heimschule boll v.I. kochen, sieden boisterous adj. stOrmisch, heftig, unbAndig, ungestOm boisterous adj. 2. U\rmend, tobend, gerauschvoll bOl1d s. (Comm.) Obligation, Schuldverschreibung, ROckschein, Schuldschein, Pfandbrief, Anteihschein bond s. 1. Bindung, Verbindung, Bund, BOndnis. 22. Mai 1995 583 I l. ellS, Top five list 584 iHAY 15TH, 1995 4.0 ellS, Preflight 4.1 Top six, OlMAY94 - 30APR95 AOS SEAT SELECTION + ALLOCATION Froqu ..noy I Pax In 10'000 100 70 20 10 M ..y ..Jun ...lui Aug = Sep Nega1Ivw -- Oat Nov Ceo Apr A01 BOOKING / RESERVATIONS Frequ .. ncy I Pax In 10'000 100 70 20 = Negative _ _ A04 INFORMATION Froqu .. ncy I Pax In 10'000 100 80 70 eo so 20 10 ..Jun Aug = s.p NegatIve -- Oct Nov Apr OIS, Preflight 585