多sheet应用

  • 文档创建者:文档助手1
  • 编辑次数:21次
  • 最近更新:帆软panda 于 2020-05-18
  • 1. 描述

    多 sheet 报表在实际项目中应用是比较广泛的,相比较于单 sheet 报表,多 sheet 报表一般性功能不会特别的复杂,下面介绍几个多 sheet 里面的典型应用。

    2. 重新加载当前 sheet

    在对当前 sheet 进行编辑的时候,比如说需要点击某个按钮刷新重新加载当前 sheet,如下图所示:

    222

    刷新当前 sheet 会清除当前 sheet 的编辑痕迹,而不影响到其他 sheet。

    打开设计器,选中刷新按钮,为该按钮添加一个点击事件,如下图所示:

    222

     JS 代码为:

    contentPane.reloadCurLGPPane();

    3. 跨 sheet 校验

    在对多 sheet 进行填报的时候,往往需要从其他 sheet 取数参与计算,或者以其他 sheet 的数据为依据,对当前 sheet 的填报数据进行一定的约束,这就是跨 sheet 校验。

    3.1 sheet 校验

    跨 sheet 校验应用在两个方面:提交校验JS 校验

    3.2 提交校验

    在提交数据之前对数据进行校验,例如,当前模板有 2 个 sheet,sheet1 里面的某个数据与 sheet2 里面的某个数据的和必须满足特定条件。

    如下图所示,点击模板>报表填报属性,切换到数据校验标签,添加一个内置校验。

    校验公式为'sheet1'!A2+'sheet2'!B2>1000,校验出错信息为 shee1 的 A2 单元格与sheet2 的 B2 单元格和值太小

    222

    注:校验公式中直接跨 Sheet 取数进行计算,跨 Sheet 取数详细请查看多 sheet 数据计算

    3.3 JS 校验

    使用 JS 对多 sheet 进行校验,原理是将其他 sheet 的数值通过FR取数方法赋值给 JS 里面定义的参数,然后参与校验。

    比如说,在编辑 sheet2 里面的 B2 单元格的时候,如果 sheet1 的 A2 单元格与 sheet2 的 B2 单元格的和小于 1000,则提示警告,如下图所示:

    222

    给 sheet2 的 B2 单元格的控件添加一个编辑结束事件,如下图所示:

    222

    JS 代码为:

    var para=contentPane.getCellValue(0,0,1);//获取sheet1里面的A2单元格数据  
    var value=this.getValue();//获取当前单元格数据  
    var sum=parseInt(para)+parseInt(value);//将字符串转换为整形并求和  
    if(sum<1000){alert("shee1的A2单元格与sheet2的B2单元格和值太小");}

    由上图的 JS 代码可知,在 JS 中进行跨 sheet 校验,获取其他 sheet 的单元格值可通过方法 contentPane.getCellValue(sheet 号,列号,行号); //sheet 号,列号,行号是从 0 开始来获取,详细请参照 填报预览 JS 实例

    4. 多 sheet 相互依赖关系

    在多 sheet 引用中,sheet间存在相互依赖的关系。

    新建 3 个 sheet,将 sheet 分别重命名为 A、B、C,报表设计如下图所示:

    sheet1(重命名为A):

    sheet2(重命名为B):

    注:若在 sheet2 中,见 A2 单元格公式改为='A'!A2,那么sheet1和sheet2就会出现由于依赖关系引发的计算错误,sheet1 和 sheet2 的 A2 单元格都不能显示。

    sheet3(重命名为C):


    点击数据分析预览,效果如下图所示:

    222
    222
    222

    附件列表


    主题: 填报应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!