report.setPageDefinition(new SimplePageDefinition(new PageSize(800, 300)));
report.setDataFactory(new TableDataFactory("query", tableModel));
report.setQuery("query");
final DesignTimeDataSchemaModel dataSchemaModel = new DesignTimeDataSchemaModel(report);
final RelationalReportBuilder builder = new RelationalReportBuilder(dataSchemaModel);
builder.addGroup(ROW_DIMENSION_A);
builder.addGroup(ROW_DIMENSION_B);
builder.addDetails(VALUE, aggFun, VALUE_BACKGROUND);
builder.addDetails("row-a-sum", null, ROWA_BACKGROUND);
builder.addDetails("#row-a-sum", null, ROWA_VALIDATE_BACKGROUND);
builder.addDetails("row-b-sum", null, ROWB_BACKGROUND);
builder.addDetails("#row-b-sum", null, ROWB_VALIDATE_BACKGROUND);
builder.addDetails("no-group", null, ROWC_BACKGROUND);
builder.addDetails("#no-group", null, ROWC_VALIDATE_BACKGROUND);
report.setRootGroup(builder.create());
return report;
}