图表优化

作者: shallwego_ | 来源:发表于2017-03-14 11:24 被阅读8次

    1.进入页面默认显示柱状图。选择柱状图type后,更改日期默认显示之前type的柱状图。

    在js中设置全局变量var tp="mzrc";
    初始化函数中调用柱状图函数showColumn(tp),
    在showColumn函数中将每次调用时是哟给你的动态参数赋值给tp。

    var tp="mzrc";

    $(document).ready(function() {
      .......   
      data_query();
    });

    function data_query(){
      .......
      showColumn(tp);
    });
    }

    function showColumn(type){
      tp=type;
      ......
    });
    }

    js中定义全局变量有以下三种方法

    1.在js的function外定义一个变量

    var name='测试';
    function XX(){
      alert(name);
    }

    2.不使用var,直接给定义变量,隐式的声明了全局变量

    name='测试';
    function XX(){
      alert(name);
    }

    这种方法,即使该变量是在一个function内,当该function被执行后它变成了全局变量 ---- 但是function不执行它就不被其他function知道,所以最好定义在function外。

    3.使用window.变量名定义为全局变量。但是要注意:调用时候建议写上window.变量名,当然也可以不写;我们常用的document.getXXX的document对象就是window的。

    window.name='测试';
    function XX(){
      alert(window.name);
    }

    全局变量的优点:

    可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。

    全局变量的缺点:

    (1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。
    (2)全局变量破坏了函数的封装性能。函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性。
    (3)全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。因此,如果不是万不得已,最好不要使用全局变量。


    2.更改费用的单位为万元。

    设置一个BigDecimal类型的临时变量,使用BigDecimal的divide方法。

    BigDecimal jcfy_temp = (BigDecimal) map.get("JCFY");
    **jcfy = jcfy_temp.divide( new BigDecimal(10000) , 2 , RoundingMode.HALF_UP ).toString() ; **

    DecimalFormat对数值格式化的舍入问题——RoundingMode


    3.下钻表格显示选择日期及之前一年的数据,按时间正序。

    string转换成int型 :

    cast('字符串型数字' as int)

    sql 截取字符串 :

    substring('要截取的字符串','开始截取的索引',截取的个数)

    String date1=(Integer.parseInt(nf_id.substring(1, 5))-1)+sj_id.substring(3,5); //201601
    String date2=nf_id.substring(1, 5)+sj_id.substring(3,5); //201701

    String sql="from TbCubeDxsbtj where yljg_id=?
    **and ****substring(NF_ID,2,4)+substring(SJ_ID,4,2)>=?
    **and **substring(NF_ID,2,4)+substring(SJ_ID,4,2)<=?
    **order by **substring(NF_ID,2,4)+substring(SJ_ID,4,2)";

    Query query=this.getSession().createQuery(sql);
    query.setParameter(0, yljgdm);
    query.setParameter(1, date1);
    query.setParameter(2, date2);

    相关文章

      网友评论

        本文标题:图表优化

        本文链接:https://www.haomeiwen.com/subject/zbcqnttx.html