Promotic

PmaReport - Szczegółowy opis obiektu

Patrz: obiekt PmaReport.

Obiekt służy do wytwarzania raportów na podstawie szablonów HTML, XML lub TXT (szablony takie muszą formę według opisu w Opis źródłowego pliku obiektu PmaReport). Raporty wytworzone przez obiekt PmaReport następnie można zastosować na przykład do następujących celów:
- wyświetlanie w oknie aplikacji PROMOTIC lub Web klienta. W niektórych przypadkach jest dogodniejsze do wyświetlenia zastosować PmaReport niż obiekt PmaPanel.
Chodzi zwłaszcza o przypadki, kiedy jest konieczne wyświetlać dużą ilość danych w formie tabelim których zawartość nie zmienia się zbyt często. Okno obiektu PmaReport można otworzyć zupełnie tak samo jak okno obiektu PmaPanel, tzn. przy pomocy metody Pm.CreateView (patrz Przykład2).
- wydruk na drukarku, tzn. można wytwarzać na przykład kilkustronicowe raporty. Można to wykonać w prosty sposób przy pomocy metody PmaReport.SaveToString oraz Pm.PrintHtmlPage (patrz Przykład2).
- zapis na dysk w formie pliku HTML (XML,TXT) przy pomocy metody SaveToFile.


Obiekt PmaReport przy pomocy wyrażeń i słów kluczowych wykona nad szablonem raportu (plik HTML, XML, TXT) transformację tekstową na kształt raportu wynikowego. Transformacja zostaniw wykonana przez napełnienie wartości, właściwości i stylów tagów (przy pomocy słów kluczowych) z możliwością rozwinięcia lub odwrotnie schowania częścis szablonu raportu. Końcowy raport może zostać wyświetlony, wydrukowany lub zwrócony w zmiennej łańcuchowej.

Z punktu widzenia aktualizacji nowymi danymi istnieję dwa podstawowe sposoby zastosowania obiektu PmaReport:
1. Aktualizacja raportu dopiero przy samym odczycie raportu końcowego:
Do tego celu można zastosować zdarzenie onReportRequest, które zostanie wywołane zawsze na początku odczytu raportu. W tym zdarzeniu można dostarczyć zmienne wartości słów kluczowych (przy pomocy metody SetKeyValue), wczytanie innego szablonu lub ponowne wczytanie bieżącego pliku (poprzez zmianę właściwości SourceFile). Jeżeli doszło do zmiany wartości słów kluczowych oraz/lub szablonu, wtedy jest konieczne do parametra wyjściowego pEvent.Modify zapisanie wartości 1, która spowoduje właściwe wytworzenie zaktualizowanego raportu. Patrz Przykład1.
2. Niezależna aktualizacja raportu niezależnie od samego odczytu raportu końcowego:
W tym trybie aktualizacja raportu jest wykonana z aplikacji przy pomocy metod skryptowych, bez względu na to, czy dany raport jest rzeczywiście odczytywany czy nie. Przy pomocy skryptu można dostarczyć zmienione wartości słów kluczowych (przy pomocy metody SetKeyValue), wczytać inny szablon lub ponownie wczytać bieżący plik (przez zmianę właściwości SourceFile). Jeżeli doszło do zmiany wartości słów kluczowych oraz/lub szablonu, wtedy jest konieczne wykonanie własnego wytworzenia zaktualizowanego raportu przy pomocy metody MakeReport. W ten sposób wytwarzanie raportu może być sterowane z innej części aplikacji, na przykład z PmaTimer (zalecane na przykład do cyklicznego odczytu raportów do druku). Patrz Przykład2.


Przykład1:
Przykład aktualizacji raportu przy odczycie własnym (według 1. sposobu zastosowania). Skrypt jest ulokowany w zdarzeniu onReportRequest. Wartość słowa kluczowego color zostanie w wyświetleniu pliku źródłowego zastąpiona wyrażeniem #ff0000.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

pMe.SetKeyValue("color", "#ff0000");
pEvent.Modify = 1;
Przykład2:
Przykład aktualizacji raportu niezależnie od odczytu (według 2. sposobu zastosowania). Skrypt może znajdować się gdziekolwiek poza zdarzenie onReportRequest. Wartość słowa kluczowego color zostanie w szablonie zastąpiona kolorem RGB #ff0000.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oReport, oWorkspace, sReport;
oReport = pMe.Pm("/Report");   // Ścieżka do obiektu PmaReport
oReport.SetKeyValue("color", "#ff0000");
oReport.MakeReport();

// Następnie zawartość obiektu PmaReport zostanie wyświetlona w oknie obszaru roboczego (w obiekcie PmaWorkspace):
oWorkspace = pMe.Pm("/Workspace");   // Ścieżka do obiektu PmaWorkspace
var oCreator = Pm.CreateView(oWorkspace, "/Report", "", "target:main;");
oCreator.Open();

// Następnie zawartość obiektu PmaReport zostanie odesłana do wydruku:
sReport = oReport.SaveToString("");
Pm.PrintHtmlPage(sReport, "sourcetype:htmlstring;printer:select;");
Przykład3:


Obiekt zawiera wczytany oraz częściowo opracowany wzór raportu, następnie zestaw słów kluczowych wraz z wartościami parametryzującymi transformację (chodzi o klucz oraz wartość) oraz ostatni raport końcowy w obiekcie cache. Przy pomocy słów kluczowych można do raportu dodać również duża ilość wartości z aplikacji. Można przekazywać pojedyńcze wartości dowolnego typu danych (Variant), jak również tablica 1-wymiarowa oraz tablica 2-wymiarowa. Zastosowanie słów kluczowych w celu transforowania wzoru raportu do raportu końcowego - patrz Opis źródłowego pliku obiektu PmaReport.

W podobnym celu jak obiekt PmaReport służy obiekt PmaWebDir. Jest on wszak bardziej prostrzy oraz mniej ogólny. Służy tylko dla oferowania statycznych stron HTML z prostą mozliwością zmiany słów kluczowych.

Porównanie obiektu PmaReport z obiektem PmaPanel:
Zalety obiektu PmaReport:
- łatwe wytwarzanie kilkustronicowych raportów przeznaczonych do druku.
- łatwe wytwarzanie raportów o dużej ilości danych.
- teksty dostosowywują się do szerokości strony (jeżeli chodzi o raport HTML).
Mankamenty obiektu PmaReport:
- przy wytwarzaniu jest konieczna podstawowa znajomość HTML
- przy wytwarzaniu jest konieczna znajomość poleceń opisanych w Opis źródłowego pliku obiektu PmaReport.
- nie jest odpowiednie do wyświetlenia z częstym odświeżaniem danych.
© MICROSYS, spol. s r.o.