Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmReport - Szczegółowy opis obiektu

Patrz: Obiekt PmReport
 
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 PmReport). Raporty wytworzone przez obiekt PmReport można następnie stosować 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ć PmReport niż obiekt PmPanel. 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 PmReport można otworzyć zupełnie tak samo jak okno obiektu PmPanel, tzn. przy pomocy metody OpenView (patrz również Otwarcie przeglądarki obiektu, patrz przykład Przykład2).
- wydruk na na drukarce, tzn. można wytwarzać na przykład kilkustronicowe raporty. Można to wykonać w prosty sposób przy pomocy metody PmReport.SaveToString i Pm.PrintHtmlPage (patrz przykład Przykład2).
- zapis na dysk w postaci pliku HTML (XML,TXT) przy pomocy metody SaveToFile.
 
Obiekt PmReport 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 objektu PmReport:
1. Aktualizacja raportu dopiero przy samym odczycie raportu końcowego:

Do tego celu jest stosowane zdarzenie onReportRequest, które zostanie wywołane zawsze na początku odczytu raportu. W opisywanym 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 i/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, niezależnie od tego, 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 i/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 PmTimer (zalecane na przykład do cyklicznego odczytu raportół do druku). Patrz Przykład2.

 
Przykład1:
Przykład aktualizacji raportu przy odczycie własnym (wg 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.
pMe.SetKeyValue "color", "#ff0000"
Przykład2:
Przykład aktualizacji raportu niezależnie od odczytu (wg. 2. sposobu zastosowania). Skrypt może znajdować się gdziekolwiek poza zdarzeniem onReportRequest. Wartość słówa kluczowego color zostanie w szablonie zastąpiona kolorem RGB #ff0000.
Dim oReport, oWorkspace, sReport
Set oReport = pMe.Pm("/Report") 'Ścieżka do obiektu PmReport
oReport.SetKeyValue "color", "#ff0000"
oReport.MakeReport
Następnie zawartość obiektu PmReport zostanie wyświetlona w oknie obszaru roboczego (w obiekcie PmWorkspace):
Set oWorkspace = pMe.Pm("/Workspace") 'Ścieżka do obiektu PmWorkspace
oWorkspace.OpenView "/Report", "target:main;"
Następnie zawartość obiektu PmReport 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 i wartość) oraz ostatni raport końcowy w obiekcie cache. Za pomocą słów kluczowych można do zestawienia dodać również duża ilość wartości z aplikacji. Można przekazywać pojedyńcze wartości dowolnego typu danych (Variant), jak również całe jedowymiarowe lub dwuwymiarowe tablice. Zastosowanie słów kluczowych w celu transforowania wzoru raportu do raportu końcowego - patrz Opis źródłowego pliku obiektu PmReport.
 
W podobnym celu jak obiekt PmReport służy obiekt PmWebDir. Jest on wszak bardziej prostrzy oraz mniej ogólny. Służy tylko do oferowania statycznych stron HTML z prostą mozliwością zmiany słów kluczowych.
 
Porównanie obiektu PmReport z obiektem PmPanel:
Zalety obiektu PmReport:
- łatwe wytwarzanie kilkustronicowych raportów przeznaczonych do wydruku.
- ł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 PmReport:
- przy wytwarzaniu jest konieczna podstawowa znajomość HTML
- przy wytwarzaniu jest konieczna znajomość poleceń opisanych w Opis źródłowego pliku obiektu PmReport.
- nie jest odpowiednie do wyświetlania z częstym odświeżaniem danych.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice