报表展现方法和装置的制作方法

文档序号:6605153阅读:137来源:国知局
专利名称:报表展现方法和装置的制作方法
技术领域
本发明涉及报表数据的展现,具体而言,涉及一种报表展现方法和装置。
背景技术
RIA(Rich Interface Applications,富界面应用)技术作为提升用户体验的利 器,大规模应用在SAAS(Software as a Service,软件即服务)产品中。RIA主要有以下特点在消息确认和格式编排方面提供互动用户界面;在无刷新 页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop) 以及在线和离线操作能力;立即部署、跨平台、采用逐步下载来检索内容和数据以及可以充 分利用被广泛采纳的互联网标准;实时互动的声音和图像。目前主流 SAAS 产品主要采用基于 AJAX (AsynchronousJavaScript and XML, 一种 创建交互式网页应用的网页开发技术)和JS0N(JavaScript Object Notation,一种轻量 级的数据交换方式)机制的RIA技术来构建前端界面,AJAX通过XML HTTP Request (可扩 展标记语言超文本传输协议请求)对象发送请求,服务器返回JS0N格式的数据,通过解析 JS0N的方式生成HTML (HypertextMark-up Language,超文本标记语言),其性能瓶颈不容 忽视。以财务类SAAS产品为例,用户在查询类似明细账这类大数据量报表时,前台响应 时间非常长,当数据达到一定规模后,浏览器会长时间停留在无响应状态,对用户来说这是 一个致命的缺陷。传统分页固然能解决该问题,但是对于报表这种格式固定的内容来说,分 页会给用户带来糟糕的体验,更是与Web2. 0所倡导的理念背道而驰,是不可取的。其中,主要问题原因如下1.JS0N解析效率如果后台返回500行数据,则AJAX取回来的JS0N有600多k,解析起来大概需要 8s。2.布局渲染器渲染效率如果显示的数据有10列,则前台需要渲染500*10 = 5000个单元格,页面的 DOM (Document Object Model,文档对象模型)元素数量呈数量级上升。对浏览器是一个很 大的考验。因此,需要一种新型的报表展现方式,能够解决上述的响应时间过长的问题,不影 响用户的使用。

发明内容
本发明所要解决的技术问题在于,提供一种新型的报表展现方式,解决JS0N解析 效率和布局渲染器渲染效率带来的响应时间时间过长的问题,以满足用户的使用。有鉴于此,本发明公开了一种报表展现方法,包括步骤102,设置每次读取的数 据行的缓存行数;步骤104,监听滚动条按钮的移动;步骤106,在所述滚动条按钮移动,使已读取的数据行全部用于在视窗中显示时,读取数量为所述缓存行数的数据行以用于在所 述视窗中显示,直至未读取数据行的行数小于所述缓存行数时,则读取所述未读取数据行。在上述技术方案中,优选地,在所述步骤106中当前位于所述视窗的第一行的数 据行的行索引值加上所述视窗的可视行数大于所述缓存行数时,读取数量为所述缓存行数 的数据行并在所述视窗中显示,其中,在每次读取一定量的数据行时为每个数据行分配对 应其读取顺序的行索引值。在上述技术方案中,优选地,还包括步骤108,在对所述表单查询时,如果查询得 到的数据行的数量大于或等于所述缓存行数时,读取数量为所述缓存行数的数据行并在所 述视窗中显示,如果所述查询得到的数据行的数量小于所述缓存行数,则读取所有所述查 询得到的数据行。在上述技术方案中,优选地,所述缓存行数大于或等于所述视窗的可视行数。在上述技术方案中,优选地,所述步骤104包括监听所述滚动条按钮的鼠标点击 事件和鼠标滚轴事件。本发明还公开了一种报表展现装置,包括设置单元,用于设置读取单元每次读取 的数据行的缓存行数;监听单元,用于监听滚动条按钮的移动;所述读取单元,用于在所述 监听模块监听到所述滚动条按钮移动,使已读取的数据行全部用于在视窗中显示时,读取 数量为所述缓存行数的数据行以用于在所述视窗中显示,直至未读取数据行的行数小于所 述缓存行数时,则读取所述未读取数据行。在上述技术方案中,优选地,所述读取单元用于在所述监听模块监听到当前位于 所述视窗的第一行的数据行的行索引值加上所述视窗的可视行数大于所述缓存行数时,读 取数量为所述缓存行数的数据行并在所述视窗中显示,其中,所述读取单元在每次读取一 定量的数据行时,为每个数据行分配对应其读取顺序的行索引值。在上述技术方案中,优选地,所述读取单元还用于在对所述表单查询时,如果查询 得到的数据行的数量大于或等于所述缓存行数时,读取数量为所述缓存行数的数据行并在 所述视窗中显示,如果所述查询得到的数据行的数量小于所述缓存行数,所述读取单元则 读取所有所述查询得到的数据行。在上述技术方案中,优选地,所述缓存行数大于或等于所述视窗的可视行数。在上述技术方案中,优选地,所述监听单元监听所述滚动条按钮的鼠标点击事件 和鼠标滚轴事件。通过上述技术方案,可以实现一种报表展现方法和装置,能够通过数据缓存的方 式进行分页,且用户察觉不到分页的存在,并不影响其使用。


