{
boolean hasOrderByExpression = false;
List rowBuckets = new ArrayList(rowGroups.length);
for (int i = 0; i < rowGroups.length; ++i)
{
JRFillCrosstabRowGroup group = rowGroups[i];
rowBuckets.add(createServiceBucket(group, evaluation));
hasOrderByExpression |= group.getBucket().getOrderByExpression() != null;
}
List colBuckets = new ArrayList(columnGroups.length);
for (int i = 0; i < columnGroups.length; ++i)
{
JRFillCrosstabColumnGroup group = columnGroups[i];
colBuckets.add(createServiceBucket(group, evaluation));
hasOrderByExpression |= group.getBucket().getOrderByExpression() != null;
}
percentage = false;
List measureList = new ArrayList(measures.length);
for (int i = 0; i < measures.length; ++i)