急求报表高手FunsionCharts XML中的问题!!!
用FunsionCharts做了个报表,出现了柱状图和饼状图,但是出的饼状图和和柱状图中,如果数据库读出来的第一列是字符串类型的话 FunsionCharts 柱状图和饼状图不显示,如果是int型的话 那柱状图和饼状图可以显示,想高手帮忙解决下 如何让数据库读出来的数第一列是字符串的时候 柱状图和饼状图也显示!部分代码
if ("2".equals(reportType)) {
String[][] data = null;
// if (type.equals("fr"))
data = createFrRs(rsData);// 格式化查询出来的数据
ArrayList rowList = new ArrayList();
this.getRowLeftList(rowTitle, rowList);
String[] columnKeys = createRow(rowList);
ArrayList colList = new ArrayList();
this.getColLeftList(colTitle, colList);
String[] rowKeys = createCol(colList);
request.setAttribute("DataSetStr", DataSetMSColumn3DStr(data,
columnKeys, rowKeys, title));
request.setAttribute("FunsionChartType", "MSColumn3D.swf");
} else if ("1".equals(reportType)) {
ArrayList list = new ArrayList();
this.getColLeftList(colTitle, list);
list = new ArrayList();
this.getRowLeftList(rowTitle, list);
request.setAttribute("DataSetStr", DataSetPie3DStr(list,
colTitle, title, rsData));
request.setAttribute("FunsionChartType", "Pie3D.swf");
}
判断了下 1是柱状图 2是饼状图
柱状图代码
private String DataSetPie3DStr(ArrayList rowTitle, ArrayList colTitle,
String title, String[][] dataRs) {
StringBuffer xmlStr = new StringBuffer();
xmlStr.append("<graph baseFont='楷体' baseFontSize='16' baseFontColor='000000' bgAlpha='100' chartLeftMargin='1px' chartRightMargin='1px' chartTopMargin='1px' chartBottomMargin='1px' canvasBgAlpha='100' xaxisname='' useRoundEdges='1' yaxisname='' rotateNames='0' outCnvBaseFontSze='20' formatNumberScale='0' AxisMinValue='1000' yAxisMaxValue='10000' numdivlines='9' divLineColor='CCCCCC' divLineAlpha='0' decimalPrecision='9' formatNumberScale='1' showAlternateHGridColor='0' AlternateHGridAlpha='30' AlternateHGridColor='CCCCCC' caption='"
+ title + "' >");
int index = 0;
for (int i = 0; i < rowTitle.size(); i++) {
AttributeDataContenter tempADC = ((AttributeDataContenter) rowTitle
.get(i));
String name = tempADC.getName();
if (index >= dataRs[0].length)
break;
double value = Double.parseDouble(dataRs[i][index]);
xmlStr.append("<set name='" + name + "' value='" + value + "' />");
}
xmlStr.append("</graph>");
return xmlStr.toString();
}
饼状图代码
private String DataSetMSColumn3DStr(String[][] data, String[] columnKeys,
String[] rowKeys, String title) {
StringBuffer xmlStr = new StringBuffer();
xmlStr.append("<graph baseFont='楷体' baseFontSize='16' baseFontColor='000000' bgAlpha='100' chartLeftMargin='1px' chartRightMargin='1px' chartTopMargin='1px' chartBottomMargin='1px' canvasBgAlpha='100' canvasBorderThickness ='2' canvasBgAlpha ='100' xaxisname='' useRoundEdges='1' yaxisname='' rotateNames='0' outCnvBaseFontSze='20' formatNumberScale='0' AxisMinValue='1000' yAxisMaxValue='10000' numdivlines='9' divLineColor='CCCCCC' divLineAlpha='80' decimalPrecision='9' formatNumberScale='1' showAlternateHGridColor='0' AlternateHGridAlpha='30' AlternateHGridColor='CCCCCC' caption='"
+ title + "' >");
xmlStr.append("<categories font='Arial' fontSize='12' fontColor='000000'>");
if(data != null && data.length > 0)
{
for (int i = 0; i < columnKeys.length; i++) {
xmlStr.append("<category label='" + columnKeys[i] + "'/>");
}
xmlStr.append("</categories>");
for (int i = 0; i < rowKeys.length; i++) {
xmlStr.append("<dataset seriesName='" + rowKeys[i] + "'>");
for (int j = 0; j < data[i].length; j++) {
xmlStr.append("<set value='" + data[i][j] + "' />");
}
xmlStr.append("</dataset>");
}
}
else
{
xmlStr.append("<category label='无'/>");
xmlStr.append("</categories>");
xmlStr.append("<dataset seriesName='无'>");
xmlStr.append("<set value='无' />");
xmlStr.append("</dataset>");
}
xmlStr.append("</graph>");
return xmlStr.toString();
}
--------------------编程问答-------------------- LZ、看到有人回复你千万表激动、像我、是来消灭0回复滴....
补充:Java , Eclipse