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ä: https://www.w3.org/TR/xpath/

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ä (;):

AvainKuvausEsimerkki

Ranges

Tietoalueet, joissa tietoryhmät määritellään.
Erota useammat tietoalueet toisistaan pystyviivalla (|).
Ranges=RANGE1
Ranges=RANGE1|RANGE2
PageSivun maksimirivimäärä, jonka jälkeen lisätään sivunvaihto.Page=54

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ä (;):

AvainKuvausEsimerkkiToiminta
Element_groupPerusryhmä, josta elementit kerätään. Avaimen arvo on XPath-lause. Useita kohteita voidaan kerätä erottamalla arvot pystyviivalla (|).Element_group=//WALLELEMENT;XPath
ElementsKerättävät elementit. Avaimen arvo on XPath -lause. Useita kohteita voidaan kerätä erottamalla arvot pystyviivalla (|).Elements=.//FRAMEPIECE/ATTRIBUTES;
Elements=//WALLEXT|//WALLINT;
XPath
SortLajittele tämän kentän mukaan. Useammat lajitteluehdot erotetaan pystyviivalla (|)Sort=./ATTRIBUTES/CODE|./ATTRIBUTES/LENGTH_CENTER;XPath
OrderAseta lajittelu nousevaan tai laskevaan järjestykseenOrder=Descending;
Order=Ascending; 
Ulkoasun määrittelyavain
Group_byJaa data ryhmiin tämän kentän arvojen mukaan.Group_by=CODE;XPath
Group_orderAseta ryhmien lajittelu nousevaan tai laskevaan järjestykseen.Group_order=Descending;
Group_order=Ascending; 
Ulkoasun määrittelyavain
Element_sortLajittele elementtiryhmät tämän XPath-kyselyn tuloksen perusteella.Element_sort=./ATTRIBUTES/ITEM_ID;XPath
Element_orderAseta elementtiryhmien lajittelu nousevaan tai laskevaan järjestykseen.Element_order=Descending;
Element_order=Ascending; 
Ulkoasun määrittelyavain
Group_Page_BreakJos arvo on TRUE, lisää tulostettaessa sivunvaihto jokaisen ryhmän jälkeen.Group_Page_Break=true;Ulkoasun määrittelyavain
Column_headerJos data on ryhmitelty, lisää otsikkorivi jokaiselle ryhmälle.Column_header=all;Ulkoasun määrittelyavain
Continuous_numKäytä jatkuvaa numerointia ryhmille, TRUE tai FALSE.Continuous_num=true;Ulkoasun määrittelyavain
CombineYhdistele samanlaiset rivit, ja aseta yhdistettyjen rivien lukumäärä muuttujalle AUTO_COUNT.Combine=true;Ulkoasun määrittelyavain
GapTyhjät rivit ryhmien välissä.Gap = 2;Ulkoasun määrittelyavain
Page_break_styleJos 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_breakJos arvo on TRUE, lisää tulostettaessa sivunvaihto jokaisen elementtiryhmän jälkeen.Page_break=true;Ulkoasun määrittelyavain
Write_empty_groupOletuksena 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

AvainSelitys
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;

AvainSelitys
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_ITEMRivien automaattinen numerointi
AUTO_COUNTYhdistettyjen 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.