private CountryHeadingExpression() { VariableBuilder<Integer> minCountryPage = variable(pageIndexField, Calculation.LOWEST).setResetType(Evaluation.FIRST_GROUP); addExpression(minCountryPage); VariableBuilder<Integer> maxCountryPage = variable(pageIndexField, Calculation.HIGHEST).setResetType(Evaluation.FIRST_GROUP); addExpression(maxCountryPage); }
/** * <p>setResetGroup.</p> * * @param resetGroup a {@link net.sf.dynamicreports.report.builder.group.GroupBuilder} object. * @return a {@link net.sf.dynamicreports.report.builder.VariableBuilder} object. */ public VariableBuilder<T> setResetGroup(GroupBuilder<?> resetGroup) { if (resetGroup != null) { getObject().setResetGroup(resetGroup.getGroup()); setResetType(Evaluation.GROUP); } else { getObject().setResetGroup(null); } return this; }
private void build() { TextColumnBuilder<String> countryColumn = col.column("Country", "country", type.stringType()); TextColumnBuilder<String> itemColumn = col.column("Item", "item", type.stringType()); TextColumnBuilder<Integer> quantityColumn = col.column("Quantity", "quantity", type.integerType()); Bar3DChartBuilder chart1 = cht.bar3DChart() .setFixedHeight(180) .setCategory(countryColumn) .series(cht.serie(exp.number(1)).setLabel("Items (group count)")) .setCategoryAxisFormat(cht.axisFormat().setLabel("Country")); VariableBuilder<Integer> itemVariable = variable(itemColumn, Calculation.DISTINCT_COUNT); itemVariable.setResetType(Evaluation.FIRST_GROUP); Bar3DChartBuilder chart2 = cht.bar3DChart() .setFixedHeight(180) .setCategory(countryColumn) .series(cht.serie(itemVariable).setLabel("Items (group distinct count)")) .setCategoryAxisFormat(cht.axisFormat().setLabel("Country")); try { report().setTemplate(Templates.reportTemplate) .columns(countryColumn, itemColumn, quantityColumn) .title(Templates.createTitleComponent("GroupCountChart")) .groupBy(grp.group(countryColumn)) .summary(cmp.horizontalList(chart1, chart2)) .pageFooter(Templates.footerComponent) .setDataSource(createDataSource()) .show(); } catch (DRException e) { e.printStackTrace(); } }
private void build() { TextColumnBuilder<String> countryColumn = col.column("Country", "country", type.stringType()); TextColumnBuilder<String> itemColumn = col.column("Item", "item", type.stringType()); TextColumnBuilder<Integer> quantityColumn = col.column("Quantity", "quantity", type.integerType()); TextColumnBuilder<BigDecimal> priceColumn = col.column("Price", "price", type.bigDecimalType()); ColumnGroupBuilder countryGroup = grp.group(countryColumn); VariableBuilder<Integer> quantitySum = variable(quantityColumn, Calculation.SUM); VariableBuilder<BigDecimal> priceSum = variable(priceColumn, Calculation.SUM); VariableBuilder<Integer> quantityGrpSum = variable(quantityColumn, Calculation.SUM); quantityGrpSum.setResetGroup(countryGroup); VariableBuilder<BigDecimal> priceGrpSum = variable(priceColumn, Calculation.SUM); priceGrpSum.setResetType(Evaluation.FIRST_GROUP); StyleBuilder subtotalStyle = stl.style().bold().setTopBorder(stl.pen1Point()).setHorizontalTextAlignment(HorizontalTextAlignment.CENTER); TextFieldBuilder<String> summarySbt = cmp.text(new CustomTextSubtotal(quantitySum, priceSum)).setStyle(subtotalStyle); TextFieldBuilder<String> groupSbt = cmp.text(new CustomTextSubtotal(quantityGrpSum, priceGrpSum)).setStyle(subtotalStyle); countryGroup.footer(groupSbt); try { report().setTemplate(Templates.reportTemplate) .variables(quantitySum, priceSum, quantityGrpSum, priceGrpSum) .columns(countryColumn, itemColumn, quantityColumn, priceColumn) .groupBy(countryGroup) .summary(summarySbt) .title(Templates.createTitleComponent("CustomTextSubtotal")) .pageFooter(Templates.footerComponent) .setDataSource(createDataSource()) .show(); } catch (DRException e) { e.printStackTrace(); } }