Atskaišu ģenerācija

Last modified by superadmin on 2018-01-12 20:39

Atskaišu ģenerācija

Servera puses lietotnēm ir reizēm jāveido atskaites kā drukājami (nevis HTML) dokumenti. Šī iemesla dēļ bieži nepieciešams pārveidot datus, teiksim, Adobe PDF formātā. Šajā nodaļā aplūkosim nelielu piemēru, kas veic daudzpakāpju pārveidojumu, kura rezultātā rodas PDF.

XSLT/FO Ievads

XSL (Extensible Stylesheet Language) ir valoda stila lapu (stylesheets) definēšanai. Strādājot ar patvaļīgi strukturētiem XML dokumentiem vai datu failiem, izstrādātāji lieto XSL stila lapas, lai definētu savas ieceres šī strukturētā satura prezentēšanai, lai aprakstītu, kā informācija tiks noformēta (izvietota, sadalīta pa lapām) prezentāciju mēdijā - Web pārlūkprogrammas logā, plaukstdatorā, atskaites vai grāmatas izdrukā.

XSL procesors, piemēram, [FOP], saņem dokumentu vai datus XML formātā un XSL stila lapu un rada XML dokumenta satura prezentāciju, kādu to iecerējis stila lapas izstrādātājs. Šīs prezentācijas radīšanas procesā ir divi posmi: pirmais konstruē rezultāta koku no XML satura koka (iegūst .FO failu), bet otrais - interpretē rezultāta koku, lai iegūtu pašu drukājamo reprezentāciju (piemēram .PDF failu). Pirmo posmu sauc par koka transformāciju, bet otro - par formatēšanu. Transformācija parasti nozīmē pāreju no deskriptīvā iezīmējuma uz procedurālo iezīmējumu (piemēram, datubāzes klienti pārtop par noteikta platuma rindiņām tabulā), bet formatēšana ir pāreja no procedurālā iezīmējuma uz prezentācijas iezīmējumu (t.i. klientu tabula pārtop noteiktas izšķirtspējas izdrukā).

Koka transformēšana ļauj rezultāta koka struktūru padarīt stipri atšķirīgu no sākuma koka struktūras, piemēram, sakārtot ierakstus, pievienot satura rādītāju, utml. Formatēšanu veic, izmantojot rezultāta koka formatēšanas semantiku. Piemēram, drukāšanai izmanto "formatēšanas objektus". Tie ir tipogrāfiskas abstrakcijas, piemēram, lappuse, rindkopa, tabula utt. Detalizētāku kontroli pār šo abstrakciju attēlošanu dod formatēšanas parametru kolekcija - piemēram, tie, kuri nosaka atkāpes, vārdu un burtu atstarpes. XSL formatēšanas objekti un formatēšanas parametri ļauj veikt visas tipiskās ar dokumentu drukāšanu saistītās ieceres.

XSL divpakāpju apstrādes modelis nenozīmē, ka implementācijai jāveic šie procesi kā atdalīti viens no otra. Turklāt implementācijai atļauts apstrādāt pamata dokumentu jebkādā veidā, kas rada tādu pašu rezultātu, kāds būtu, ja pamata dokuments tiktu apstrādāts lietojot konceptuālo divpakāpju XSL apstrādes modeli. Detalizēta abu XSL procesu (transformēšanas un formatēšanas) diagramma:

#pic("FO_Transformations.gif", "250") Attēls: XSL apstrādes koceptuālais modelis

Koka transformācijas

Koka transformācija konstruē rezultāta koku. Konstruējot rezultāta koku, t.i. formatētos objektus, izejas koku mēdz pārkārtot un tam pievienot papildu informāciju.

Koka transformāciju veic ar XSLT. XSLT transformācijas sastāv no divām daļām: šabloniem, kurus salīdzina ar elementiem sākuma kokā, un veidnēm, kuras konstruē rezultāta koka kārtējo daļu. Tas ļauj stila lapai būt pielietojamai plašai sākuma dokumentu kopai, kas visi atbilst tai pašai XML sintaksei. Parasti XSLT rezultāts arī ir XML dokuments. Piemēram, ja XSLT izmanto drukāšanai, tad iegūstam FO failu.

Formatēšana

Formatēšana interpretē rezultāta koku radot vēlamo prezentāciju, piemēram, drukājamu dokumentu. Katra formatēšanas objekta klase reprezentē noteiktu formatēšanas uzvedības veidu. Parasti liela daļa formatēšanas objektu apzīmē satura rindkopas - katru ar saviem prezentācijas parametriem. Parametri, kas saistīti ar atsevišķo formatēšanas objektu, kontrolē šī objekta attēlošanu. Daži no parametriem, piemēram, color, tieši nosaka formatēto rezultātu. Citi parametri, piemēram, space-before, ietekmē iespējamo rezultātu, nosakot objekta novietojumu attiecībā pret citiem objektiem.

Formatēšana nozīmē izveidot ģeometrisku laukumu struktūru, kuru sauc par apgabalu koku. Ģeometriskos apgabalus pozicionē uz vienas vai vairākām lapām. Katram ģeometriskajam apgabalam ir noteikta pozīcija lapā, specifikācija, ko rādīt šajā apgabalā un tam var būt noteikts fons, atkāpes un rāmis.

Literatūra

[FOP]
FOP mājas lapa
[FOSpec]
XSL (Formatēto objektu) specifikācija
Tags:
Created by Kalvis Apsītis on 2008-05-04 17:44
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation