FusionCharts+Struts2+AJAX动态报表

10 篇文章 0 订阅
5 篇文章 0 订阅

http://liulijun-cn-2011.iteye.com/blog/1484128



前台画面选择不同的检索条件通过ajax传递到后台,后台检索数据库动态构建XML格式字符串返回,前台生成对应的图像。示例是一个折线图。 
Jquery部分 
chartsPath为图标模板swf的位置 

Java代码   收藏代码
  1. function showSplineCharts(url) {  
  2.     $.post(url, null, function(result) {  
  3.         var myChart = new FusionCharts(chartsPath, "myChartId""900""600""0""1" );  
  4.         myChart.setDataXML(result);  
  5.         myChart.render("chartContainer");  
  6.     });  
  7. }  

Action部分 
Java代码   收藏代码
  1. import java.io.PrintWriter;  
  2. import javax.servlet.http.HttpServletResponse;  
  3. import org.apache.struts2.ServletActionContext;  
  4. import org.apache.struts2.interceptor.validation.SkipValidation;  
  5. import com.opensymphony.xwork2.ActionContext;  
  6.   
  7. public class SplineChartsAction extends BaseAction {  
  8.   
  9.     private static final long serialVersionUID = -7084657534035687836L;  
  10.   
  11.     public static final String NAMESPACE = "XXXX";  
  12.   
  13.     public static final String NAME = "spline-charts";  
  14.   
  15.     public static final String URL = NAMESPACE + "/" + NAME;  
  16.   
  17.     @SkipValidation  
  18.     public void getXMLData() throws Exception {  
  19.         StringBuffer stringBuffer = new StringBuffer();  
  20.   
  21.         // XMLデータ  
  22.         stringBuffer.append("<chart caption=\"テスト\" xAxisName=\"月\" yAxisName=\"量\" showValues=\"0\" baseFontSize=\"11\" palette=\"1\" showFCMenuItem=\"1\" imageSave=\"1\">");  
  23.         // X糸を設定する  
  24.         stringBuffer.append("<categories>");  
  25.         stringBuffer.append("<category label=\"1\" />");  
  26.         stringBuffer.append("<category label=\"2\" />");  
  27.         stringBuffer.append("<category label=\"3\" />");  
  28.         stringBuffer.append("<category label=\"4\" />");  
  29.         stringBuffer.append("<category label=\"5\" />");  
  30.         stringBuffer.append("<category label=\"6\" />");  
  31.         stringBuffer.append("<category label=\"7\" />");  
  32.         stringBuffer.append("<category label=\"8\" />");  
  33.         stringBuffer.append("<category label=\"9\" />");  
  34.         stringBuffer.append("<category label=\"10\" />");  
  35.         stringBuffer.append("<category label=\"11\" />");  
  36.         stringBuffer.append("<category label=\"12\" />");  
  37.         stringBuffer.append("</categories>");  
  38.         // DBデータを取得する  
  39.         stringBuffer.append("<dataset seriesName=\"2011年\">");  
  40.         stringBuffer.append("<set value=\"25635\" />");  
  41.         stringBuffer.append("<set value=\"12563\" />");  
  42.         stringBuffer.append("<set value=\"15665\" />");  
  43.         stringBuffer.append("<set value=\"15656\" />");  
  44.         stringBuffer.append("<set value=\"16524\" />");  
  45.         stringBuffer.append("<set value=\"12335\" />");  
  46.         stringBuffer.append("<set value=\"56466\" />");  
  47.         stringBuffer.append("<set value=\"22556\" />");  
  48.         stringBuffer.append("<set value=\"44565\" />");  
  49.         stringBuffer.append("<set value=\"22455\" />");  
  50.         stringBuffer.append("<set value=\"41651\" />");  
  51.         stringBuffer.append("<set value=\"14552\" />");  
  52.         stringBuffer.append("</dataset>");  
  53.   
  54.         stringBuffer.append("<dataset seriesName=\"2012\">");  
  55.         stringBuffer.append("<set value=\"45552\" />");  
  56.         stringBuffer.append("<set value=\"14652\" />");  
  57.         stringBuffer.append("<set value=\"12345\" />");  
  58.         stringBuffer.append("<set value=\"14652\" />");  
  59.         stringBuffer.append("<set value=\"43212\" />");  
  60.         stringBuffer.append("<set value=\"52451\" />");  
  61.         stringBuffer.append("<set value=\"12245\" />");  
  62.         stringBuffer.append("<set value=\"12552\" />");  
  63.         stringBuffer.append("<set value=\"11255\" />");  
  64.         stringBuffer.append("<set value=\"11125\" />");  
  65.         stringBuffer.append("<set value=\"11115\" />");  
  66.         stringBuffer.append("<set value=\"23651\" />");  
  67.         stringBuffer.append("</dataset>");  
  68.         // 標準糸を設定する  
  69.         stringBuffer.append("<trendlines>");  
  70.         stringBuffer.append("<line startValue=\"24000\" color=\"91C728\" displayValue=\"標準\" showOnTop=\"1\" />");  
  71.         stringBuffer.append("</trendlines>");  
  72.         stringBuffer.append("</chart>");  
  73.   
  74.         ActionContext ac = ActionContext.getContext();  
  75.         HttpServletResponse response =  
  76.                 (HttpServletResponse) ac  
  77.                         .get(ServletActionContext.HTTP_RESPONSE);  
  78.   
  79.         response.setCharacterEncoding("UTF-8");  
  80.         response.setContentType("text/html");  
  81.   
  82.         PrintWriter out = response.getWriter();  
  83.         out.print(stringBuffer.toString());  
  84.     }  
  85. }  

效果图见附件。 

********************************************************************************* 
青岛大手海恩信息技术有限公司 
联系方式:liulijun.cn.2011@gmail.com 
*********************************************************************************

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值