Excel-raporttipohjan rakenne
Excel-materiaaliraportin lähteenä käytetään XML-tiedostoa. Tiedostosta haettavat komponentit ja niiden attribuutit sekä tietojen järjestely ja asettelu taulukossa määritetään raporttipohjassa (XLSX-tiedosto). Tiedot haetaan XML-tiedostosta XPath-kyselykielen avulla.
Voit luoda omia raporttipohjia käyttämällä esimerkkinä järjestelmän raporttipohjia. Raporttipohjien muokkaaminen edellyttää, että:
- Hallitset Microsoft Excel -ohjelman käytön.
- Tunnet Vertexin tuottaman XML-tiedoston rakenteen.
- Tunnet XPath-kielen syntaksin.
Lisätietoa XPath-kielestä esimerkiksi täältä:
Voit testata XPath-lauseen toimivuutta esimerkiksi täällä:
Yksi raporttipohja voi sisältää useita taulukoita (A), joihin voidaan kerätä eri tietoja. Yhteen taulukkoon taas voidaan määrittää useita listauksia (B). Raporttipohjassa voi olla vakiotekstejä, ja siihen voidaan hakea tietoa esimerkiksi projektin tietokannasta tai järjestelmästä (C).
Taulukon solualueet
Taulukossa on erilaisia solualueita, esimerkiksi:
- Taulukon määrittelyalue
- Tietoalue
- Tietoalueen osat: otsikko, sarakkeet, rivit, yhteenveto
- Alueet, joihin haetaan sisältö projektilta tai järjestelmästä
- Tulostusalue
- Tulostusotsikot
Jokaisen solualueen käyttöalue tulee olla ko. taulukko. Varmista oikea käyttöalue Excelin Nimien hallinta -työkalulla. Kun lisäät nimetyn solualueen, valitse sen käyttöalueeksi taulukon nimi Laajuus (Scope) -luettelosta.
Taulukon määrittely
Tiedot haetaan lähdetiedostosta taulukkoon määritetyille tietoalueille. Tietoalueita voi olla useita yhdessä taulukossa. Taulukon tietoalueiden lukumäärä ja nimet asetetaan taulukon määrittelyalueessa, jonka nimen tulee olla SHEETDEF. Määrittelyalueessa ovat käytettävissä seuraavat avainsanat, jotka erotetaan toisistaan puolipisteellä (;):
Avain | Kuvaus | Esimerkki |
---|---|---|
Ranges | Tietoalueet, joissa tietoryhmät määritellään. Erota useammat tietoalueet toisistaan pystyviivalla (|). | Ranges=RANGE1 Ranges=RANGE1|RANGE2 |
Page | Sivun maksimirivimäärä, jonka jälkeen lisätään sivunvaihto. | Page=54 |
PROTECT | Taulukon suojaus. Arvo voi olla TRUE tai FALSE. | PROTECT=TRUE |
Tietoalueen määrittely
Tietoalueen nimen tulee olla sama kuin taulukon määrittelyalueessa annettu nimi, esimerkiksi RANGE1.
Tietoalueen määrittelyrivillä (A) kerrotaan, mitä lähdetiedostosta haetaan, miten listauksen rivit ryhmitellään, mikä on rivien järjestys jne. Sarakealueella (B) määritetään listauksen sarakkeet ja niiden otsikot. Tietorivialueelle (C) listataan lähdetiedostosta saatavat tiedot. Tietoalueeseen voi kuulua yhteenvetoalue (D) ja otsikkoalue (ei esimerkkikuvassa).
Tietoalueen määrittelyrivi
Määrittelyrivi koostuu useista XPath-lauseista ja ulkoasun määrittelyavaimista. Huomaa, että XPath-lauseissa kirjainkoko on merkitsevä. Avainsanojen järjestyksellä ei ole merkitystä. Käytettävissä ovat seuraavat avainsanat, jotka erotetaan toisistaan puolipisteellä (;):
Avain | Kuvaus | Esimerkki | Toiminta |
---|---|---|---|
Element_group | Perusryhmä, josta elementit kerätään. Avaimen arvo on XPath-lause. Useita kohteita voidaan kerätä erottamalla arvot pystyviivalla (|). | Element_group=//WALLELEMENT; | XPath |
Elements | Kerättävät elementit. Avaimen arvo on XPath -lause. Useita kohteita voidaan kerätä erottamalla arvot pystyviivalla (|). | Elements=.//FRAMEPIECE/ATTRIBUTES; Elements=//WALLEXT|//WALLINT; | XPath |
Sort | Lajittele tämän kentän mukaan. Useammat lajitteluehdot erotetaan pystyviivalla (|) | Sort=./ATTRIBUTES/CODE|./ATTRIBUTES/LENGTH_CENTER; | XPath |
Order | Aseta lajittelu nousevaan tai laskevaan järjestykseen | Order=Descending; Order=Ascending; | Ulkoasun määrittelyavain |
Group_by | Jaa data ryhmiin tämän kentän arvojen mukaan. | Group_by=CODE; | XPath |
Group_order | Aseta ryhmien lajittelu nousevaan tai laskevaan järjestykseen. | Group_order=Descending; Group_order=Ascending; | Ulkoasun määrittelyavain |
Element_combine | Yhdistele elementtiryhmät tämän XPath-kyselyn tuloksen perusteella. | Element_combine=./ATTRIBUTES/ITEM_ID; | XPath |
Element_sort | Lajittele elementtiryhmät tämän XPath-kyselyn tuloksen perusteella. | Element_sort=./ATTRIBUTES/ITEM_ID; | XPath |
Element_order | Aseta elementtiryhmien lajittelu nousevaan tai laskevaan järjestykseen. | Element_order=Descending; Element_order=Ascending; | Ulkoasun määrittelyavain |
Group_Page_Break | Jos arvo on TRUE, lisää tulostettaessa sivunvaihto jokaisen ryhmän jälkeen. | Group_Page_Break=true; | Ulkoasun määrittelyavain |
Column_header | Jos data on ryhmitelty, lisää otsikkorivi jokaiselle ryhmälle. | Column_header=all; | Ulkoasun määrittelyavain |
Continuous_num | Käytä jatkuvaa numerointia ryhmille, TRUE tai FALSE. | Continuous_num=true; | Ulkoasun määrittelyavain |
Combine | Yhdistele samanlaiset rivit, ja aseta yhdistettyjen rivien lukumäärä muuttujalle AUTO_COUNT. | Combine=true; | Ulkoasun määrittelyavain |
Gap | Tyhjät rivit ryhmien välissä. | Gap = 2; | Ulkoasun määrittelyavain |
Page_break_style | Jos arvo on TRUE, käytä viimeisen rivin tyyliä ennen sivunvaihtoa, ja ensimmäisen rivin tyyliä sivunvaihdon jälkeen. | Page_break_style=true; | Ulkoasun määrittelyavain |
Page_break | Jos arvo on TRUE, lisää tulostettaessa sivunvaihto jokaisen elementtiryhmän jälkeen. | Page_break=true; | Ulkoasun määrittelyavain |
Write_empty_group | Oletuksena järjestelmä ei kirjoita ryhmiä, jos niillä ei ole tietorivejä, ellei Write_empty_group -avaimen arvoksi ole asetettu TRUE. | Write_empty_group=true; | Ulkoasun määrittelyavain |
Esimerkki 1
Elements=//WALLINT/ATTRIBUTES;Group_by=CODE;Sort=LENGTH_CENTER;Order=Descending;Column_header =all;Combine=true;Gap=1
Avain | Selitys |
---|---|
Elements=//WALLINT/ATTRIBUTES; | Hae kaikki WALLINT-elementit, ja kunkin WALLINT-elementin lapsielementti ATTRIBUTES. |
Group_by=CODE; | Ryhmittele tiedot ATTRIBUTES-elementin lapsielementin CODE mukaan. |
Sort=LENGTH_CENTER;Order=Descending; | Järjestä ryhmän rivit lapsielementin LENGTH_CENTER mukaan laskevaan järjestykseen. |
Column_header =all; | Lisää jokaiselle ryhmälle otsikkorivi. |
Combine=true; | Yhdistele samanlaiset rivit, ja aseta yhdistettyjen rivien lukumäärä sarakkeeseen AUTO_COUNT. |
Gap=1; | Lisää ryhmien väliin tyhjä rivi. |
Lopullinen listaus:
Esimerkki 2
Element_group=//WALLELEMENT;Elements=.//FRAMEPIECE/ATTRIBUTES;Element_sort=./ATTRIBUTES/ITEM_ID; Group_by=CODE;Sort=ITEM_ID|LENGTH;Order=Descending;Column_header =all;Combine=true;Gap=1;Page_break=true;
Avain | Selitys |
---|---|
Element_group=//WALLELEMENT; | Hae kaikki WALLELEMENT-elementit. |
Elements=.//FRAMEPIECE/ATTRIBUTES; | Hae kunkin WALLELEMENT-elementin lapsielementti FRAMEPIECE, ja sen lapsielementti ATTRIBUTES. |
Element_sort=./ATTRIBUTES/ITEM_ID; | Lajittele WALLELEMENT-elementin lapsielementin ATTRIBUTES/ITEM_ID mukaan. |
Group_by=CODE; | Ryhmittele näin syntyvät osat FRAMEPIECE/ATTRIBUTES-elementin lapsielementin CODE mukaan. |
Sort=ITEM_ID|LENGTH;Order=Descending; | Järjestä ryhmän rivit FRAMEPIECE/ ATTRIBUTES-elementin lapsielementin ITEM_ID ja LENGTH mukaan laskevaan järjestykseen. |
Column_header =all; | Lisää jokaiselle ryhmälle otsikkorivi. |
Combine=true; | Yhdistele samanlaiset rivit, ja aseta yhdistettyjen rivien lukumäärä sarakkeeseen AUTO_COUNT. |
Gap=1; | Lisää ryhmien väliin tyhjä rivi. |
Page_break=true; | Lisää tulostettaessa sivunvaihto jokaisen elementtiryhmän jälkeen. |
Lopullinen listaus:
Sarakealueen määrittely
Sarakealueen nimen tulee olla <data_range_name>_COLUMNS, esimerkiksi RANGE1_COLUMNS.
Ensimmäisellä rivillä ovat XPath-lauseet, joilla tieto haetaan lähteestä. Toisella rivillä määritetään lopullisessa raportissa näkyvien sarakkeiden otsikot.
Erikoissarakkeita ovat:
AUTO_ITEM | Rivien automaattinen numerointi |
AUTO_COUNT | Yhdistettyjen rivien lukumäärä. Katso avain Combine. |
Tietorivien määrittely
Tietorivien alueen nimen tulee olla <data_range_name>_DATA, esimerkiksi RANGE1_DATA. Tietorivialueen tulee olla kolme riviä korkea.
Tietorivialueen solu voi sisältää kaavan. Kaava voi viitata vain saman rivin soluihin, esimerkiksi =E10*G10/1000.
Ryhmän otsikko
Ryhmällä voi olla otsikkoalue. Sen nimen tulee olla <data_range_name>_GROUP_HEADER. Ryhmän otsikko voi sisältää XPath-lauseen tai merkkijonon. Merkkijono tulee erottaa XPath-lauseesta ympäröimällä se lainausmerkeillä (").
Ryhmän yhteenveto
Ryhmällä voi olla yhteenvetoalue. Sen nimen tulee olla <data_range_name>_SUMMARY. Yhteenvetoalue voi sisältää kaavoja. Kaavat voivat viitata kaikkiin tietoalueen riveihin, esimerkiksi =SUM(I10:I12).
Yksittäiset arvot
Taulukkoon voidaan hakea myös muuta tietoa kuin XML-tiedostosta kerättävät elementit.
- Muuta tietoa XML-tiedostosta
- Tietoa projektin tietokannasta
- Järjestelmäarvoja
- Vakioarvoja kuten tekstiä
Tieto XML-tiedostosta
Jos lähteenä toimivasta XML-tiedostosta haetaan muuta tietoa kuin kerättäviä elementtejä, alueen nimen tulee olla XML_<unique_name>. Nimetyn alueen solun sisällön tulee olla XPath-lause, jolla arvo haetaan XML-tiedostosta. Esimerkiksi, jos tarvitaan päivämääräelementti DATE, alueen nimi voi olla XML_DATE ja solun sisältö XPath-lause //DATE.
Tieto projektin tietokannasta
Projektitietoja voidaan lisätä nimeämällä alue muodossa PROREG_<unique_name>. Nimetyn alueen solujen sisältö haetaan tietokannan kentistä. Esimerkiksi, jos tarvitaan projektin nimi, alueen nimi voi olla PROREG_PROJ_ID, ja solun sisältö PROJ_ID.
Järjestelmäarvot
Järjestelmätietoja voidaan lisätä nimeämällä alue muodossa SYSTEM_<unique_name>. Nimetyn alueen solun sisällön tulee vastata jotakin seuraavista esimääritellyistä arvoista:
- USER
- COMPUTER
- DATE
- DATE_LOCAL
- DATE_PROJECT
- APPLICATION
- REVISION
- REVISION_LONG
- TIME
Vakioarvot
Nimetty alue voi sisältää myös vakioarvoja. Vakioarvo voi olla esimerkiksi teksti, joka kirjoitetaan lainausmerkkien sisään, ja tulostetaan sellaisenaan lopulliseen taulukkoon (lainausmerkit poistetaan).
Nimetyn alueen ulkopuolella lainausmerkkejä ei tarvita.
Monikieliset vakioarvot
Vakioarvo voidaan määrittää monikieliseksi, jolloin samasta template-taulukosta voidaan tuottaa erikielisiä raportteja. Käyttäjä valitsee minkä kielisen raportin haluaa muodostaa.
Syntaksi on:
"lang="xx"(<xx-kielinen teksti>)|lang="yy"(<yy-kielinen teksti>)|…"
xx ja yy ovat standardin mukaisia koodeja, esimerkiksi fi tai en (http://www.w3schools.com/tags/ref_language_codes.asp).
Esimerkki:
"lang="en"(Count)|lang="fi"(Lukumäärä)"
Tulostusalue ja tulostusotsikot
Voit määrittää taulukkoon tulostusalueen ja tulostusotsikot Excelin Sivun asettelu (Page Layout) -välilehden toiminnoilla.
Excel lisää solualueet Print_Area ja Print_Titles automaattisesti Nimien hallinta -luetteloon. Voit myös määrittää alueet Nimien hallinta -toiminnolla kuten muutkin nimetyt solualueet.
Ylä- ja alatunniste
Raporttipohjaan voidaan lisätä ylä- ja alatunniste tavalliseen tapaan Excelin toiminnoilla. Ne voivat sisältää sivunumeron, päivämäärän ja muut Excelissä käytettävissä olevat osat.
Voit lisätä ylä- ja alatunnisteeseen myös dynaamista tekstiä. Syntaksi on:
#<source_prefix><expression>#
Etuliite <source_prefix> on sama kuin yksittäisiä arvoja lisättäessä: SYSTEM_, PROREG_ ja XML_.
Esimerkiksi:
#PROREG_PROJ_ID# lisää PROREG-tietokannan kentän PROJ_ID arvon.