Viz: objekt
PmaReport.
Objekt slouží k vytváření reportů z HTML, XML nebo TXT vzorových souborů (tyto vzory musí mít tvar popsaný v
Popis zdrojového souboru objektu PmaReport). Reporty vytvořené objektem
PmaReport pak lze použít například k následujícím účelům:
-
zobrazovat v okně aplikace PROMOTIC nebo na Web klientovi. Pro některé účely pro zobrazení je lepší použít
PmaReport než objekt
PmaPanel.
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
PmaReport lze otevřít úplně stejně jako okno objektu
PmaPanel, tzn. metodou
Pm.CreateView (viz
Příklad2).
-
uložit na disk v podobě HTML (XML,TXT) souboru metodou
SaveToFile.
Objekt
PmaReport pomocí výrazů a klíčových slov provede nad zdrojovým vzorem reportu (HTML, XML, TXT stránka) textovou transformaci do podoby výsledného reportu. Transformace se provede naplněním hodnot, vlastností a stylů tagů (pomocí klíčových slov) s možností rozvinutí nebo naopak skrytí části vzoru reportu. Výsledný report může být zobrazen, vytisknut nebo vrácen v textové proměnné.
Z hlediska aktualizace novými hodnotami existují dva základní způsoby použití objektu
PmaReport:
1. Aktualizovat reportu až při vlastním čtení výsledného reportu:
K tomuto účelu lze použít událost
onReportRequest, která je vyvolána vždy na začátku čtení obsahu reportu. V této události 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, pak je nutno zapsat do výstupního parametru
pEvent.Modify hodnotu
1, která způsobí vlastní vytvoření aktualizovaného reportu. Viz
Příklad1.
2. Aktualizovat report nezávisle na vlastním čtení výsledného reportu:
V tomto režimu se aktualizace reportu provádí z aplikace pomocí skriptovacích metod, bez ohledu na to, zda se report 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, pak je nutno vytvořit aktualizovaný report metodou
MakeReport. Tímto způsobem může být aktualizace reportu řízena z jiné části aplikace, například z
PmaTimer (vhodné například pro periodické zpracování reportů pro tisk). Viz
Příklad2.
Příklad1:
Příklad na aktualizaci reportu při vlastním čtení (podle 1. způsobu použití). 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.
JavaScriptVBScriptVyber a zkopíruj do schránky
pMe.SetKeyValue("color", "#ff0000");
pEvent.Modify = 1;
pMe.SetKeyValue "color", "#ff0000"
pEvent.Modify = 1
Příklad2:
Příklad na aktualizaci reportu 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.
JavaScriptVBScriptVyber a zkopíruj do schránky
var oReport, oWorkspace, sReport;
oReport = pMe.Pm("/Report");
// Cesta k objektu PmaReport
oReport.SetKeyValue("color", "#ff0000");
oReport.MakeReport();
// Dále bude obsah objektu PmaReport zobrazen v okně pracovní plochy (v objektu PmaWorkspace):
oWorkspace = pMe.Pm("/Workspace");
// Cesta k objektu PmaWorkspace
var oCreator = Pm.CreateView(oWorkspace, "/Report", "", "target:main;");
oCreator.Open();
// Dále bude obsah objektu PmaReport odeslán na tisk:
sReport = oReport.SaveToString("");
Pm.PrintHtmlPage(sReport, "sourcetype:htmlstring;printer:select;");
Dim oReport, oWorkspace, sReport
Set oReport = pMe.Pm("/Report")
' Cesta k objektu PmaReport
oReport.SetKeyValue "color", "#ff0000"
oReport.MakeReport
' Dále bude obsah objektu PmaReport zobrazen v okně pracovní plochy (v objektu PmaWorkspace):
Set oWorkspace = pMe.Pm("/Workspace")
' Cesta k objektu PmaWorkspace
Dim oCreator
Set oCreator = Pm.CreateView(oWorkspace, "/Report", "", "target:main;")
oCreator.Open
' Dále bude obsah objektu PmaReport odeslán na tisk:
sReport = oReport.SaveToString("")
Pm.PrintHtmlPage sReport, "sourcetype:htmlstring;printer:select;"
V objektu existuje načtený a předzpracovaný vzor reportu, 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ý report v
cache objektu. Pomocí klíčových slov lze do reportu 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 1-rozměrné pole a 2-rozměrné pole. Použití klíčových slov při transformaci vzoru reportu do výsledného reportu - viz
Popis zdrojového souboru objektu PmaReport.
K podobnému účelu jako objekt
PmaReport slouží
objekt PmaWebDir. Je však mnohem jednodušší a méně obecnější. Slouží pouze pro nabízení statických HTML stránek s jednoduchou možností záměny klíčových slov.
Srovnání objektu
PmaReport s objektem
PmaPanel:
Výhody objektu PmaReport:
- snadná tvorba vícestránkových reportů určených pro tisk.
- snadné vytvoření reportů s velkým počtem údajů.
- texty se přizpůsobují šířce stránky (pokud je to HTML report).
Nevýhody objektu PmaReport:
- při tvorbě je potřebná základní znalost HTML
- není vhodné pro zobrazení s častým obnovováním dat.