主子报表实现多表拼接任务中需要关注的问题

问题描述:

有一次在现场给客户做了一个主子报表,结合之前项目中同样的主子表使用模式,感受到主子报表的办法在实际使用过程中存在开发效率瓶颈,其所适合的用户场景是会受到限制的,下面结合例子对该问题给以说明:

大唐兴竹实现的主子报表结果页面和设计页面:

上图是结果页面



上图是设计界面

虽然该主子表满足了客户的要求,但是修改子表样式的调整主表布局占用了半天的时间,从设计界面可以看出,该表使用了8个子报表,因为子表数量多,问题也就出来了,这八个表并非是同高同宽简单对齐的,彼此大小不一,而且要考虑排布各子表标题,这时候主表设计界面的格子排布就成为一个很耗工作量的任务。

在设计过程中出现的问题有:

1 因为子表大小不一,要根据子表的大小在主表中设置合并格,调整格子的长宽。

2 为了页面上的统计图和表格不受挤压,需要频繁在单元格的尺寸调整方式(按单元格内容不变,按设计尺寸不变)中多次切换。

3 使用了多个行向/纵向的合并格之后,会出现子表标题栏的长宽因为其同行/同列的合并格大小变化而难以调整,找到影响其变化的格子比较费时间。

2 问题分析:

总结这次任务的完成经历:以后要更加重视主子报表在实际应用场景中的使用范围,它比较适合子报表比较少(<4个)或者子表同高/同宽的情况(要注意的是单纯的主子报表中是不可能出现滚动条的)。在之前的项目中定义了4个子表的情况主子表的设计还是比较简便的,但是子表超过4个之后,主子表布局上的工作开始变得复杂。


上图是之前财政项目初期的主子表截图

3 解决办法:

针对上文中提到的子表个数比较多且长宽不等的情况,好一点的解决办法是通过页面上窗口技术来解决,可以使用类似脚本窗口对象的方式对各报表进行精确定位,而且页面上窗口的大小可随时调整并且具备滚动条功能,可以很好解决上述问题。单纯在页面的解决方法可以参见report4web例子中dhtmlx实现窗口的效果;

上图是dhtmlx脚本对象封装的窗口效果

至于产品级别的解决方案需要了解新产品DASHBOARDS产品的功能。

热门文章