DynamicReports Core 7.0.6 API

DynamicReports Core is an open-source Java reporting library based on JasperReports. It allows you to create dynamic report designs entirely in Java code, without requiring a visual report designer or pre-built templates. Reports can be displayed, printed, or exported to many popular formats such as PDF, Excel, Word, HTML, and others.

Getting Started

The main entry point is DynamicReports, a utility class that provides static factory methods and pre-built builder instances for all major report elements. A typical report is built using a fluent API:


import static ch.unibas.medizin.dynamicreports.report.builder.DynamicReports.*;

JasperReportBuilder report = report()
    .columns(
        col.column("Name", "name", type.stringType()),
        col.column("Quantity", "quantity", type.integerType()),
        col.column("Unit Price", "unitPrice", type.bigDecimalType()))
    .subtotalsAtSummary(
        sbt.sum("quantity", type.integerType()),
        sbt.sum("unitPrice", type.bigDecimalType()))
    .setDataSource(dataSource);

report.toPdf(new FileOutputStream("report.pdf"));

For practical, runnable examples covering all features of the library, see the companion dynamicreports-examples repository.

Core Classes

Report Building

  • DynamicReports – The primary entry point. Provides static factory fields and methods for constructing all report elements (columns, groups, subtotals, styles, charts, expressions, etc.).
  • JasperReportBuilder – The main report builder. Used to configure report bands (title, page header/footer, column header/footer, detail, summary), data sources, page layout, styles, and more. Supports direct export to PDF, Excel, Word, HTML, CSV, XML, and other formats.
  • JasperConcatenatedReportBuilder – Combines multiple JasperReportBuilder instances into a single output document.
  • ReportBuilder – Base class for all report builders, providing the fluent configuration API shared across report types.
  • ReportTemplateBuilder – Defines a reusable report template with common defaults (fonts, styles, column widths, page margins, etc.) that can be applied to multiple reports.

Columns

  • ColumnBuilders – Factory for all column builder types. Accessed via DynamicReports.col.
  • TextColumnBuilder – The most commonly used column type; binds a report field to a typed, formatted column.
  • ComponentColumnBuilder – A column whose cell content is a custom component (e.g. an image or a chart).

Groups

  • GroupBuilders – Factory for group builders. Accessed via DynamicReports.grp.
  • ColumnGroupBuilder – Groups report rows by the values of a given column, with optional group header and footer bands.

Subtotals

  • SubtotalBuilders – Factory for subtotal builders. Accessed via DynamicReports.sbt.
  • AggregationSubtotalBuilder – Produces aggregated values (sum, count, average, min, max, etc.) at group, page, or report summary level.

Styles

  • StyleBuilders – Factory for style builders. Accessed via DynamicReports.stl.
  • StyleBuilder – Defines a complete visual style: font, foreground/background color, borders, padding, alignment, and format pattern. Styles can inherit from a parent style.
  • FontBuilder – Specifies font name, size, bold, italic, and underline attributes.

Components

  • ComponentBuilders – Factory for report band components (text fields, images, lines, page breaks, subreports, etc.). Accessed via DynamicReports.cmp.

Expressions & Conditions

  • ExpressionBuilders – Factory for built-in expressions (field references, parameter references, today's date, page number, etc.). Accessed via DynamicReports.exp.
  • ConditionBuilders – Factory for condition expressions used in conditional styles. Accessed via DynamicReports.cnd.
  • VariableBuilder – Declares a report variable that accumulates or transforms data values during report generation (e.g. running totals).
  • FieldBuilder – Declares a typed data-source field used as input to columns, expressions, and variables.

Charts

  • ChartBuilders – Factory for chart builders (bar, line, pie, area, bubble, Gantt, etc.). Accessed via DynamicReports.cht.

Crosstabs

  • CrosstabBuilders – Factory for crosstab (pivot table) builders. Accessed via DynamicReports.ctab.

Data Types

  • DataTypeBuilders – Factory for typed data-type descriptors that control how values are formatted in columns and components. Accessed via DynamicReports.type.

Export

  • ExporterBuilders – Factory for exporter configuration builders (PDF, Excel, Word, HTML, CSV, XML, ODS, ODP, RTF, and image formats). Accessed via DynamicReports.export.

Package Overview

  • ch.unibas.medizin.dynamicreports.report.builder – Public builder API for declaring report structure and content.
  • ch.unibas.medizin.dynamicreports.jasper.builder – JasperReports-backed builders for compiling, running, and exporting reports.
  • ch.unibas.medizin.dynamicreports.report.definition – Core interfaces that define the report model consumed by the design and transformation layers.
  • ch.unibas.medizin.dynamicreports.design – Internal design-time representation of a report, produced by transforming the builder model.
  • ch.unibas.medizin.dynamicreports.jasper.transformation – Converts the design model into JasperReports objects ready for compilation.
  • ch.unibas.medizin.dynamicreports.report.constant – Enumerations for page orientation, calculation types, position, evaluation times, and more.

Further Resources

Packages
Package
Description