分组内单元格无边框

编辑
  • 文档创建者:axing
  • 浏览次数:3127次
  • 编辑次数:5次
  • 最近更新:Leo.Tsai 于 2019-07-19
  • 1. 描述

    在设计分组报表的时候,希望相同分组内的报表没有边框,不同分组之间有边框,如下图所示(左边是源格式,右边是需求格式):

    222

    2. 解决方案

    利用条件属性或者 JS 来控制组内边框显示与否。

    3. 示例

    3.1 设置条件属性去组内边框

    3.1.1 添加数据集

    新建模板,添加数据集 ds1,SQL 语句为 SELECT 地区,销售员,产品||'(销量)'||销量 as 业绩 FROM 销量 where 地区='华东'

    222

    3.1.2 模板设置

    将数据拖入对应的单元格中,模板设置如下:

    222

    3.1.3 计算组内单元格数量

    首先去掉 C2 单元格的上下边框,保留左右边框。

    222

    选中 D2 单元格,设置左父格为销售员 (B2),并写上逐层累计公式 COUNT(C2) + D2[B2:-1],累计业绩 (C2) 的条数,然后隐藏 D 列。

    注:D2[B2:-1] 表示获取上一个 B2 单元格所对应的 D2 的值。

    222

    3.1.4 设置条件属性

    选择 C2 单元格,点击条件属性>添加条件>属性>边框>编辑,只添加右下边框,如下图所示:

    1.png

    公式条件的类型选择公式,添加公式为 ROW()=D2+1 ,表示组内的最后一行加上右下边框,如下图所示:

    222

    3.1.5 保存预览

    保存模板,分页预览,效果如描述中所示。

    已完成的模板,可参见%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\GroupReport\分组内单元格无边框.cpt

    3.2 添加 JS 代码去组内边框

    3.2.1 选择模板

    以上述已完成的模板为例,删掉 C2 单元格的条件属性。

    3.2.2 添加加载结束事件

    选择模板>模板web属性>分页预览设置,为该模板单独设置,并添加加载结束事件,如下图所示:

    222

    $("[id^=D]").each(function(){  
       $("#r-"+$(this).text()+"-0").css("border-bottom","1px solid black");  
    })

    注:代码表示找到 D2 单元格中值对应那行,添加下边框,其中[id^=D] 表示选中 D 列单元格。

    3.2.3 保存预览

    保存模板,分页预览,效果如描述中所示。

    附件列表


    主题: 设计思路
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

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

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