这个东西让我好生头疼,贴代码吧

 // 两秒后模拟点击
setTimeout(function() {
// IE
if(document.all) {
document.getElementById("userQuery").click();
}// 其它浏览器
else {
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
document.getElementById("userQuery").dispatchEvent(e);
}
}, 1000);
$("#userQuery").click(function(){
var $this = $(this);
var companyCode=GetRequest()['companyCode'];
$("#compAny").val(companyCode);
//将queryStr传到后台,进行获取数据
var queryStr = $this.parents('form').serialize();
$.ajax({
url: "../../userliebiao/userGraph.do",
data: queryStr,
type: "post",
cache:false,
dataType: "json",
success: function (data) {
var myChart;
myChart = new FusionCharts("../../fusionCharts/Line.swf","myChartId", "1200", "400", "0" );
myChart.setDataXML(data.xml); //调用后台的xml数据
myChart.render("userPic"); //将数据送给div 进行显示},//如果后台有错
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest.status); //一切正常 200
alert(XMLHttpRequest.status);
console.log(XMLHttpRequest.readyState);
//此阶段确认全部数据都已经解析为客户端可用的格式,解析已经完成。值为4表示数据解析完毕,可以通过XMLHttpRequest对象的相应属性取得数据。
alert(XMLHttpRequest.readyState);
console.log(textStatus);
alert("出错了"+textStatus);}}); }); 后台方法: try {
String subcaption = null;
User user=new User();
String type=this.getParam("cycle");
if (type.equals("1")) {
type="1,2"; //1:按天
user.setDmType(type);
}else if(type.equals("2")){
type="4,2"; //1:按月
user.setDmType(type);
}else if(type.equals("3")){
type="8,3"; //1:按年"minZu"
user.setDmType(type);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String allTime=this.getParam("fcreatetime2");
String compAny=this.getParam("compAny");
Map<String, Object> map = new HashMap<String, Object>();
if (allTime!=null || allTime!="") {
String[] a=allTime.split(" 至 "); //将时间分割为开始时间~结束时间
String betime=a[0];
String entime=a[1];
subcaption=betime+" 至 "+entime;
Date time1 = sdf.parse(betime);
Date time2 = sdf.parse(entime);
if (type!=""||compAny!="") {
user.setDmType(type);
user.setCompanyCode(compAny);
}
map.put("dmType",user.getDmType()); //将数据存到map,作为sql方法的参数
map.put("companycode",user.getCompanyCode());
map.put("beginTime",time1);
map.put("overTime", time2);
}
List<Map> aa = los.userGraph(map);//执行sql语句
Document document = DocumentHelper.createDocument();//创建dom节点
// if(!"3".equals(map.get("querytype").toString())){//如果不是按地区查询
// String yAxisMaxValue="50000"; //y轴最大值
String xAxisName="注册日期";
String yAxisName="注册人数";
String numberSuffix="人"; //数字的后缀
String xlable; String title = "登录人次统计";
Element root = XmlDom4jUtils.addElementAndAttribute(document, "chart",
"caption","注册人数统计 ","xAxisName","注册日期 ","yAxisName","注册人数",
"yAxisMinValue","200","showValues","","alternateHGridColor",
"FCB541","alternateHGridAlpha","20","divLineColor","FCB541","divLineAlpha","50",
"canvasBorderColor","666666","baseFontColor","666666","lineColor","FCB541",
"baseFont","Arial","baseFontSize","15","rotateYAxisName","0",
"chartRightMargin","50","showBorder","0",
"canvasBorderThickness ","1","showNames","",
"numDivLines ","4",
"numberSuffix",numberSuffix,
// "xAxisName",xAxisName,
"subcaption",subcaption+" ",
"showAlternateHGridColor","1",
"canvasBorderColor","FFCCCC",
"bgColor","FFFFFF,FFFFFF",
"anchorRadius","2",//折线节点半径
"bgColor","FFFFFF"
);
String ss;
for (Map map2 : aa) {
ss=(String) map2.get("CREATEDDATE");
boolean a = ss.contains("月");
if (a!=true) {
if (type.equals("1,2")) {
ss+="日";
}
if (type.equals("4,2")) {
ss+="月";
}
if (type.equals("8,3")) {
ss+="年";
}
}
map2.put("CREATEDDATE", ss);
XmlDom4jUtils.addChildrenAndAttribute(root,"set","label",""+map2.get("CREATEDDATE")+"","value",""+map2.get("VISITORID")+"");
} Element styles = XmlDom4jUtils.addChildren(root, "styles");
Element definition = XmlDom4jUtils.addChildren(styles,"definition");
XmlDom4jUtils.addChildrenAndAttribute(definition,"style","name","Anim1","type","animation","param","_xscale","start","0","duration","1");
XmlDom4jUtils.addChildrenAndAttribute(definition,"style","name","Anim2","type","animation","param","_alpha","start","0","duration","0.6");
Element application = XmlDom4jUtils.addChildren(styles,"application");
XmlDom4jUtils.addChildrenAndAttribute(application,"apply","toObject","DIVLINES","styles","Anim1");
XmlDom4jUtils.addChildrenAndAttribute(application,"apply","toObject","HGRID","styles","Anim2");
XmlDom4jUtils.addChildrenAndAttribute(application,"apply","toObject","DATALABELS","styles","DataShadow,Anim2"); Map<String, Object> mapp = new HashMap<String, Object>();
mapp.put("xml", document.asXML());
String json = JsonUtils.mapToJson(mapp);
outStringData(json);
} catch (ParseException e) {
e.printStackTrace();
} 核心是sql语句: select count(i.createddate) as visitorId,substr(u.createddate,${dmType}) as createddate
from ** u,// i
where u.userinfoids = i.ids
<if test="beginTime !=null and beginTime !=''">
  <![CDATA[
    and substr(u.createddate,0,10) >= #{beginTime}
  ]]>
</if>
<if test="overTime !=null and overTime !=''">  
  <![CDATA[
    and substr(u.createddate,0,10) <= #{overTime}
  ]]>
</if>
<if test="companycode !=null and companycode !=''">
and u.COMPANYCODE = #{companycode}
</if>
<![CDATA[
group by substr(u.createddate, ${dmType})
order by substr(u.createddate, ${dmType}) asc
]]> dao代码: //图形统计
public List<Map> **(Map<String, Object> map){
// super.sqlSessionTemplate.selectMap("路径", map);
return super.sqlSessionTemplate.selectList("路径", map); }

后台dom拼接xml,动态显示统计图的更多相关文章

  1. Qt 学习之路 2(60):使用 DOM 处理 XML

    Qt 学习之路 2(60):使用 DOM 处理 XML  豆子  2013年8月3日  Qt 学习之路 2  9条评论 DOM 是由 W3C 提出的一种处理 XML 文档的标准接口.Qt 实现了 DO ...

  2. Android之DOM解析XML

    一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ...

  3. php中通过DOM操作XML

    DOM文档在js里早就接触过,知道DOM不但可以操作html文档,还可以操作XHTML,XML等文档,有着极强的通用性,下面我们通过两个小例子,看看在PHP中是如何用DOM操作XML文档的,和js中差 ...

  4. JAVA中使用DOM解析XML文件

    XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...

  5. php : DOM 操作 XML

    DOM 操作 XML 基本用法 XML文件: person.XML <?xml version="1.0" encoding="utf-8" ?> ...

  6. 简单谈谈dom解析xml和html

    前言 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.html,xml都是基于这个模型构造的.这也是一个W3C推出的标准.j ...

  7. JAva使用DOM读取XML数据(解析)

    原来一切都是有套路的 使用DOM解析XML文档步骤 1.创建解析器工厂对象 DocumentBuildFactory对象 2.由解析器工厂对象创建解析器对象,即DocumentBuilder对象 3. ...

  8. Java从零开始学四十二(DOM解析XML)

    一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone ...

  9. xml语法、DTD约束xml、Schema约束xml、DOM解析xml

    今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...

随机推荐

  1. arc下dealloc得处理

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  2. Phoenix -修复表索引

    索引的修复可以通过2种方式,(关于pehoenix的索引的生命周期可以参考  https://community.hortonworks.com/articles/58818/phoenix-inde ...

  3. BASH 漏洞修复

    Red Hat在Bash Shell中发现了一个名为Bash Bug的安全漏洞,当用户正常访问时,该漏洞允许攻击者的代码像在Shell中一样执行,这样就为各种各样的攻击打开了方便之门.据悉,其严重性要 ...

  4. delphi dev 汉化

    //把以下文件复制到记事本中,并保存为DevChs.ini放在exe的目录下 //有这个cxLocalizer控件 //主窗体创建的时候 if (fileexists(ExtractFilePath( ...

  5. http://www.cnblogs.com/nullcnb/p/3653262.html

    alert(hasPrototypeProperty(person,"name")); //false 来自原型 person1.name="mywei"; a ...

  6. canvas生成二维码,并下载保存为本地的图片

    function getTicket(id,salt){//qrcode生成canvas二维码 $(".zc-mask").show(); $(".edit-box&qu ...

  7. android 动态设置控件宽高度

    Android 代码里直接使用 setWidth() 和 setHeight()设置宽高度是没用的. 解决办法是 改用setLayoutParams()方法 如设置宽高内容自适应: setLayout ...

  8. nodejs——qureystring的作用

    当node服务器向另一个服务器发送数据时,首先要转换成字符串再post或者get,这个时候就要用到node内置的这个包querystring, querystring.stringify(data);

  9. MS AX 技术相关网站收藏

    Microsoft Dynamics AX Developer Centerhttps://msdn.microsoft.com/en-us/dynamics/ax/default.aspx From ...

  10. treeview_dropdown_control

    http://www.brad-smith.info/blog/archives/193 http://www.brad-smith.info/blog/projects/dropdown-contr ...