当前位置:编程学习 > JAVA >>

急求报表高手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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,