The Investigation Software Company

Report Generation

Xanalys’s report generation technology is a software component that permits the creation of customizable reports. It relies upon being able to retrieve data records (and images) from an external system whose content is then used to build up sections in the report. The technology consists of a number of components:

  • a report construction plan is an XML specification of overall arrangement of the required report. The plan does not contain any data itself but simply defines the structure of the report together with information required to retrieve the data. A new report construction plan will be generated for every report that needs to be produced.
  • the report engine (built using Microsoft .NET 4.0). Given a report construction plan, it executes the plan by transforming the input records into the final output representation of the report. It supports a wide range of different report structures that can be specified in the construction plan:
    • title page(s)
    • chapters/sections
    • blank pages so that content can be inserted after the report is printed
    • any number of summary sections (e.g. a table of contents)
    • a internal list of chapters/sections that can have a summary section
  • a set of presentation templates. These are XSLT templates that define how to transform the data into parts of a report. The target structure is a .NET flow document which is designed to optimize viewing and readability (click here for more information).
  • a report builder is the component is used to initiate the generation of the report, provide on demand access to whatever data the report engine requires and deal with the final disposition of the report.

The current fixed output format of a report is Microsoft XML Paper Specification (XPS) which has a number of advantages over commonly used formats such as Adobe PDF. XPS is an open format and just like PDF, an XPS document is displayed identically on every computer and will represent the “printed page”.

This modular design of the report generation technology has a number of advantages:

  • For every deployment of the report component, only the report builder and report templates need to be defined (i.e. how to retrieve the data and how to present the data). They must adhere to a well defined interface/structure. The report engine is totally independent of what the data is and what the final report will look like.
  • The technology allows for flexible architecture. For example, report generation can be done as a service.
  • Using Microsoft flow documents as an intermediate language to represent the report means that the technology takes advantage of a number of WPF features such as the ability to change the layout according to user preferences. In fact, the document can be globally and locally (i.e. different headings and sections within the report) styled with respect to:
    • fonts and font size
    • foreground and background colours
    • text effects
  • the XPS language is XML based open standard meaning that developers are free to produce software that can manipulate the pages of an XPS file without going to the expense of buying proprietary tools.

Xanalys’ report generation technology is currently used to enhance the functionality of our award winning PowerCase software. It is deployed by PowerCase as a service to produce professional looking reports with data taken from the case management system.