在公司实习,要做报表,我学习了fusioncharts free,这是一个漂亮好用的flash报表工具。
基本使用请参考薄荷的博客
在这里分享一下我使用的经验!!!
我是针对jsp 的开发,加载了com.infosoftglobal.fusioncharts包,使用了FusionChartsCreator类。
在这个类里有四个方法,我主要应用的方法是:
public static String createChartHTML(String chartSWF, String strURL,String strXML, String chartId, int chartWidth, int chartHeight,boolean debugMode)
还有一个类似方法,只不过多了一个参数registerWithJS,这个好像是设置是否导入js文件的,我还没仔细研究,我设置为false。public static String createChart(String chartSWF, String strURL,String strXML, String chartId, int chartWidth, int chartHeight,boolean debugMode, boolean registerWithJS)
...... <%@page import="com.infosoftglobal.fusioncharts.FusionChartsCreator"%> <html> <head>......</head> <% %> <body> ...... <table> </body>
|
在上面两个方法里都有strURL和strXML两个参数,其中strURL是要读取的xml文件的路径,strXML是要读取的xml字符串。
这两个参数不能同时有值,如果想从文件中读取xml数据,就要把strXML设置为"";如果要从字符串中读取xml数据,那就要把strURL设置为""。
xml文件数据并不好用,经常数据更新后不能立即在图表上体现,往往需要清除浏览器缓存后才能生效,所以推荐使用字符串传xml数据。
而传的字符串的格式一定要注意,该字符串与xml文件中的文本不完全相同。
<?xml version="1.0" encoding="UTF-8"?>
|
而相应的strXML = "<chart caption='test' xAxisName='Month' yAxisName='Units' showValues='0' decimals='0' formatNumberScale='0'><set label='Jan' value='462' /><set label='Feb' value='857' /><set label='Mar' value='671' /><set label='Apr' value='494' /><set label='May' value='761' /><set label='Jun' value='960' /><set label='Jul' value='629' /><set label='Aug' value='622' /><set label='Sep' value='376' /><set label='Oct' value='494' /><set label='Nov' value='761' /><set label='Dec' value='960' /></chart>"。
我最初拼装xml数据时是用的jdom来做的,但是拼装出来的数据和这里所要求的数据总是有差别。
所以,我后来就直接用字符串来拼装数据了。
在拼装时要注意:
开头的<?xml version="1.0" encoding="UTF-8"?>不要;
整个字符串前后和中间都不能有换行符或空格;
而且元素属性的值一定要用''括起来,不要用""。