GRW overview

With Genero Report Writer, you create a report application that serves as a data model. The data is retrieved from a data source (typically a database) and streamed to a layouter, which lays out the data according to the specifications of a report design document.

The data may come from a database, a data file, an XML file, or a Web service. The separation of data from layout enhances security, facilitates reuse, and protects the report from changes to the data storage.

Genero Report Writer separates the data source from the report design. Both data and design are used to produce the report output.

Data source

The data source (a.k.a. the data model) is defined by the report application, which is created using Java, C#, PHP, and Swift. There are two ways to create the report application: generate the application or write the application by hand.

If you are retrieving the data from a database, you can use the Business Application Modeler (BAM) to generate the SQL data source. The BAM provides easy-to-use wizards that generate the source to use as a library for inclusion in your applications or, if needed, as a stand-alone reporting application. The BAM is part of Genero Studio.

If you are not using SQL to retrieve data from a database, or if you simply choose not to have your data model generated, you manually write your application source using APIs provided by Genero Report Writer. You can write and compile your report library within Genero Studio, then integrate the library into your application code - an application created using a different IDE. Alternatively, you can use the IDE you commonly use for application development (such as Eclipse) to manually write your report application or library.
Tip: Instructions for writing an application by hand are provided using Genero Studio as the IDE. It is expected that you will be able to extrapolate any necessary configuration or environment needs for use with your selected IDE. For example, if you are manually writing a Java report application and you wish to use Eclipse, you would integrate gre.jar into Eclipse.

Report design

The Genero Report Designer (GRD) is the tool used to create a report design document. It sets the layout of the data. Genero Report Designer is included in Genero Report Writer; it can also be installed as a stand-alone application.

Genero Studio includes a number of inbuilt report templates, which you can use to create your own reports and modify as required. If you are writing multiple reports that use the same design, a report template makes this process easier and ensures consistency.

To use the Genero Report Designer, the only input needed is a data schema. The data schema displays the data as objects, organized in a tree view, for inclusion on the report. The data schema also tells how the data is grouped and sorted, allowing the report designer to add report summaries (such as subtotals) and breaks. The data schema is extracted from the report application source, and the tool used to extract the data schema depends on the language of the report application source.

Report output

A Genero report is based on XML standards (XML reports, XML data, SVG output). Since the data is in XML format, you can have multiple views of the same data. The report can be output to various formats, or directly to a printer or other output devices.

You can use Genero Report Writer to create reports for a variety of purposes. For example, you can produce:

  • Lists
  • Reports with a customized format, such as invoices, corporate documents, or accounting reports
  • Reports that include images
  • Reports on pre-printed forms
  • Labels
  • Business Graphs (such as MapCharts, Category Charts, and XY Charts)
  • XML documents
  • HTML documents
  • Excel™ spreadsheets
  • Documents in Microsoft™ RTF format

The rapid delivery of pages, with no need for temporary files or temporary tables, consumes less memory and speeds up the printing of very large reports.

The report design document sets the initial output options. You can override the output options using the Java, C#, PHP, or Swift program