See: the PmaReport
The object serves for creating reports from HTML, XML or TXT template files (these templates must be formated as described in Source file description of the PmaReport object
). The reports created by the PmaReport
object can be used, for example, for following purposes:
- for displaying in
the PROMOTIC application window or in the Web client. For some specific purposes it is more useful to use PmaReport
than the PmaPanel
It is mainly connected with situations, when large amounts of data is to be displayed as tables, that are not being updated very often. The PmaReport object window can be opened exactly the same way as PmaPanel window, i.e. by the Pm.CreateView method (see Example2).
- to save it to disk
in the form of HTML (XML,TXT) files by the SaveToFile
object will, by means of expressions and keywords, process a text transformation over the source template (HTML, XML, TXT page) resulting in creation of output report. The transformation is processed by filling in the values, proporties and tag styles (using the keywords) with the possibility of unfolding or hiding a portion of the report template. The output report can be displayed, printed or returned in text variable.
Regarding updating the new values, there are two basic ways of using the PmaReport
1st Updating the report while the final output report is being read:
For this purpose, the onReportRequest event can be used, initialized at the beginning of report content reading. In this event, it is possible to provide the changed values of keywords (by the SetKeyValue method), to read another source file, or re-read the current file (by changing the SourceFile property). If the keyword values and/or the template has been changed, then it is necessary to enter 1 into the pEvent.Modify output parameter, that will result in creation of new updated report. See Example1.
2nd Update the report independently on output report reading:
In this mode, the update is processed from the application by means of the scripting methods, independently, not related to report reading. The script can be used to provide modified keyword values (by the SetKeyValue method), read another template file, or re-read the current file (by changing the SourceFile property). If the keyword values and/or the template has been changed, then it is necessary to create the current updated report by the MakeReport method. This allows to controll the report updates from another part of the application, for example from PmaTimer (handy for example for regular print report updates). See Example2.
The example of report update with own reading (according to the no. 1). The script is located in the onReportRequest
event. The color
keyword value will be replaced by expression #ff0000
in the source file.
pEvent.Modify = 1;
The example of updating the report independently on reading (manual way no. 2). The script can be located anywhere outside
event. The color
keyword value will be replaced by RGB color #ff0000
var oReport, oWorkspace, sReport;
oReport = pMe.Pm("/Report"); //Path to the PmaReport object
//Furthermore the content of the PmaReport object will be displayed in the workspace window (in the PmaWorkspace object):
oWorkspace = pMe.Pm("/Workspace"); //Path to the PmaWorkspace object
Pm.CreateView(oWorkspace, "/Report", "", "target:main;").Open();
//Furthermore the content of the PmaReport object will be sent to printer:
sReport = oReport.SaveToString("");
In the object, there is a loaded, pre-processed report template, followed by the keyword set with values parametrizing the transformation (these are key
pairs) supplemented by the last output report in the object's cache
. By means of the keywords, it is possible to put a large amount of updated values into the report. It is possible to transfer the values of any data type (Variant
), but also the complete one and two dimensional arrays. For using the keywords for transforming the template into the output report - see Source file description of the PmaReport object
For similar purpose as the PmaReport
object the PmaWebDir object
can be used. It is much more simple and less general. It is used only for offering static HTML pages with the possibility of simple keyword replacement.
Comparison of the PmaReport
object with the PmaPanel
The Advantages of the PmaReport object:
- easy creation of multiple page reports for printing.
- easy creation of reports containing large ammounts of data.
- the texts are adopted to the width of the page (if HTML report).
Disadvantages of the PmaReport object:
- when creating the report, basic HTML skills are necessary
- it is not suitable for displaying data with high refresh rate.