abstract class %ZEN.Report.reportPage
extends %RegisteredObject, %CSP.Page, %ZEN.DataModel.Adaptor
Represents a Report within a ZEN application.
This is the base class used for all user reports.
Note that a report is not a ZEN page; all logic
for a report is executed on the server. The client is sent
the final output for viewing and printing.
This is a Zen Report class.
parameter APPLICATION;
This is the class name of this application this report belongs to.
If not defined, this report does not belong to an application.
The application can be the source of ZEN Report parameters.
If APPLICATION is not defined or if parameter is null in APPLICATION class %ZEN.Report.defaultApplication is the source of ZEN Report parameters.
parameter REPORTNAME;
This is the logical name of this report.
If not provided, class name is used.
property %ArrayLogFiles
[ MultiDimensional ];
Place to hold temporary logfiles
property %SplitReturnedPDFs
as %ZEN.Datatype.string [ MultiDimensional ];
This property hold returned PDFs
property %display
as %ZEN.Report.Display.report;
backpointer to display object that belongs to this report
property CheckPDFNotZeroLength
as %ZEN.Datatype.boolean;
property CountRepeatingElement
as %ZEN.Datatype.integer;
property Datasource
as %String(ZENHIDDEN=1);
See the DATASOURCE parameter for details.
property DefaultFontFaceCopyHTML
as %ZEN.Datatype.string(ZENURL="$DEFAULTFONTFACECOPYHTML");
Used on item when copyhtml="true" to specify a default font face
property DefaultFontSizeCopyHTML
as %ZEN.Datatype.string(ZENURL="$DEFAULTFONTSIZECOPYHTML");
Used on item when copyhtml="true" to specify a default font size
property MainReport
as %String;
property RenderTimeOut
as %ZEN.Datatype.integer(ZENURL="$RENDERTIMEOUT");
-1 for RenderTimeOut means never timeout.
The units are seconds.
property RepeatingElement
as %ZEN.Datatype.string;
property ReportDir
as %String;
property ReportXMLNameSpace
as %ZEN.Datatype.string(ZENHIDDEN=1);
property ReportXMLNameSpacePrefix
as %ZEN.Datatype.string(ZENHIDDEN=1);
property SetProcessWideRunTimeMode
as %ZEN.Datatype.boolean(ZENURL="$SETPROCESSWIDERUNTIMEMODE");
Process wide runtime mode
Set on a sql statement from the runtime mode passed into the ZEN Report if this is 1
property SplitAndMerge
as %ZEN.Datatype.boolean;
property SplitDir
as %ZEN.Datatype.string;
This is directory where PDF files produced by split will go
property SplitOnly
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
If SPLITANDMERGE set, split only, don't merge at end
property SplitRootName
as %ZEN.Datatype.string;
Instead of generating temporary names for split PDF files, use this as a root name, and add an integer suffix to file
property StripPI
as %String;
property SubReport
as %String;
This property is used on toxslfo and tohtml to indicate they are being fetched as sub-reports
property SuppressExcelHeaders
as %ZEN.Datatype.boolean(ZENHIDDEN=1);
property TableAltColor
as %ZEN.Datatype.string;
property TimeOut
as %ZEN.Datatype.integer;
property TooLongText
as %ZEN.Datatype.string;
property UseRawIOForXML
as %Boolean [ InitialExpression = 0 ];
UseRawIOForXML - set to 1 to use RawIO in XML output, otherwise use translation tables
property XsltVersion
as %ZEN.Datatype.string(ZENHIDDEN=1);
property isHTML5
as %Boolean [ InitialExpression = 0 ];
property isServer
as %Boolean [ InitialExpression = 0 ];
property toexcelstream
as %Library.RegisteredObject;
property tohtmlstream
as %Library.RegisteredObject(ZENHIDDEN=1);
property toxslfostream
as %Library.RegisteredObject(ZENHIDDEN=1);
property xmlfile
as %String;
xmlfile generated by ZEN Report
property xmlstream
as %Library.RegisteredObject(ZENHIDDEN=1);
final classmethod %GetComponentById(id As %String)
as %ZEN.Component.object
Server-only method for finding a ZEN Report Display node within this
report display given its id.
method %OnAfterReport()
as %Status
This callback is invoked after this report is run
and before it is closed.
method %OnBeforeReport()
as %Status
This callback is invoked after this report is instantiated
and before it is run.
classmethod %OnPreHTTP()
as %Boolean
method %OnReportTag()
Notification that we are writing out the attributes for the opening tag.
method %OnSubmit(pSubmit As %ZEN.Submit)
as %Status
If defined, this callback is called when a form connected to this
DataModel is submitted.
The contents of this DataModel will be filled in from the submitted values
before this callback is invoked.
The default implementation is to store the submitted values back to the model.
method AsynchGenerateReport(renderServer As %String = "", ByRef xmlfile As %String, ByRef xsltfile As %String, ByRef pdffile As %String, ByRef lockfile As %String)
as %Status
Queue the report for rendering to the Queuing Hot JVM server
input is the port on which the Queuing Hot JVM Server is listening
returns by reference xmlfile, xsltfile, pdffile, and lockfile which are names of files either queued or created by queuer
Arguments:
renderServer
- xmlfile - returned by reference
- xsltfile - returned by reference
- pdffile - returned by reference
- lockfile - returned by reference
when the lockfile exists theQueuing Hot JVM Server has created the pdf file
method GenerateReport(outputfile As %String, mode As %Integer = 0, log As %Boolean = 0, renderServer As %String = "", ExcelMode As %String = "")
as %Status
Generate the report and save it to outputfile.
Choices for mode are:
- 0 = XML
- 1 = HTML
- 2 = PDF
- 3 = ToHTML Stylesheet
- 4 = ToXSLFO Stylesheet
- 5 = XSD Schema
- 6 = PrintPS
- 7 = Excel
- 8 = XSLFO
- 9 = ToEXCEL
- 10=xlsx
If log is true, the log file is returned instead of the report
method GenerateReportToStream(ByRef stream As %Stream.Object, mode As %Integer = 0, log As %Boolean = 0)
as %Status
Generate the report and save it to stream.
Choices for mode are:
- 0 = XML
- 1 = HTML
- 2 = PDF
- 3 = ToHTML Stylesheet
- 4 = ToXSLFO Stylesheet
- 5 = XSD Schema
- 6 = PrintPS
- 7 = Excel
- 8 = XSLFO
- 9 = ToEXCEL
- 10 = xlsx
If log is true, the log file is returned instead of the report
method GenerateStream(ByRef stream As %Stream.Object, mode As %Integer = 0, log As %Boolean = 0)
as %Status
Generate the report and save it to stream.
Choices for mode are:
- 0 = XML
- 1 = HTML
- 2 = PDF
- 3 = ToHTML Stylesheet
- 4 = ToXSLFO Stylesheet
- 5 = XSD Schema
- 6 = PrintPS
- 7 = Excel
- 8 = XSLFO
- 9 = ToEXCEL
- 10 = xlsx
If log is true, the log file is returned instead of the report
classmethod GenerateToFile(outputfile As %String, mode As %Integer = 0, log As %Boolean = 0)
as %Status
Generate the report and save it to outputfile.
Choices for mode are:
- 0 = XML
- 1 = HTML
- 2 = PDF
- 3 = ToHTML Stylesheet
- 4 = ToXSLFO Stylesheet
- 5 = XSD Schema
- 6 = PrintPS
- 7 = Excel
- 8 = XSLFO
- 9 = ToEXCEL
- 10=xlsx
If log is true, the log file is returned instead of the report
This is a class method wrapper for the GenerateReport method
provided for convenience.
classmethod OnAfterCreateDisplay()
classmethod OnPage()
as %Status
Render the contents of this ZEN report.
classmethod OnPreHTTP()
as %Boolean
PreHTTP handler.
Sets content-type and content-dispositon depending
on $MODE and $LOG
classmethod TestPDFGeneration()
as %Status