历史版本4 :JS实现分组内单元格无边框 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
在设计分组报表的时候,希望相同分组内的报表没有边框,不同分组之间有边框,如下图(左边是原本格式,右边是需求格式):
2. 解决方案编辑
利用条件属性或者js来控制边框显示与否
3. 示例编辑
3.1 方法一(使用条件属性)
3.1.1 添加数据集
新建模板,添加数据集ds1,sql语句为:SELECT 地区,销售员,产品||'(销量)'||销量 as 业绩 FROM 销量 where 地区='华东'
3.1.2 模板设置
将数据拖入对应的单元格中,模板设置如下:
3.1.3 计算组内单元格数量
首先将C2单元格的上下边框设置为无
选中D2单元格,设置左父格为销售员(B2),并写上逐层累计公式:COUNT(C2) + D2[B2:-1],累计业绩(C2)的条数,然后隐藏D列。
注:D2[B2:-1]表示获取上一个B2单元格所对应的D2的值。
3.1.4 设置条件属性
选择C2单元格,右击添加条件属性,设置边框样式为“右下”,公式为ROW()=D2+1 ,表示组内的最后一行加上“右下”的边框
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属性>分页预览设置,为该模板单独设置,并添加加载结束事件,如下所示:
$("[id^=D]").each(function(){
$("#r-"+$(this).text()+"-0").css("border-bottom","1px solid black");
})
注:表示找到D2单元格中值对应那行,添加下边框;[id^=D] 表示选中D列单元格
3.2.3 保存预览
保存模板,分页预览,效果如上图。