240 likes | 410 Views
Proc Template. Muokkautuvaa tyyliä eri ympäristöissä Virpi Virtanen, LähiTapiola Jukka Peltola, Elo. Proc Templaten etuja. Ympäristö voi olla hyvinkin monimuotoinen MF massatulostusta eri järjestelmille Windows-alustalla portaaliraportointia AIX alustalla osa ympäristöstä
E N D
ProcTemplate Muokkautuvaa tyyliä eri ympäristöissä Virpi Virtanen, LähiTapiola Jukka Peltola, Elo
ProcTemplaten etuja • Ympäristö voi olla hyvinkin monimuotoinen • MF massatulostusta eri järjestelmille • Windows-alustalla portaaliraportointia • AIX alustalla osa ympäristöstä • Käyttäjien työasemat
Tyylit • SAS mukana tulee 53 tyylimääritettä (9.2). • Tyylimääritteitä voi tehdä itse. • Perustyylin lisäksi Print- ja Report-proseduurit osaavat ottaa huomioon lisämääreitä tyylissä. • Tyylejä voidaan käyttää pdf-, html-, rtf- ja excel-tulostuksissa.
Templaten tarkastelu • Templatea voi tarkastella SASissa antamalla komennon Odstemplates komentorivillä. Jos templateen halutan tehdä muutoksia, on kannattavaa käyttää pohjana olemassa olevaa templatea ja halutut kohdat korvata uusilla.
Tyyli templaten koodi • Tyylitemplate koostuu lohkoista, joissa määritellään tyylielementtejä. • Template voi perustua olemassa olevaan templateen (parent). • Lohkot ovat joko määritteleviä (style) tai korvaavia (replace). Määrittelevä lohko periyttää vanhemmalta määrittelemättömät osat, korvaava tekee uuden määrityksen.
Tyyli-templaten muokkaus • Jos tyyliä halutaan muokata, kannattaa ottaa pohjaksi joku olemassa oleva tyyli joka on mahdollisimman lähellä haluttua ja tehdä tähän muutokset. Kaikkien tyylien äiti on Default-tyyli. • Toinen vaihtoehto on määritellä parentiksi sopiva tyyli ja tehdä uusi style-lohko, jossa määritellään muutokset.
Jaetun tyylin käyttöön otto • Jaetun tyylin saa käyttöön tekemällä viittauksen hakemistoon, johon tyylitiedosto on käännetty: libnameodstyyli ”tyylin sijaintipolku"; odspath odstyyli.tyylin_nimi(read) sasuser.templat(update) sashelp.tmplmst(read);
Käyttöönotto • Jos ProcTemplate koodi on ’yleisesti saatavilla’ työtilojen koodivinkeistä tai muualta, voi jokainen käyttäjä ottaa itse värityksen käyttöön ajamalla ProcTemplate koodin. • Tyyli voidaan ’asentaa’ palvelimelle, jolloin se on käytettävissä raportointisovelluksissa. • Uusien tyylien automaattinen mukaan tuominen edellyttäisi niiden paketointia asennusohjelmaan -> helpompi ajaa tyyli sisään.
Tyyli käyttöön • Kannattaa tehdä ProcTemplatella: • Liiketoiminnan pääkäyttäjä-tasoinen henkilö pystyy tekemään värityksen muutokset tarvittaessa. • Tapiola -> LähiTapiola • LähiTapiola -> S-pankki • LähiTapiola -> Elo • jne
Yksinkertaisin puukotettava classcolor_list "Colors used in the default style" / 'fgB2' = cx0066AA 'fgB1' = cx004488 'fgA4' = cxAAFFAA 'bgA4' = cx880000 'bgA3' = cxD3D3D3 'fgA2' = cx0033AA 'bgA2' = cxB0B0B0 'fgA1' = cx000000 'bgA1' = cxF0F0F0 'fgA' = cx002288 'bgA' = cxE0E0E0; • Voi tehdä minkä nimiset viittaukset tahansa classcolors ”Tyylin värimaailma” / "musta” = cx000000 "valkoinen” = cxffffff "läpinäkyvä” = transparent "keltainen” = cxffd200 ...
RGB väritys • Värien RGB-koodit ovat heksamuodossa: • cx R G B • SASilla voi muuttaa koodin oikeaan muotoon • Esim. RGB(111, 222, 99) data _null_; r = put(111, hex2.); g = put(222, hex2.); b = put(99, hex2.); varikoodi = "cx" || compress(r) || compress(g) || compress(b); put r = ; put g = ; put b = ; put varikoodi = ; run; • Lokiin tulostuu:
Omien väritysten käyttöönotto replace color_list "Colors used in the default style" / 'link' = blue 'bgH' = cx00B92B 'fg' = black 'fgH' = white 'bg' = _undef_;
Fiksua? • Tyylien on syytä olla tarjolla %includella käytettäviksi. • Henkilökohtaisiin asetuksiin voi ajaa tyylit myös sasuser.templat:iin. • Palvelimella olevat tyylit on syytä administratorin päivittää sashelp.tmplmst:iin. • SAS sivuilta voi ladata päivitykset yleiseen käyttöön.
Eri ympäristöissä eri profiilit Samat tyylit ovat käytössä vain, jos ne ajaa sisään sasuser.templat:iin.
Fontit definestyleStyles.Color_laTapiola / store = SASUSER.TEMPLAT; parent = styles.laTapiola; stylefonts / ”Otsikko” = ("Calibri, Helvetica, sans-serif",10pt,bold) 'TitleFont' = ("Calibri, Helvetica, sans-serif",12pt,bold) 'StrongFont' = ("Calibri, Helvetica, sans-serif",10pt,bold) 'EmphasisFont' = ("Calibri, Helvetica, sans-serif",10pt,italic) 'FixedEmphasisFont' = ("Courier",9pt,italic) 'FixedStrongFont' = ("Courier",9pt,bold) 'FixedHeadingFont' = ("Courier",9pt,bold) 'BatchFixedFont' = ("SAS Monospace, Courier",6.7pt) 'FixedFont' = ("Courier",9pt) 'headingEmphasisFont' = ("Calibri, Helvetica, sans-serif",11pt,bold italic) 'headingFont' = ("Calibri, Helvetica, sans-serif",9pt,bold) 'docFont' = ("Calibri, Helvetica, sans-serif",10pt); styleGraphFonts / 'GraphDataFont' = ("Calibri, Helvetica, sans-serif",8pt) 'GraphValueFont' = ("Calibri, Helvetica, sans-serif",10pt) 'GraphLabelFont' = ("Calibri, Helvetica, sans-serif",12pt,bold) 'GraphFootnoteFont' = ("Calibri, Helvetica, sans-serif",12pt,bold) 'GraphTitleFont' = ("Calibri, Helvetica, sans-serif",14pt,bold);
Käyttö • Oma tyylielementti classSystemTitle / backgroundcolor= colors("läpinäkyvä") color= colors("musta") textalign= right margintop= 0.1 cm marginbottom= 0 cm font = fonts("otsikko"); • Tyyli tulosteeseen odspdffile = ”tiedoston_sijainti_ja_nimi" style = omatyyli;
Omat kuvaajat • Tehdään myös proctemplatella (GTL) define statgraphgraphs.kuvatesti / store = testi.testityy; dynamiclabelixbybgrouppidataskini xsyslegendlabelsitviivacol; begingraph; layout overlay / walldisplay= (outlinefill) xaxisopts= ( label = (labeli)) yaxisopts= ( display = (ticks tickvalues line ) griddisplay= on offsetmax= .1 offsetmin= 0); barchartx = xb y = yb / group = grouppi grouporder = ascending name = 'bar' barwidth = 0.5 dataskin = dataskini display= (fill); seriesplotx = xs y = ys / name = 'series' legendlabel= legendlabelsit connectorder= xaxis lineattrs= (thickness = 4); discretelegend'bar' 'series'; entryhalign = right "Yhteensä: &lkm" / valign = top border = false; endlayout; endgraph; end; • Kutsutaan procsgrenderillä (template = kuvaajannimi)
Omat kuvaajat • Myös piirakkakuvio onnistuu GTL:llä ja sgrenderillä
Alihakemistot tyylitiedostossa libname testi "c:\temp"; odspathtesti.testityy(update) proctemplate; definestylestyles.testik / store = testi.testityy; . . . end; define statgraphgraphs.kuvatesti / store = testi.testityy; . . . end; run; • Määritellään kirjasto ”testi” • Asetetaan kirjaston tyylitiedosto päivitys-tilaan • Aloitetaan proctemplate • Aloitetaan tyylimääritys • Alihakemisto • Tyylin tai kuvaajan nimi • Tyylikirjasto • Tyylitiedoston nimi (tiedostomuoto on .sas7bitm)