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 multipleJasperReportBuilderinstances 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 viaDynamicReports.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 viaDynamicReports.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 viaDynamicReports.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 viaDynamicReports.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 viaDynamicReports.cmp.
Expressions & Conditions
-
ExpressionBuilders– Factory for built-in expressions (field references, parameter references, today's date, page number, etc.). Accessed viaDynamicReports.exp. -
ConditionBuilders– Factory for condition expressions used in conditional styles. Accessed viaDynamicReports.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 viaDynamicReports.cht.
Crosstabs
-
CrosstabBuilders– Factory for crosstab (pivot table) builders. Accessed viaDynamicReports.ctab.
Data Types
-
DataTypeBuilders– Factory for typed data-type descriptors that control how values are formatted in columns and components. Accessed viaDynamicReports.type.
Export
-
ExporterBuilders– Factory for exporter configuration builders (PDF, Excel, Word, HTML, CSV, XML, ODS, ODP, RTF, and image formats). Accessed viaDynamicReports.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
- DynamicReports Core on GitHub
- dynamicreports-examples – A companion repository with comprehensive, ready-to-run examples demonstrating charts, crosstabs, groups, styles, subreports, exporters, and more.
- JasperReports Library
Packages
Package
Description