专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 图形/图像

行业税利指标分析图形显示修改

发布时间:2011-06-27 20:24:40 文章来源:www.iduyao.cn 采编人员:星星草
行业税利指标分析图形展示修改

需求说明:将行业税利指标分析的税金、利润图形分开,并加上一个税利合计,并按单选按钮形式显示这三个的相应图形。

原界面:原图.png

 

目标界面:目标1.png

          目标2.png

          目标3.png

主要改动文件:

ZJ_Produce_AnalyseAction.javataxshow()方法:

public ActionForward taxshow(ActionMapping mapping, ActionForm form,
  HttpServletRequest request, HttpServletResponse response) throws Exception {
   DynaActionForm aForm = (DynaActionForm) form;
 if(aForm.get("beginYear")==null || aForm.get("beginYear").equals("")){
  
    aForm.set("beginYear", MethodFactory.getCurrentYear());
  
 }
 if(aForm.get("beginMonth")==null || aForm.get("beginMonth").equals("")){
  
    aForm.set("beginMonth", "04");
   
  }
 CallHelper helper = initializeCallHelper("getTaxIndexAnalyseShow", form, request, false);
 helper.execute();
 request.setAttribute("result.List",helper.getResult(1));
 request.setAttribute("caption.List",helper.getResult(0));
 List ret1=helper.getResult(2);
 String values1="";
 String values2="";
 if (ret1 != null && ret1.size() > 0) {
  for (int i = 1; i < ret1.size(); i++) {
   BasicDynaBean bean2 = (BasicDynaBean) ret1.get(i);
   values1=values1+i+MethodFactory.getThisString(bean2.get("name")).substring(0, 2)+","
   +MethodFactory.getThisString(bean2.get("taxbq"))+","
   +MethodFactory.getThisString(bean2.get("pbq"))+";";
   values2=values2+i+MethodFactory.getThisString(bean2.get("name")).substring(0, 2)+","
   +MethodFactory.getThisString(bean2.get("pbq"))+";";
  }
 } 
 request.setAttribute("values1",values1);
 request.setAttribute("values2",values2);
 
 
 return mapping.findForward("taxshow");
 }

 

ChartObjest.js对应方法:

ChartObject.prototype.createStackedColumn2DXml=function(values,caption)
 {
 var xmlstr = this.getTitleString();
 var values1 = values.split(";");
 var caption1=caption.split(",");
 var dataset =new Array();
 var color="F984A1,A66EDD,8BBA00,F6BD0F,AFD8F8";
 var colors=color.split(",");
 var datasetall="";
 var tempstr="";
 var lables="";
 for(i=0;i<caption1.length;i++)
 /*How many datasets*/
  {
  tempstr="";
  if(i<5)
  dataset[i]="<dataset seriesName='"+caption1[i]+"' showValues='1' color='"+colors[i]+"' >";
  else
  dataset[i]="<dataset seriesName='"+caption1[i]+"' showValues='1'>";
 
  for(j=0;j<values1.length;j++)
  {
  var values2=values1[j].split(",");
  if(i==0) lables=lables+"<category label='"+values2[0]+"' />";
  tempstr=tempstr+ "<set value='" +values2[i+1]+"' />";
  }
   dataset[i]=dataset[i] +tempstr+"</dataset>";
   datasetall=datasetall+dataset[i];
  }
  xmlstr=xmlstr+"<categories>"+lables+"</categories>"+datasetall+"</chart>";
  return xmlstr;
 }

 

 

 

 

 

 

ZJ_TaxIndexShow.jsp

