Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmReport - Podrobný popis objektu

Viz: Objekt PmReport
 
Objekt slouží k vytváření sestav z HTML, XML nebo TXT vzorových souborů (tyto vzory musí mit tvar popsaný v Popis zdrojového souboru objektu PmReport). Sestavy vytvořené objektem PmReport lze pak používat například k následujícím účelům:
- zobrazovat v okně aplikace Promotic nebo na WEB klientovi. Pro některé účely je lepší pro zobrazení použít PmReport než objekt PmPanel. Jedná se zejména o případy, kdy je potřeba zobrazovat velké množství údajů v tabulkové podobě, které se nemění příliš často. Okno objektu PmReport lze otevřít úplně stejně jako okno objektu PmPanel, tzn. metodou OpenView (viz takéOtevření prohlížečky objektu, viz příklad Příklad2).
- tisknout na tiskárnu, tzn vytvářet například několikastránkové tiskové sestavy. Lze to jednoduše provést metodou PmReport.SaveToString a Pm.PrintHtmlPage (viz příklad Příklad2).
- uložit na disk v podobě HTML (XML,TXT) souboru pomocí metody SaveToFile.
 
Objekt PmReport pomocí výrazů a klíčových slov provede nad zdrojovým vzorem sestavy (HTML, XML, TXT stránka) textovou transformaci do podoby výsledné sestavy. Transformace se provede naplněním hodnot, vlastností a stylů tágů (pomocí klíčových slov) s možností rozvinutí nebo naopak skrytí části vzoru sestavy. Výsledná sestava může být zobrazena, vytisknuta nebo vrácena v textové proměnné.
 
Z hlediska aktualizace novými hodnotami existují dva základní způsoby použití objektu PmReport:
1. Aktualizovat sestavu až při vlastním čtení výsledné sestavy:

K tomuto účelu se využívá události onReportRequest, která se vyvolá vždy na začátku čtení obsahu sestavy. V této události je možné dodat změněné hodnoty klíčových slov (metodou SetKeyValue), načíst jiný soubor se vzorem nebo znovu načíst stávající soubor (změnou vlastnosti SourceFile). Pokud došlo ke změně hodnot klíčových slov a/nebo vzoru, pak je nutné do výstupního parametru pEvent.Modify zapsat hodnotu 1, která způsobí vlastní vytvoření aktualizované sestavy. Viz Příklad1.

2. Aktualizovat sestavu nezávisle na vlastním čtení výsledné sestavy:

V tomto režimu se aktualizace sestavy provádí z aplikace pomocí skriptovacích metod, nezávisle na tom, zda se sestava skutečně vyčítá nebo nevyčítá. Skriptem lze dodat změněné hodnoty klíčových slov (metodou SetKeyValue), načíst jiný soubor se vzorem nebo znovu načíst stávající soubor (změnou vlastnosti SourceFile). Pokud došlo ke změně hodnot klíčových slov a/nebo vzoru, potom je nutné provést vlastní vytvoření aktualizované sestavy pomocí metody MakeReport. Tímto způsobem může být aktualizace sestavy řízena z jiné části aplikace, například z PmTimer (vhodné například pro periodické zpracování sestav pro tisk). Viz Příklad2.

 
Příklad1:
Příklad na aktualizaci sestavy při vlastním čtení (podle 1. způsobu použítí). Skript je umístěn v události onReportRequest. Hodnota klíčového slova color bude v zobrazení zdrojového souboru nahrazeno výrazem #ff0000.
pMe.SetKeyValue "color", "#ff0000"
Příklad2:
Příklad na aktualizaci sestavy nezávisle na čtení (podle 2. způsobu použití). Skript může být kdekoliv mimo událost onReportRequest. Hodnota klíčového slova color bude v zdrojovém souboru nahrazena RGB barvou #ff0000.
Dim oReport, oWorkspace, sReport
Set oReport = pMe.Pm("/Report") 'Cesta k objektu PmReport
oReport.SetKeyValue "color", "#ff0000"
oReport.MakeReport
Dále bude obsah objektu PmReport zobrazen v okně pracovní plochy (v objektu PmWorkspace):
Set oWorkspace = pMe.Pm("/Workspace") 'Cesta k objektu PmWorkspace
oWorkspace.OpenView "/Report", "target:main;"
Dále bude obsah objektu PmReport odeslán na tisk:
sReport = oReport.SaveToString("")
Pm.PrintHtmlPage(sReport, "sourcetype:htmlstring;printer:select;")
Příklad3:
 
V objektu existuje načtený a předzpracovaný vzor sestavy, dále sada klíčových slov s hodnotami parametrizující transformaci (jedná se o páry klíč a hodnota) a dále pak poslední výsledná sestava v cache objektu. Pomocí klíčových slov lze do sestavy dostat i velké množství aktuálních hodnot z aplikace. Lze předávat jednotlivé hodnoty jakéhokoliv datového typu (Variant), ale i celá jednorozměrná a dvojrozměrná pole. Použití klíčových slov při transformaci vzoru sestavy na výslednou sestavu - viz Popis zdrojového souboru objektu PmReport.
 
K podobnému účelu jako objekt PmReport slouží objekt PmWebDir. Je však mnohem jednodušší a méně obecnější. Slouží pouze k nabízení statických HTML stránek s jednoduchou možností záměny klíčových slov.
 
Srovnání objektu PmReport s objektem PmPanel:
Výhody objektu PmReport:
- snadná tvorba vícestránkových sestav určených pro tisk.
- snadné vytvoření sestav s velkým počtem údajů.
- texty se přizpůsobují šířce stránky (pokud je to HTML sestava).
Nevýhody objektu PmReport:
- při tvorbě je potřebná základní znalost HTML
- při tvorbě je potřebná znalost příkazů popsaných v Popis zdrojového souboru objektu PmReport.
- není vhodné pro zobrazování s častým obnovováním dat.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice