隐藏行导致分栏报表数据展示不正确的解决方法
分栏报表,是针对设计的报表列数比较少,实现一页展现多栏的情况。
当数据中有些是客户所不需要或者不想在页面中进行展示的,如下图:
这条记录是空记录,需要将其隐去,if(A6==null,true,false),但是如果设置隐藏行,会出现以下效果:
不仅为空的数据隐藏掉了,地点为”纯净水”这条记录也不见了,这个是由于分栏将这条记录和空记录在一行显示,由于隐藏行的控制,将这条记录也隐藏掉了,所以解决这个问题的方法就是不在界面做隐藏行,而是转为在对数据集取数的时候直接把空记录或者不想要的记录过滤掉,比如上面的例子,原来的写法是=ds1.group(JCD_NAME,false),在这里进行过滤将为空的数据过滤掉:=ds1.group(JCD_NAME,false,JCD_NAME!=null),这样就可以正常展示报表了。
这样,没有的数据就又出来了。
从这个问题可以看出如果设置报表的隐藏行列,那么这一行列的所有内容就都会隐藏掉,有时候会造成对其他单元格不必要的影响,所以在遇到这种需要某些数据不显示的情况,可以先考虑把数据在sql里或在页面取数时就过滤掉,这样不仅能够提高效率,而且减少了相应的控制,也是一种技巧,同时也可以使用单元格可视的这个属性,具体的就要根据需求来选择相应的方法。