Indigo DRS Data Reporting System Indigo DRS
Report Sub Reporting Indigo DRS Help

Sub Reporting makes it possible for a Report to contain other Reports in subsections of the main Report. These Reports are called Sub Reports and allow content to be modularised and shared between Reports and even other Sub Reports.

Sub Reports can be used if Report content is duplicated, reusable or common to other Reports. Sub Reporting improves Report performance, maintenance, development and deployment.

To add or edit a Sub Report click on the Report Designer tree-view and select a Report Section or Report Group and then click the menu Edit | New, Insert or Edit Sub Report.

Browse and select a Sub Report File or specify a URI.

The Build Option property controls the output of the Report by including the content in HTML and / or PDF builds.

Report Data Contexts

Sub Reports can be defined with Report Data Contexts which are used to drive and build Reporting output content and also allows the consolidation and integration of data from multiple different sources and types such as API's, websites and data files to be read and used in the Report.

Data Contexts can be applied to specific Report elements allowing data in XML documents to be contextually enumerated. The default Data Context is the Report Data Source (XDM) root node and if no Data Context is specified then the current Report Data Source will be used.

To apply a Data Context to a Report element expand the Data Context property or click the (...) property button and specify the Content Type as either a Literal (Constant) or a File.

Data Contexts can be either a series of XQuery or Python statements as applied to the current Data Context or XML, CSV, JSon, XLSX, HTML, MS SQL, MDB, ODBC and OLEDB Data Sources.

XQuery and Python statements are evaluated in the current Report Data Context. Context Types that are XML, JSon, CSV, XLSX or HTML are read from the File URI or database.

Sub Report Data XSLT

Sub Reporting also features Extensible Stylesheet Language Transformations (XSLT) which is a language for transforming XML documents into other XML documents or other formats such as HTML for web pages or plain text.

To specify an XSLT to transform the Sub Report Data Context click the XSLT (...) property button.

Data Inheritance

Report Sub Reports can Inherit or Not Inherit Data from the main parent Report by using the Data Inheritance option.

File URI's

Report File URI's are expressed as Uniform Resource Identifiers (URI) and can be either a Literal or a Query to specify the location of the File Resource. Literal values are constants that are determined by the URI File property.

Query based URI's are determined by the result of the URI Query which can be a series of XQuery or Python statements to specify the location of the File URI.

Report Caching

Report elements can cached to improve the speed and performance of Report builds. Caching stores a copy in memory of frequently used content instead of reading the file directly from disk.

Report Rules

Report Rules are conditional XQuery or Python expressions that determine if Report content is enabled and applied to the build. Rule based queries return a Boolean that is either True or False and can query the Report Data Source and other Report Data Contexts. Rules are used for controlling the flow, visibility and activation of reporting content.

Report Rules if empty or null by default will always return True.

Report Namespaces

Report Namespaces are used for providing uniquely named elements and attributes and is a mechanism to avoid name conflicts by differentiating elements or attributes within an XML document that may have identical names, but different definitions. If the Report Data Source contains namespaces they can be applied to the XQuery Processor.