<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/zl-html"  prefix="select" %>
<%@ taglib uri="/struts-bean"   prefix="bean" %>
<%@ taglib uri="/struts-html"   prefix="html" %>
<%@ taglib uri="/zl-grid" prefix="grid"%>
<%@ page import="com.publicConstValue"%>
<HTML>
<style>
<!--
.content {color: #FF0000 }
-->
</style>
<HEAD>
<TITLE><%=publicConstValue.getInstance().getSystemName()%></TITLE> 
</HEAD>
<
%@include file="/common/Common.jsp"%>
<link type="text/css" rel="stylesheet" href=<select:link page="/css/main.css"></select:link>>

<link type="text/css" rel="stylesheet"
 href=<select:link page="/tabpane/standard.css"/>></link>
<script type="text/javascript"
 src=<select:link page="/tabpane/standard.js"/>></script>
<script language="javaScript">
parent.document.all["showform"].disabled= false;
 window.onload = function showChart(){
      
  showChart1(0);
    }
 function showChart1(type){
  var allvalue='<%=request.getAttribute("values1")%>';
        var taxvalue='<%=request.getAttribute("values2")%>';
  var codename = '';
  var caption = '';
        var chartObj = new ChartObject();
  var caption="";
  var xmlString="";
  chartObj.useRoundEdges='1';
   if (type=='0')
   { caption="税金,利润";
     chartObj.caption="税利合计";
     xmlString = chartObj.createStackedColumn2DXml(allvalue,caption);
    }
   else
        if (type=='1') { caption="税金"; chartObj.caption="税金"; xmlString= chartObj.createStackedColumn2DXml(allvalue,caption);}
        else { caption="利润";chartObj.caption="利润"; xmlString= chartObj.createStackedColumn2DXml(taxvalue,caption);}
    var chart = new FusionCharts("Charts/StackedColumn2D.swf", "ChartId3", "950", "350", "0", "0");
    chart.setDataXML(xmlString);
    chart.render("chartDiv1");
   }
 
 
</script>
<BODY>
<html:form action="/ZJ_Produce_AnalyseAction.do?method=taxshow">
    <html:hidden property="beginYear"/>
    <html:hidden property="beginMonth"/>
    <html:hidden property="information"/>
     <html:hidden property="temp1"/>
 <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
 <tr>
  <td>
   <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
           <TBODY>
            <TR>
               <TD class=tab-on align=center id=navcell  name="navcell" onclick=switchCell(1)> 数据展示 </TD>
               <TD class=tab-off align=center id=navcell name="navcell" onclick=switchCell(2)> 图形展示</TD> 
                            
               <TD class="tab-none">&nbsp;</TD>
              
       </TR>
           </TBODY>
         </table>
   <!-- 每个TAB开始 -->
   <TABLE class=tab-content id=tb cellSpacing=5 cellPadding=0 width="100%" height="100%" border=0 name="tb">
    <TR>
     <TD vAlign=top align="left">
                         <grid:gridreport reportcaption="行业税利指标分析" property="sheetgrid" collection="result.List" caption="caption.List" merge="true" mergetype="0" height="100%" width="100%" serial="true"  />
     </TD>
    </TR>
   </TABLE>
   <!-- 每个TAB开始 -->
   <TABLE class=tab-content id=tb cellSpacing=5 cellPadding=0 width="100%" height="100%" border=1 name="tb">
        <tr valign="top" height="4%">
                <td colspan="2"><input type=radio name="queryoption"  checked="checked" onclick="showChart1('0')">税利合计
                    <input type=radio name="queryoption"  onclick="showChart1('1')">税金
                    <input type=radio name="queryoption"  onclick="showChart1('2')">利润
                  
                 
                    <!-- 
                     <input   type=button  class="btn"  name="query" value="隐藏报表"  onclick="hide()"></input>
                   -->
                </td>
               
             </tr>
    <TR>
     <TD> 
                <div  id="chartDiv1" ></div>                
     </TD>
    </TR>
   </TABLE>
   
  
  </td>
 </tr>
</table> 
 
</html:form>
<script language="javaScript">

</script>
</BODY>
</HTML>

 

 

 另外还有相关存储过程文件:


DROP PROCEDURE  G_getTaxIndexAnalyseShow
@

CREATE PROCEDURE G_getTaxIndexAnalyseShow
(
 IN v_year     int,
 IN v_month  int

)
    LANGUAGE SQL
    DYNAMIC RESULT SETS 3

BEGIN

    DECLARE SQLCODE INT;
    DECLARE SQLSTATE CHAR(5);
    DECLARE v_errCode INT DEFAULT 0;
    DECLARE v_errState CHAR(5) DEFAULT '00000';
 DECLARE v_rows int DEFAULT 5;
 DECLARE v_begintime int;
 DECLARE v_endtime int;
 DECLARE v_tqbegintime int;
    DECLARE v_tqendtime int;
 DECLARE not_found CONDITION FOR '02000'; -- 没有数据,游标结尾定义
 --------------------
    -- DECLARE ERROR HANDLERS
    --------------------
    SET v_begintime=v_year*100+1;
    SET v_endtime=v_year*100+v_month;
    SET v_tqbegintime=v_begintime-100;
    SET v_tqendtime=v_endtime-100;   
    --标题
 DECLARE GLOBAL TEMPORARY TABLE captions
 (
  caption     VARCHAR(200),
  width  INT,
  property VARCHAR(40),
  format  VARCHAR(20),
  fixcol  INT,
  align  VARCHAR(20),
  ordertag    int,
  lable  VARCHAR(20),
  isreturn  VARCHAR(10),
  TYPE       VARCHAR(10)
 ) ON COMMIT PRESERVE ROWS WITH REPLACE NOT LOGGED;
 
 
 DECLARE GLOBAL TEMPORARY TABLE results
 (
       code   VARCHAR(10),
       name   VARCHAR(100),
       ordertag  VARCHAR(20),
       pamtbq        decimal(19,2),  --本期自产产量
       pamttq        decimal(19,2),  --同期产量
       samtbq        decimal(19,2),  --本期销量
       samttq        decimal(19,2),  --同期销量
       hjbq        decimal(19,2),  --本期税利合计
       hjtq        decimal(19,2),  --同期税利合计
       ratio1      decimal(19,2),--增幅
       ratio2      decimal(19,2), --%
       taxbq        decimal(19,2),  --本期税金
       taxtq        decimal(19,2),  --同期税金   
       ratio3      decimal(19,2),
       ratio4      decimal(19,2),
       pbq        decimal(19,2),  --本期利润
       ptq        decimal(19,2),  --同期利润
       ratio5      decimal(19,2),
       ratio6      decimal(19,2)
 ) ON COMMIT DELETE ROWS WITH REPLACE NOT LOGGED;
 
 

 INSERT INTO  session.results(code,name,ordertag,pamtbq,pamttq,samtbq,samttq,hjbq,hjtq,taxbq,taxtq,pbq,ptq)
 SELECT a.code,b.name,b.ordertag,a.pamtbq,a.pamttq,a.samtbq,a.samttq,c.hjbq,c.hjtq,c.taxbq,c.taxtq,c.pbq,c.ptq
 FROM (
    select  CASE WHEN a.industrycode IN ('12530401','12530104') THEN '20530001' ELSE a.industrycode END AS code,
                       sum(CASE WHEN a.monthid between v_begintime and v_endtime THEN produce_amount END)/5.0 AS pamtbq,
                       sum(CASE WHEN a.monthid between v_tqbegintime and v_tqendtime  THEN produce_amount END)/5.0 AS pamttq,
                       sum(CASE WHEN a.monthid between v_begintime and v_endtime THEN sale_amount END)/5.0 AS samtbq,
                       sum(CASE WHEN a.monthid between v_tqbegintime and v_tqendtime  THEN sale_amount END)/5.0 AS samttq
    from V_TZ_IN_Y_Q_M_P_D_ALL_B a left join g_tobacco b on a.tobacode=b.tobacode
    WHERE (a.monthid between v_begintime and v_endtime OR a.monthid between v_tqbegintime and v_tqendtime)
    and b.importflag=0
    GROUP BY CASE WHEN a.industrycode IN ('12530401','12530104') THEN '20530001' ELSE a.industrycode END
  )a  left join
 (SELECT DISTINCT indgroupcode,CASE indgroupname WHEN '浙江中烟' THEN '<font color=red>浙江中烟</font>' ELSE indgroupname END AS name,ordertag FROM g_industry ) b ON a.code=b.indgroupcode
 left join (   select  COMPCODE, sum(CASE WHEN a.monthid = v_endtime THEN TAX END) AS taxbq,
                       sum(CASE WHEN a.monthid = v_tqendtime THEN TAX END) AS taxtq,
                       sum(CASE WHEN a.monthid = v_endtime THEN PROFIT END) AS pbq,
                       sum(CASE WHEN a.monthid = v_tqendtime THEN PROFIT END) AS ptq,
                       sum(COALESCE(CASE WHEN a.monthid = v_endtime THEN tax END,0))+ sum(COALESCE(CASE WHEN a.monthid = v_endtime THEN profit END,0))AS hjbq,
                       sum(COALESCE(CASE WHEN a.monthid = v_tqendtime THEN tax END,0)) +  sum(COALESCE(CASE WHEN a.monthid = v_tqendtime THEN profit END,0))AS hjtq  
       from F_ALLCOMPFINANCE_TAX a WHERE (a.monthid=v_endtime OR a.monthid=v_tqendtime ) AND a.flag=1
       GROUP BY a.compcode
 ) c ON a.code=c.compcode;
     --合计
   INSERT INTO  session.results(code,name,ordertag,pamtbq,pamttq,samtbq,samttq,hjbq,hjtq,taxbq,taxtq,pbq,ptq)
   SELECT '0','<font color=red>合计</font>','0',sum(pamtbq),sum(pamttq),sum(samtbq),sum(samttq),sum(hjbq),sum(hjtq),sum(taxbq),sum(taxtq),sum(pbq),sum(ptq)
   FROM session.results;
   UPDATE session.results r SET
                               r.ratio1=r.hjbq-r.hjtq,
                               r.ratio2=CASE  r.hjtq WHEN 0 THEN 0 ELSE (r.hjbq-r.hjtq)/r.hjtq*100 END,
                               r.ratio3=r.taxbq-r.taxtq,
                               r.ratio4=CASE  r.taxtq WHEN 0 THEN 0 ELSE (r.taxbq-r.taxtq)/r.taxtq*100 END,
                               r.ratio5=r.pbq-r.ptq,
                               r.ratio6=CASE  r.ptq WHEN 0 THEN 0 ELSE (r.pbq-r.ptq)/r.ptq*100 END;
  INSERT INTO SESSION.captions(caption,width, property, format, fixcol, align, ordertag,TYPE,isreturn)
      VALUES('code',0,'code',' ',1,'left',110,'lable','true'),
      ('单位',100,'name',' ',1,'left',112,'lable','false'),
      ('累计产量(自产)##本期',75,'pamtbq',' ',0,'right',113,'lable','false'),
      ('累计产量(自产)##同期',75,'pamttq',' ',0,'right',114,'lable','false'),
      ('累计销量##本期',75,'samtbq',' ',0,'right',115,'lable','false'),
      ('累计销量##同期',75,'samttq',' ',0,'right',116,'lable','false'),
      ('税利合计##本期',75,'hjbq',' ',0,'right',117,'lable','false'),
      ('税利合计##同期',75,'hjtq',' ',0,'right',118,'lable','false'),
      ('税利合计##增减量',75,'ratio1',' ',0,'right',119,'lable','false'),
      ('税利合计##增幅%',75,'ratio2',' ',0,'right',120,'lable','false'),
      ('税金##本期',75,'taxbq',' ',0,'right',121,'lable','false'),
      ('税金##同期',75,'taxtq',' ',0,'right',122,'lable','false'),
      ('税金##增减量',75,'ratio3',' ',0,'right',123,'lable','false'),
      ('税金##增幅%',75,'ratio4',' ',0,'right',124,'lable','false'),
      ('利润##本期',75,'pbq',' ',0,'right',125,'lable','false'),
      ('利润##同期',75,'ptq',' ',0,'right',126,'lable','false'),
      ('利润##增减量',75,'ratio5',' ',0,'right',127,'lable','false'),
      ('利润##增幅%',75,'ratio6',' ',0,'right',128,'lable','false');
 BEGIN
        DECLARE v_captionCur CURSOR WITH RETURN TO CALLER FOR
      SELECT * FROM session.captions  ORDER BY ordertag;
     DECLARE v_resultCur  CURSOR WITH RETURN TO CALLER FOR
         SELECT * FROM session.results ORDER BY ordertag ;
        
   DECLARE v_resultCur1  CURSOR WITH RETURN TO CALLER FOR
         SELECT CASE code WHEN '20330001' THEN '浙江中烟' ELSE  name END  AS name,taxbq ,pbq  FROM session.results WHERE code <> '0'  ORDER BY (taxbq+pbq) desc;
        OPEN  v_captionCur;
   OPEN  v_resultCur;
   OPEN  v_resultCur1;
     END;
   RETURN v_errCode;
  
END @

 

 

知识点:

1FusionCharts

2getElementsByName('delID')返回的是所有name 属性为delID的所有元素 是一个数组 
document.getElementsByName()
document.getElementById() document.getElementsByTagName()的区别是什么?

document.getElementsByName()
根据name 属性的值来得到元素 是一个数组 
document.getElementById()
根据id 属性的值来得到元素 ,是唯一的 
document.getElementsByTagName()
根据控件的type 属性 来得到元素, 是一个数组 

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: