Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmaReport - Podrobný popis objektu

Viz: objekt PmaReport.
 
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 PmaReport). Sestavy 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 je lepší pro zobrazení 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).

- tisknout na tiskárnu, tzn. vytvářet například několikastránkové tiskové sestavy. Lze to jednoduše provést metodou PmaReport.SaveToString a Pm.PrintHtmlPage (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 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 PmaReport:
1. Aktualizovat sestavu až při vlastním čtení výsledné sestavy:

K tomuto účelu lze použít událost 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 nutno zapsat do výstupního parametru pEvent.Modify 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, pak je nutno provést vlastní vytvoření aktualizované sestavy metodou MakeReport. Tímto způsobem může být aktualizace sestavy řízena z jiné části aplikace, například z PmaTimer (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ž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;
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.
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
Pm.CreateView(oWorkspace, "/Report", "", "target:main;").Open();

//Dále bude obsah objektu PmaReport 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 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 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 PmaReport:
- 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 PmaReport.
- není vhodné pro zobrazení s častým obnovováním dat.

Historie:
Pm7.04.00: Vytvořeno
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice