//Get total row count
int rowCount = 0;
for ( int iRow = 0; iRow < data.size(); iRow++ ) {
DynamicDataRow row = data.get( iRow );
if ( row instanceof GroupedDynamicDataRow ) {
GroupedDynamicDataRow groupedRow = (GroupedDynamicDataRow) row;
rowCount = rowCount + groupedRow.getChildRows().size();
} else {
rowCount++;
}
}
int iRowNum = 0;
for ( int iRow = 0; iRow < data.size(); iRow++ ) {
DynamicDataRow row = data.get( iRow );
if ( row instanceof GroupedDynamicDataRow ) {
GroupedDynamicDataRow groupedRow = (GroupedDynamicDataRow) row;
//Setting value on a GroupedCellValue causes all children to assume the same value
groupedRow.get( iCol ).setValue( new BigDecimal( rowCount - iRowNum ) );
for ( int iGroupedRow = 0; iGroupedRow < groupedRow.getChildRows().size(); iGroupedRow++ ) {
groupedRow.getChildRows().get( iGroupedRow ).get( iCol ).setValue( new BigDecimal( rowCount - iRowNum ) );
iRowNum++;
}
} else {
row.get( iCol ).setValue( new BigDecimal( rowCount - iRowNum ) );
iRowNum++;