历史版本1 :[通用]两种方案助你解救移动端复杂报表 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

现在有许多复杂报表,一般有两种类型:
1、所有列是同一维度的数据,比如是时间维度,一年12个月;
2、不同的列是不同维度的数据,是对“地区”、“供应商”、“雇员”三个维度的分析。
在移动端,这些报表不能很好的自适应,这时我们可以选用两种替代方案来改善这些灾难效果。

2. 实现思路编辑

对于第一种类型,可以采用横屏查看,或者减少行数,或者可以设置表头冻结显示、 竖屏纵向自适应,通过左右滑动来查看,实现方式参考帮助文档:移动端自适应
对于第二种类型,可以采用APP界面的设计思路,将分析维度与表格主体拆分开来,通过点击不同维度名称查看不同维度的数据。

3. 详细说明编辑

方法一:表单联动

打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\demo\basic\Freeze.cpt

新建表单,拖入一个报表块,将Freeze.cpt中的内容复制到该报表块中,设置重复标题行和冻结属性,再拖入一个报表块,用于参数的控制,具体模板设计样式如下:

222
上面的报表块用于参数的控制,下面的报表块用于数据的呈现;报表块之间的参数联动,控制主报表列的隐藏。从而达成:点击维度名称,切换查看内容的效果。

给上面报表块的单元格设置条件属性,A1单元格"地区"设置公式$type=1,当类型=1的时候,背景和字体改变,B1~D1单元格也分别设置条件属性,分别设置为$type=2$type=3$type=4

222

下面的报表块给3-4行设置重复标题行,并设置冻结属性,点击工具栏上的冻结按钮,弹出重复与冻结设置,选择重复标题列从第A列至第B列,如下图所示:
222

分别给C3,E3,G3设置条件属性,即当类型不为1时,将隐藏地区所在的列,如下图所示:
222

这样在表单报表块中,单一维度的数据就可以只通过上下滑动来显示,展现效果大大提升,示例中除了不同维度的数据,还提供了全部显示的方式,全量的数据可以通过上下左右滑动来显示。实际效果如下:

222

方法二:tab组件

针对数据维度创建tab组件,在tab块内创建报表块,将原先的报表内容直接复制到新建的报表块内,删除掉非当前维度的数据列。报表样式设计如下图所示:
222

给报表块设置冻结属性,可参考方法一中的方式进行设置。

实际展示效果如下:

222

注:tab组件需要使用H5解析,相关版本支持请参考帮助文档:表单支持html5方式解析

同样,在表单报表块中,单一维度的数据就可以只通过上下滑动来显示,全量的数据可以通过上下左右滑动来显示。

模板可下载参考两种方案祝你解救移动端复杂报表

4. 两种效果优势对比编辑

从工作量上来说,两种方式差别不大,表单联动方式中使用了参数联动和报表隐藏,tab组件方式增加了多个新建报表块的工作,由于我们支持表单组件和报表块内容的复用,因此操作比较简单。
方法一:表单联动

优势:可以按照自己的喜好设置维度切换的效果,并且采用原生解析,不会损失APP自带功能。
缺陷:只有一个展示框,不同宽度的展示内容不能采用单一的竖屏横向自适应来解决,需要略微调整报表宽度,维度比较多的时候切换的效果有缺陷,刷新上面的报表块会直接从最左边显示,切换的效果就显示不出来了。

方法二:tab组件

优势:不同维度有不同的报表块,可以针对列数多少分别设置竖屏的自适应方式,更加合理。
缺陷:tab组件需要H5解析,暂时不支持收藏、批注分享等功能。