int i=0;
List visibleFields = dataStore.getMetaData().findFieldMeta("visible", Boolean.TRUE);
int fieldNo = visibleFields.size();
for(i = 0; i < fieldNo; i++) {
IFieldMetaData fieldMeta = (IFieldMetaData)visibleFields.get(i);
Boolean isVisible = (Boolean)fieldMeta.getProperty("visible");
if(isVisible != null && isVisible.booleanValue() == false) {
continue;
}
boolean isANumber = false;
String className = fieldMeta.getType().getName();
Class fieldClass = Object.class;
try {
fieldClass = Class.forName(className);
} catch (ClassNotFoundException e) {
logger.error("Class type not recognized: [" + className + "]", e);
}
if (Number.class.isAssignableFrom(fieldClass)){
isANumber = true;
}
buffer.append("<textField isStretchWithOverflow=\"true\" isBlankWhenNull=\"false\" evaluationTime=\"Now\" hyperlinkType=\"None\" hyperlinkTarget=\"Self\" ");
if (isANumber) {
String pattern = (String)fieldMeta.getProperty("pattern");
buffer.append(" pattern=\"" + ((pattern != null) ? pattern : DEFAULT_NUMBER_PATTERN) + "\"");
}
buffer.append(" >\n");
buffer.append("<reportElement " +
"mode=\"" + "Opaque" + "\" " +
"x=\"" + x + "\" " +
"y=\"" + 0 + "\" " +
"width=\"" + columnWidth[i] + "\" " +
"height=\"" + detailHeight + "\" " +
"forecolor=\"" + getParamValue(PN_DETAIL_EVEN_ROW_FORECOLOR, DEFAULT_DETAIL_EVEN_ROW_FORECOLOR ) + "\" " +
"backcolor=\"" + getParamValue(PN_DETAIL_EVEN_ROW_BACKCOLOR, DEFAULT_DETAIL_EVEN_ROW_BACKCOLOR) + "\" " +
"key=\"textField\">\n");
buffer.append("<printWhenExpression><![CDATA[new Boolean(\\$V\\{REPORT_COUNT\\}.intValue() % 2 == 0)]]></printWhenExpression>");
buffer.append("</reportElement>");
buffer.append("<box leftPadding=\"2\" rightPadding=\"2\" topBorder=\"None\" topBorderColor=\"#000000\" leftBorder=\"None\" leftBorderColor=\"#000000\" rightBorder=\"None\" rightBorderColor=\"#000000\" bottomBorder=\"None\" bottomBorderColor=\"#000000\"/>\n");
buffer.append("<textElement " +
"textAlignment=\"" + (isANumber ? "Right": "Left") + "\" " +
"verticalAlignment=\"Middle\"> " +
"<font pdfFontName=\"" + getParamValue(PN_ROW_FONT, DEFAULT_ROW_FONT)+ "\" " +
"size=\"" + getParamValue(PN_ROW_FONT_SIZE, DEFAULT_ROW_FONT_SIZE)+ "\"/>" +
"</textElement>\n");
if(fieldMeta.getType().getName().equalsIgnoreCase("java.sql.Date")) {
buffer.append("<textFieldExpression " +
"class=\"java.lang.String\"> " +
"<![CDATA[\\$F\\{" + fieldMeta.getName() + "\\}.toString()]]>\n" +
"</textFieldExpression>\n");
} else {
buffer.append("<textFieldExpression " +
"class=\"" + fieldMeta.getType().getName() + "\"> " +
"<![CDATA[\\$F\\{" + fieldMeta.getName() + "\\}]]>\n" +
"</textFieldExpression>\n");
}
buffer.append("</textField>\n\n");
buffer.append("<textField isStretchWithOverflow=\"true\" isBlankWhenNull=\"false\" evaluationTime=\"Now\" hyperlinkType=\"None\" hyperlinkTarget=\"Self\" ");
if (isANumber) {
String pattern = (String)fieldMeta.getProperty("pattern");
buffer.append(" pattern=\"" + ((pattern != null) ? pattern : DEFAULT_NUMBER_PATTERN) + "\"");
}
buffer.append(" >\n");
buffer.append("<reportElement " +
"mode=\"" + "Opaque" + "\" " +
"x=\"" + x + "\" " +
"y=\"" + 0 + "\" " +
"width=\"" + columnWidth[i] + "\" " +
"height=\"" + detailHeight + "\" " +
"forecolor=\"" + getParamValue(PN_DETAIL_ODD_ROW_FORECOLOR, DEFAULT_DETAIL_ODD_ROW_FORECOLOR ) + "\" " +
"backcolor=\"" + getParamValue(PN_DETAIL_ODD_ROW_BACKCOLOR, DEFAULT_DETAIL_ODD_ROW_BACKCOLOR) + "\" " +
"key=\"textField\">\n");
buffer.append("<printWhenExpression><![CDATA[new Boolean(\\$V\\{REPORT_COUNT\\}.intValue() % 2 != 0)]]></printWhenExpression>");
buffer.append("</reportElement>");
buffer.append("<box leftPadding=\"2\" rightPadding=\"2\" topBorder=\"None\" topBorderColor=\"#000000\" leftBorder=\"None\" leftBorderColor=\"#000000\" rightBorder=\"None\" rightBorderColor=\"#000000\" bottomBorder=\"None\" bottomBorderColor=\"#000000\"/>\n");
buffer.append("<textElement " +
"textAlignment=\"" + (isANumber ? "Right": "Left") + "\" " +
"verticalAlignment=\"Middle\"> " +
"<font pdfFontName=\"" + getParamValue(PN_ROW_FONT, DEFAULT_ROW_FONT)+ "\" " +
"size=\"" + getParamValue(PN_ROW_FONT_SIZE, DEFAULT_ROW_FONT_SIZE)+ "\"/>" +
"</textElement>\n");
if(fieldMeta.getType().getName().equalsIgnoreCase("java.sql.Date")) {
buffer.append("<textFieldExpression " +
"class=\"java.lang.String\"> " +
"<![CDATA[\\$F\\{" + fieldMeta.getName() + "\\}.toString()]]>\n" +
"</textFieldExpression>\n");
} else {
buffer.append("<textFieldExpression " +
"class=\"" + fieldMeta.getType().getName() + "\"> " +
"<![CDATA[\\$F\\{" + fieldMeta.getName() + "\\}]]>\n" +
"</textFieldExpression>\n");
}
buffer.append("</textField>\n\n\n");