多sheet应用

编辑
  • 文档创建者:文档助手1
  • 浏览次数:12669次
  • 编辑次数:19次
  • 1. 描述

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

    2. 重新加载当前 Sheet

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

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

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


     JS 代码为:

    contentPane.reloadCurLGPPane();

    3. 跨 Sheet 校验

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

    3.1 Sheet 校验

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

    3.2 提交校验

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

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

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

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

    3.3 JS 校验

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

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


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


    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):


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



    附件列表


    主题: 填报应用
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]