图1是根据本发明的报表展现方法的流程图;图2是根据本发明的报表展现装置的框图;图3是根据本发明的一个实施例的报表展现方法的流程示意图;图4是根据本发明的一个实施例的报表展现装置的截屏示意图。
具体实施例方式以下将参考附图详细描述根据本发明的实施例。图1是根据本发明的报表展现方法的流程图。如图1所示,本发明提供了一种报表展现方法,包括步骤102,设置每次读取的数 据行的缓存行数;步骤104,监听滚动条按钮的移动;步骤106,在所述滚动条按钮移动,使 已读取的数据行全部用于在视窗中显示时,读取数量为所述缓存行数的数据行以用于在所 述视窗中显示,直至未读取数据行的行数小于所述缓存行数时,则读取所述未读取数据行。在上述技术方案中,在所述步骤106中当前位于所述视窗的第一行的数据行的 行索引值加上所述视窗的可视行数大于所述缓存行数时,读取数量为所述缓存行数的数据 行并在所述视窗中显示,其中,在每次读取一定量的数据行时为每个数据行分配对应其读 取顺序的行索引值。在上述技术方案中,还包括步骤108,在对所述表单查询时,如果查询得到的数 据行的数量大于或等于所述缓存行数时,读取数量为所述缓存行数的数据行并在所述视窗 中显示,如果所述查询得到的数据行的数量小于所述缓存行数,则读取所有所述查询得到 的数据行。在上述技术方案中,所述缓存行数大于或等于所述视窗的可视行数。在上述技术方案中,所述步骤104包括监听所述滚动条按钮的鼠标点击事件和 鼠标滚轴事件。图2是根据本发明的报表展现装置的框图。如图2所示,本发明还提供了一种报表展现装置,包括设置单元202,用于设置读 取单元206每次读取的数据行的缓存行数;监听单元204,用于监听滚动条按钮的移动;所 述读取单元206,用于在所述监听模块监听到所述滚动条按钮移动,使已读取的数据行全部 用于在视窗中显示时,读取数量为所述缓存行数的数据行以用于在所述视窗中显示,直至 未读取数据行的行数小于所述缓存行数时,则读取所述未读取数据行。在上述技术方案中,所述读取单元206用于在所述监听模块监听到当前位于所述 视窗的第一行的数据行的行索引值加上所述视窗的可视行数大于所述缓存行数时,读取数 量为所述缓存行数的数据行并在所述视窗中显示,其中,所述读取单元206在每次读取一 定量的数据行时,为每个数据行分配对应其读取顺序的行索引值。在上述技术方案中,所述读取单元206还用于在对所述表单查询时,如果查询得 到的数据行的数量大于或等于所述缓存行数时,读取数量为所述缓存行数的数据行并在所 述视窗中显示,如果所述查询得到的数据行的数量小于所述缓存行数,所述读取单元206 则读取所有所述查询得到的数据行。在上述技术方案中,所述缓存行数大于或等于所述视窗的可视行数。在上述技术方案中,所述监听单元204监听所述滚动条按钮的鼠标点击事件和鼠 标滚轴事件。图3是根据本发明的一个实施例的报表展现方法的流程示意图。本实施例中采用的解决方案利用AJAX特性进行数据缓冲,分批从服务器获取数 据。技术原理在传统分页方式中,需要用户点击页面上的显式分页按钮来进行分页,这种 方式是用户最能够接受的分页方式。但财务报表的数据行之间是有连续性和关联性的,如
5果采用这种分页方式,无疑会给用户带来糟糕的用户体验。而采用这种改进后的分页方式 后会在用户不察觉的情况下进行分页,我们只需要捕捉用户的鼠标滚动操作,最常见的方 式就是监听用户的滚动条动作或是鼠标悬停动作。本解决方案中包含以下几个重要概念bufferSize 每次缓冲的结果集数量,对应于传统分页里的每页结果集数量; hdHeight 列表header的高度,用于计算滚动条滚动按钮插入点所在高度;rowHeight 数 据行高度,必须保证这个高度是不变的,在计算何时触发分页操作时此高度非常重要,通 过其与hdHeight可以得到视窗中可视数据行的数量以及位置,即可得到visbleRows和 rowlndex ;visibleRows 当前浏览器视窗范围内可见的数据行数;rowlndex 处于可视范 围内第一行的数据的行索引值。如图3所示,整个技术方案的流程如下步骤302,根据产品的实际需要和前端的展现方式,设置前端报表展现每次缓冲的 结果集大小(bufferSize),这个数值不应该小于浏览器视窗能够容纳的结果集行数。例 如一个报表显示列表每一行的显示高度是16px,目前显示器的主流分辨率应该是19’的 1240*1024,这时 bufferSize 合适的值应该是 10*1024/16 = 640。步骤304,用户执行查询操作。步骤306,监听滚动条按钮的鼠标事件及鼠标滚轴事件,要能精确判断鼠标滚动的 方向(向上,向下)和当前可视范围内结果集的状态变化(visibleRows,rowlndex等值的 变化)。当用户单击查询按钮时,并不是查询所有结果集,而是取得bufferSize数量的结果 集展现到前台。这样,前台解析并渲染的数据集合数量大幅减少,给用户的体验是查询的时 间明显变少。在此本领域的技术人员应该理解,同样可以监听键盘或其他滚轮之类的装置 使滚动条按钮的上下滚动。步骤308,缓冲完毕后,用于展现的结果集在视窗中显示。其后,当用户拖动滚动条按钮时,程序后台调用事件处理方法来记录和跟踪前台 页面可视范围内结果集的状态变化,当rowIndex+visibleRows > bufferSize时,通过AJAX 请求服务器再次缓冲数据,前台提示用户进行等待。用户继续滚动滚动条进行报表的查看, 当出现上述情况时再次请求服务器进行数据缓冲。图4是根据本发明的一个实施例的报表展现装置的截屏示意图。如图4所示,明细账查询中,用户往往有这样的需求,就是在年底,需要将所有科 目的明细账全部打印出来并装订成册。保守估计假设用户在一年里总共使用了 100个科 目,每个科目平均生成凭证50张,且每个科目每月需要生产本年期初,本月期初,本月合计 这3行额外的记录,则此查询界面总共需要展现100* (50+12*3) = 8600行数据。如果设置 此查询的bufferSize为500,则每次查询只需要展现500行数据,当用户在拖动滚动条按钮 时,前台会记录这500条数据的状态,当剩余数据不足以进行连续显示时,后台便会请求服 务器重新进行缓冲,去加载接下来的500条数据,这样不断的循环,用户查看完该报表的全 部数据总共需要缓冲的次数为8600/500 = 17. 2次。综上所述,根据本发明的技术方案实现的报表展现方法和装置,相比当前技术,使 得浏览器的响应时间更快,并且使用户感觉不到分页的存在,不影响用户的使用。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种报表展现方法,其特征在于,包括步骤102,设置每次读取的数据行的缓存行数;步骤104,监听滚动条按钮的移动;步骤106,在所述滚动条按钮移动,使已读取的数据行全部用于在视窗中显示时,读取数量为所述缓存行数的数据行以用于在所述视窗中显示,直至未读取数据行的行数小于所述缓存行数时,则读取所述未读取数据行。
2.根据权利要求1所述的报表展现方法,其特征在于,在所述步骤106中当前位于所述视窗的第一行的数据行的行索引值加上所述视窗的可视行数大于所述 缓存行数时,读取数量为所述缓存行数的数据行并在所述视窗中显示,其中,在每次读取一定量的数据行时为每个数据行分配对应其读取顺序的行索引值。
3.根据权利要求1所述的报表展现方法,其特征在于,还包括步骤108,在对所述表单查询时,如果查询得到的数据行的数量大于或等于所述缓存行 数时,读取数量为所述缓存行数的数据行并在所述视窗中显示,如果所述查询得到的数据 行的数量小于所述缓存行数,则读取所有所述查询得到的数据行。
4.根据权利要求1所述的报表展现方法,其特征在于,所述缓存行数大于或等于所述 视窗的可视行数。
5.根据权利要求1至4任一项所述的报表展现方法,其特征在于,所述步骤104包括监听所述滚动条按钮的鼠标点击事件和鼠标滚轴事件。
6.一种报表展现装置,其特征在于,包括设置单元,用于设置读取单元每次读取的数据行的缓存行数;监听单元,用于监听滚动条按钮的移动;所述读取单元,用于在所述监听模块监听到所述滚动条按钮移动,使已读取的数据行 全部用于在视窗中显示时,读取数量为所述缓存行数的数据行以用于在所述视窗中显示, 直至未读取数据行的行数小于所述缓存行数时,则读取所述未读取数据行。
7.根据权利要求6所述的报表展现装置,其特征在于,所述读取单元用于在所述监听 模块监听到当前位于所述视窗的第一行的数据行的行索引值加上所述视窗的可视行数大 于所述缓存行数时,读取数量为所述缓存行数的数据行并在所述视窗中显示,其中,所述读取单元在每次读取一定量的数据行时,为每个数据行分配对应其读取顺 序的行索引值。
8.根据权利要求6所述的报表展现装置,其特征在于,所述读取单元还用于在对所述 表单查询时,如果查询得到的数据行的数量大于或等于所述缓存行数时,读取数量为所述 缓存行数的数据行并在所述视窗中显示,如果所述查询得到的数据行的数量小于所述缓存 行数,所述读取单元则读取所有所述查询得到的数据行。
9.根据权利要求6所述的报表展现装置,其特征在于,所述缓存行数大于或等于所述 视窗的可视行数。
10.根据权利要求6至9中任一项所述的报表展现装置,其特征在于,所述监听单元监 听所述滚动条按钮的鼠标点击事件和鼠标滚轴事件。
全文摘要
本发明公开了一种报表展现方法,包括步骤102,设置每次读取的数据行的缓存行数;步骤104,监听滚动条按钮的移动;步骤106,在滚动条按钮移动,使已读取的数据行全部用于在视窗中显示时,读取数量为缓存行数的数据行以用于在视窗中显示,直至未读取数据行的行数小于缓存行数时,则读取未读取数据行。本发明还提供了一种报表展现装置。根据本发明的技术方案,可以在用户不察觉的情况下实现分页,缓解了浏览器视窗的压力,同时不影响用户的使用。
文档编号G06F17/30GK101876971SQ201010215988
公开日2010年11月3日 申请日期2010年6月22日 优先权日2010年6月22日
发明者李庆 申请人:北京伟库电子商务科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1