extjs 之panel嵌入flash饼状图

简介:

java端获取数据代码

 


 
 
  1. /**  
  2.      * 创建产品线接口数量统计数据的XML格式数据  
  3.      *   
  4.      * @param caption  
  5.      *            报表标题  
  6.      * @param xAxisName  
  7.      *            横轴名称  
  8.      * @param yAxisName  
  9.      *            纵轴名称  
  10.      * @param baseFontSize  
  11.      *            字体大小 以12为佳  
  12.      * @param ISCreateFile  
  13.      *            是否要创建为XML文件,TRUE表示要创建文件  
  14.      * @param pFileName  
  15.      *            XML文件的输出路径与文件名称  
  16.      * @return String XML格式字符串,用于图表显示  
  17.      */ 
  18.     public String CreateCasePorjectDibtXmlData(TestCase searchtc,String caption, String subCaption,  
  19.             String baseFontSize, boolean ISCreateFile, String pFileName) {  
  20.           
  21.           
  22.         //List<StatisticsOfIfaceNumber> IFaceNumberList = StatisticsOfIfaceNumberDao  
  23.             //  .getStatisticsOfIfaceNumberList();  
  24.         //int ListSize = IFaceNumberList.size();  
  25.         CaseReportService cs = new CaseReportService();  
  26.           
  27.         List<DisCaseProject> ldcp = cs.getDisCaseProjectData(searchtc);  
  28.         int ListSize = ldcp.size();  
  29.         Document document = DocumentHelper.createDocument();  
  30.         Element root = document.addElement("graph").addAttribute("caption",  
  31.                 caption).addAttribute("baseFontSize", baseFontSize)  
  32.                 .addAttribute("showNames""1").addAttribute(  
  33.                         "decimalPrecision""0").addAttribute(  
  34.                         "formatNumberScale""0").addAttribute("yAxisMinValue",  
  35.                         "0");  
  36.         if (subCaption != null) {  
  37.             root.addAttribute("subCaption", subCaption);  
  38.         }  
  39.         int totalCaseCount = 0;  
  40.           
  41.         Iterator<DisCaseProject> its = ldcp.iterator();  
  42.         while (its.hasNext()) {  
  43.             DisCaseProject Temp_CaseCount = its.next();  
  44.             if (Temp_CaseCount == null)  
  45.                 break;  
  46.             totalCaseCount = totalCaseCount + Temp_CaseCount.getCount();  
  47.         }  
  48.           
  49.         if (ListSize > com.help.Colordef.colorCount) {  
  50.             String color[] = new String[ListSize];  
  51.             for (int i = 0; i < ListSize; i++) {  
  52.                 double n = Math.random();  
  53.                 double m = Math.random();  
  54.                 double k = Math.random();  
  55.                 int j = (int) (n * m * k * 0xFFFFFF);  
  56.                 color[i] = Integer.toHexString(j);  
  57.             }  
  58.             Iterator<DisCaseProject> it = ldcp.iterator();  
  59.  
  60.             int iColor = 0;  
  61.             while (it.hasNext()) {  
  62.                 DisCaseProject temp = it.next();  
  63.                 if (temp == null)  
  64.                     break;  
  65.                 root.addElement("set").addAttribute(  
  66.                                 "name",  
  67.                                 temp.getProjectname()  
  68.                                         + ":" 
  69.                                         + (int) (((float) temp.getCount()/(float)totalCaseCount) * 100)  
  70.                                         + "%").addAttribute("value",  
  71.                                 Integer.toString(temp.getCount()))  
  72.                         .addAttribute("color", color[iColor]);  
  73.                 iColor++;  
  74.             }  
  75.         } else {  
  76.             Iterator<DisCaseProject> it = ldcp.iterator();  
  77.  
  78.             int iColor = 0;  
  79.             while (it.hasNext()) {  
  80.                 DisCaseProject temp = it.next();  
  81.                 if (temp == null)  
  82.                     break;  
  83.  
  84.                 root  
  85.                         .addElement("set")  
  86.                         .addAttribute(  
  87.                                 "name",  
  88.                                 temp.getProjectname()  
  89.                                         + ":" 
  90.                                         + (int) (((float) temp.getCount()/ (float) totalCaseCount) * 100)  
  91.                                         + "%")  
  92.                         .addAttribute("value",  
  93.                                 Integer.toString(temp.getCount()))  
  94.                         .addAttribute(  
  95.                                 "color",  
  96.                                 com.help.Colordef.color[iColor]);  
  97.  
  98.                 iColor++;  
  99.             }  
  100.         }  
  101.  
  102.         if (ISCreateFile == true) {  
  103.             XMLWriter output;  
  104.             try {  
  105.                 output = new XMLWriter(new FileWriter(new File(pFileName)));  
  106.                 output.write(document);  
  107.  
  108.                 output.close();  
  109.             } catch (IOException e) {  
  110.                 // TODO Auto-generated catch block  
  111.                 e.printStackTrace();  
  112.             }  
  113.         }  
  114.  
  115.         return document.asXML();  
  116.     }  
  117.  
  118.     /**  
  119.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse  
  120.      *      response)  
  121.      */ 
  122.     protected void doGet(HttpServletRequest request,  
  123.             HttpServletResponse response) throws ServletException, IOException {  
  124.  
  125.         this.doPost(request, response);  
  126.         // TODO Auto-generated method stub  
  127.     }  
  128.  
  129.     /**  
  130.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse  
  131.      *      response)  
  132.      */ 
  133.     protected void doPost(HttpServletRequest request,  
  134.             HttpServletResponse response) throws ServletException, IOException {  
  135.         // TODO Auto-generated method stub  
  136.         HttpSession session = request.getSession(false);  
  137.         TestCase searchtc = (TestCase) session.getAttribute("searchtc");  
  138.  
  139.         String xmldata = CreateCasePorjectDibtXmlData(searchtc, "case 项目用例分布图""""12"falsenull);  
  140.         PrintWriter out = response.getWriter();  
  141.         try {  
  142.                 xmldata = xmldata.replaceAll("\"","'");  
  143.                 xmldata = xmldata.replaceAll("%","%");  
  144.               
  145.                 //xmldata = URLEncoder.encode(xmldata,"utf-8");  
  146.                 System.out.println(xmldata);  
  147.                 out.write(xmldata);  
  148.  
  149.         } catch (NumberFormatException e) {  
  150.             out.write("invalid data");  
  151.         }  
  152.         out.close();  
  153.     }  

 

XMLDATA数据如下


<?xml version='1.0' encoding='UTF-8'?>
< graph caption='case 项目用例分布图' baseFontSize='12' showNames='1' decimalPrecision='0' formatNumberScale='0' yAxisMinValue='0' subCaption=''><set name='bvt:37%' value='77' color='AFD8F8'/><set name='bonline:33%' value='70' color='F6BD0F'/><set name='chatroam:12%' value='25' color='8BBA00'/><set name='imuser_migrate:7%' value='16' color='FF8E46'/><set name='es_refactoring_1:6%' value='13' color='008E8E'/><set name='sms:1%' value='4' color='D64646'/><set name='ww_site_msg:1%' value='3' color='8E468E'/></graph>


js页面端代码


 
 
  1. function load_project_case_panel() {  
  2.     Ext.Ajax.request({  
  3.         url : 'GetCasePorjectDistributedData',  
  4.         success : function(response) {  
  5.             xmlData = response.responseText;  
  6.             //alert(xmlData);  
  7.             var strFlashVars = "chartWidth=500&chartHeight=200&debugMode=0&dataXML="+ xmlData+ "";  
  8.             var dis_project_case_panel = new Ext.Panel(  
  9.                     {  
  10.                         width : Glb.outer_center.getWidth() * 0.7,  
  11.                         height : 250,  
  12.                         html : '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' 
  13.                                 +'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' 
  14.                                 + 'width=600 height=250>' 
  15.                                 + '<param name="allowScriptAccess" value="always" />' 
  16.                                 + '<param name="movie" value="/taiji/static/flash/Pie3D.swf" />' 
  17.                                 + '<param name="wmode" value="transparent" />' 
  18.                                 + '<param name="FlashVars" value=' + "\""+strFlashVars+"\"" +'/>' 
  19.                                 + '<param name="quality" value="high" />' 
  20.                                 + '<embed src="/taiji/static/flash/Pie3D.swf" ' 
  21.                                 + 'FlashVars=\"' +strFlashVars    
  22.                                 + '\" quality="high" width=600 height=250 allowScriptAccess="always" type="application/x-shockwave-flash"' 
  23.                                 + 'pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent"/>' 
  24.                                 + '</object>' 
  25.  
  26.                     });  
  27.             dis_project_case_panel.show();  
  28.             outer_center_center.add(dis_project_case_panel);  
  29.             Glb.outer_center.show();  
  30.             Glb.outer_center.doLayout();  
  31.         },  
  32.         failure : function() {  
  33.             Ext.Msg.alert("提示""连接数据库错误或连接超时!");  
  34.         }  
  35.     });  
  36. }  

 

 


本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/751969,如需转载请自行联系原作者

相关文章
|
监控 关系型数据库 MySQL
Nacos架构与原理 - 健康检查机制
Nacos架构与原理 - 健康检查机制
463 0
|
机器学习/深度学习 人工智能 程序员
[AI StoryDiffusion] 创造神奇故事,AI漫画大乱斗!
探索神奇AI项目StoryDiffusion,为您带来一致性连贯的图像和视频创作体验。
[AI StoryDiffusion] 创造神奇故事,AI漫画大乱斗!
|
边缘计算 物联网 5G
5G小基站技术:解决室内覆盖难题
【10月更文挑战第25天】
736 5
|
存储 Java 关系型数据库
学成在线笔记+踩坑(0)——面试问题
介绍你的项目、项目难点、表是怎么设计的?、断点续传是怎么做的?、如何保证任务不重复执行? 、任务幂等性如何保证、分布式锁的三种实现方式
学成在线笔记+踩坑(0)——面试问题
|
机器学习/深度学习 存储 测试技术
从0到1:如何规划一套流量回放自动化测试方案
本文介绍了流量回放自动化测试的完整方法,从企业战略到交付的四个关键环节:Discovery(深度挖掘)、Define(定义目标)、Design(详细设计)和Delivery(交付与反馈)。通过这些步骤,帮助企业优化系统性能和稳定性,确保产品的高质量。
331 4
|
存储 关系型数据库 MySQL
(十五)MySQL命令大全:以后再也不用担心忘记SQL该怎么写啦~
相信大家在编写SQL时一定有一个困扰,就是明明记得数据库中有个命令/函数,可以实现自己需要的功能,但偏偏不记得哪个命令该怎么写了,这时只能靠盲目的去百度,以此来寻找自己需要的命令。
532 28
|
机器学习/深度学习 存储 监控
揭秘微调‘失忆’之谜:如何运用低秩适应与多任务学习等策略,快速破解灾难性遗忘难题?
【10月更文挑战第13天】本文介绍了几种有效解决微调灾难性遗忘问题的方法,包括低秩适应(LoRA)、持续学习和增量学习策略、记忆增强方法、多任务学习框架、正则化技术和适时停止训练。通过示例代码和具体策略,帮助读者优化微调过程,提高模型的稳定性和效能。
568 5
|
小程序 安全 搜索推荐
【微信小程序开发实战项目】——个人中心页面的制作
本文介绍了如何设计和实现一个网上花店的微信小程序,包括个人中心、我的订单和我的地址等功能模块。个人中心让用户能够查看订单历史、管理地址和与客服互动。代码示例展示了`own.wxml`、`own.wxss`和`own.js`文件,用于构建个人中心界面,包括用户信息、订单链接、收藏、地址、客服和版本信息。我的订单部分展示了订单详情,包括商品图片、名称、销量、价格和订单状态,用户可以查看和管理订单。我的地址功能允许用户输入和编辑收货信息,包括联系人、性别、电话、城市和详细地址。每个功能模块都附有相应的WXML和WXSS代码,以及简洁的样式设计。
893 0
【微信小程序开发实战项目】——个人中心页面的制作
|
Kubernetes 应用服务中间件 nginx
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
1112 0
|
存储 前端开发 Java
【源码共读】在前端如何操作 Cookie
【源码共读】在前端如何操作 Cookie
308 1