zoukankan      html  css  js  c++  java
  • Hyperion Planning 表单数据验证功能实现

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/ArsenalerCode/article/details/9404649

    用户需求

    在进行年度预算编制时,用户提出将预算数据进行分解时,加入表单数据验证的需求,即在预算数据分解时,分解后数据之和要满足与预算总数指定的逻辑关系,数据才能写入essbase数据库,否则,在该表单弹出提示信息,数据不进行保存。

    需求分析

    用户需求在指定的表单,在数据录入完成后,点击保存按钮时,进行数据的逻辑校验,符合逻辑,数据写入essbase,同时触发EAS业务规则;不符合逻辑,弹出提示框,数据不写入essbase,不触发EAS业务规则。

    需求实现

    修改EPM的服务器安装目录下自定义的ValidateData.js文件。可参考ValidateDataHelper.js和SampleValidateData.js。修改完ValidateData.js后,重启所有planning服务。

    功能实现的环境信息如下:

    EPM版本 Enterprise Performance Management System 11.1.1.3
    服务器OS Microsoft Windows Server 2003 R2 Enterprise Edition Service Pack 2
    文件路径 EPM安装盘符:HyperiondeploymentsWebLogic9serversHyperionPlanningwebappsHyperionPlanningcustomValidateData.js

    红色背景单元格数据为承接数据,绿色背景数据为用户录入数据。

    以上图为例:FY13年品牌合计-预算销售数量为100万;用户录入分解后到品牌-型号的数据之和为44万,低于预算总值100万,当用户点击保存按钮时,会弹出提示框,告知用户预算数据不符合指定的偏差度,需要重新进行分解,该数据不会写入essbase。

    实现代码:

    ///////////////////////////////
     
    // 函数类型:系统已定义
     
    // 创建者:
     
    // 创建日期:
     
    // 功能:在用户点击保存按钮时触发,根据返回bool值判定是否将数据写入essbase
     
    // 参数:无
     
    ///////////////////////////////
     
    function validateForm()
     
    {
     
             var valid = true;
     
             if (equalsIgnoreCase(applicationName,"年度预算"))
     
             { 
     
                       if (equalsIgnoreCase(formName,"0101-07品牌销量预算"))
     
                       {
     
               var val1=sumAreaVal(5,currentDataGrid.endRow,6,8);
     
               var val2=getCellVal(3,5);
     
               valid=compareVal(val1,val2,"FY13");
     
               
     
                       }
     
             }
     
             return valid;
     
    }
     
    //////////////////////////////////////////
     
    // 函数类型:用户自定义函数
     
    // 创建者:shin
     
    // 创建时间:2013-1-5
     
    // 功能:对指定区域的连续单元格数据进行求和
     
    // 参数:startRow区域开始行;endRow 区域结束行;startCol区域开始列;endCol 区域//结束列
     
    //////////////////////////////////////////
     
    function sumAreaVal(startRow,endRow,startCol,endCol)
     
    {
     
    var sumAllVal=0;
     
    var row;
     
    var col;
     
    for(row=startRow;row<=endRow;row++)
     
    {
     
     for(col=startCol;col<=endCol;col++)
     
     {
     
        var nowval=getCellVal(row,col);
     
             if(isNaN(nowval)==false)
     
        {
     
             sumAllVal=sumAllVal+getCellVal(row,col);
     
             //alert("now sumAllVal is "+"("+row+","+col+")"+getCellVal(row,col));
     
             }
     
     }
     
    }
     
    //alert("sumALLVal的值为"+sumAllVal);
     
    return sumAllVal;
     
    }
     
    ////////////////////////////
     
    // 函数类型:用户自定义函数
     
    // 创建者:shin
     
    // 创建时间:2013-1-5
     
    // 功能:比对2个数值的大小
     
    // 参数:val1分解后数据之和;val2 预算总值;year提示用户存在问题的年份
     
    ////////////////////////////
     
    function compareVal(val1,val2,year)
     
    {
     
        var valid=true
     
             if(isNaN(val1)==true || isNaN(val2)==true)
     
             {
     
                       alert("请确保预算总值和分解后数值同时存在数据");
     
                       valid=false;
     
             }
     
             else
     
             {
     
                       if(Math.abs(val1-val2)>=1)
     
                       {
     
                                alert("分解数总和与预算合计数不相等,请修改数据,该数据不会被写进数据库"+"
    "+"存在问题的年份为:"+year);
     
                                valid=false;
     
                       }
     
             }
     
             return valid;
     
    }
    

    ————————————————

  • 相关阅读:
    javaWeb学习总结(7)-会话之session技术
    javaWeb学习总结(6)- 会话之cookie技术
    javaWeb学习总结(5)- HttpServletRequest应用
    javaWeb学习总结(4)- HTML 关于head中的<meta>标签
    javaWeb学习总结(4)- HttpServletResponse
    javaWeb学习总结(3)- Servlet总结(servlet的主要接口、类)
    javaWeb学习总结(3)- Servlet基础
    java 上传3(uploadify中文api)
    java 上传2(使用java组件fileupload和uploadify)
    java 上传1(使用java组件fileupload)
  • 原文地址:https://www.cnblogs.com/Codebee-club/p/11651464.html
Copyright © 2011-2022 走看看