As easy as invoking the addMeasure(…) from the CrosstabBuilder as many times as measures you need.
The above crosstab was generated with a fragment like this:
DJCrosstab djcross = new CrosstabBuilder() .setHeight(200) .setWidth(500) .setHeaderStyle(mainHeaderStyle) .setDatasource("sr",DJConstants.DATA_SOURCE_ORIGIN_PARAMETER, DJConstants.DATA_SOURCE_TYPE_COLLECTION) .setUseFullWidth(true) .setColorScheme(DJConstants.COLOR_SCHEMA_GRAY) .setAutomaticTitle(true) .setCellBorder(Border.PEN_1_POINT) .addRow("Product Line", "productLine", String.class.getName(),false) .addColumn("State","state",String.class.getName(),false) .addColumn("Branch","branch",String.class.getName(),true) .addColumn("Item", "item", String.class.getName(),true) .addMeasure("id",Long.class.getName(), DJCalculation.SUM , "Id", measureStyle) .addMeasure("amount",Float.class.getName(), DJCalculation.SUM , "Amount",measureStyle2) .setRowStyles(colAndRowHeaderStyle, totalStyle, totalHeaderStyle) .setColumnStyles(colAndRowHeaderStyle, totalStyle, totalHeaderStyle) .setCellDimension(34, 60) .setColumnHeaderHeight(30) .setRowHeaderWidth(80) .build();
code CrosstabReportTest5