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/

Voit testata XPath-lauseen toimivuutta esimerkiksi täällä:

https://codebeautify.org/Xpath-Tester


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).

image2016-10-31 10:21:55.png

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.

image2016-10-31 12:0:5.png

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


image2016-10-31 10:47:42.png

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).

range_1.png

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:

mywalls_reportFI.png

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:

wall_panels_profilereportFI.png

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.

range_1_columns.png

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.

range_1_data.png

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ä (").

range_1_group_header.png

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).

range_1_summary.png

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.

proreg_proj_id.png

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

system_date.png

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.

image2016-11-4 15:1:0.png

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.

print_titles.png

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.