try {
while(iterator.hasNext()) {
// build field name from start & end
TimeInterval interval = iterator.next();
String fieldName = "TIME";
fieldName += interval.getStart();
fieldName += "_";
fieldName += interval.getEnd();
fieldName += "_" + baseFieldName;
System.out.println("time based field is " + fieldName);
// add fields
JRDesignField field = new JRDesignField();
field.setName(fieldName);
field.setValueClass(fieldType);
design.addField(field);
System.out.println("column header is " + interval.getText2());
// add columns
JRDesignBand columnHeader = (JRDesignBand) design.getColumnHeader();
JRDesignStaticText staticText = new JRDesignStaticText();
staticText.setX(maxX);
staticText.setY(0);
staticText.setWidth(80);
staticText.setHeight(15);
staticText.setTextAlignment(JRTextElement.TEXT_ALIGN_RIGHT);
staticText.setFont(normalFont);
staticText.setText(interval.getText1());
staticText.setPrintWhenDetailOverflows(true);
columnHeader.addElement(staticText);
// add textFields
JRDesignBand detailBand = (JRDesignBand) design.getDetail();