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 przy pomocy obiektu
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 tabelkowej 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).
-
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 (strona 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 wytworzyć zaktualizowany raport 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;
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;");
Dim oReport, oWorkspace, sReport
Set 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):
Set oWorkspace = pMe.Pm("/Workspace")
' Ścieżka do obiektu PmaWorkspace
Dim oCreator
Set 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;"
Obiekt zawiera wczytany oraz częściowo opracowany szablon 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ść bieżących 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 szablonu 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
- nie jest odpowiednie do wyświetlenia z częstym odświeżaniem danych.