报表图形展示内存优化方法及装置的制作方法

文档序号:6570893阅读:211来源:国知局
专利名称:报表图形展示内存优化方法及装置的制作方法
技术领域
本发明涉及报表预览时生成图形的展示技术,更具体地,涉及 一种多个窗口浏览报表生成图形的内存优化方法及装置。
背景技术
随着计算机科学的兴起与发展,我们进入了一个新的时代,大量的信息和勒:据,迎面而来。用科学的方法去整理数据,从而从不 同 一见角对各方面4言息进4亍4青确分4斤和准确判断,比以往更为迫切。 因此,基于信息系统业务发展的需要而产生的数据库技术中的支撑 才支术——才艮表4支术的应用也更显迫切。在报表技术中,报表预览时往往会涉及到展示图形对象,这些 图形对象的生成需要多个步骤才能完成,针对每个步骤,CPU要做 大量计算处理,所耗时间较长。为了提高展示图形的速度,在对图 形对象进行展示时,常采用把图形对象生成为原始位图信息放在系 统对应的组件上加以展示的方法,这样当用户以专用々某体4妻口 (MDI)方式打开多个窗口预览不同的图形时,需要生成对应的多 个^f立图对象,该方法能够在窗口切4灸时快速展示,同时支持窗口的 平铺和层叠的展示方式,但此种方式需要创建多个位图对象,由于 每个位图对象所占内存空间较大,打开窗口数过多就需要耗费大量 的内存空间,这会引发系统性能降低甚至内存溢出。因此,需要一种新的才艮表图形展示内存优化方法及装置,以用 于多个窗口浏览报表生成图形的内存优化。发明内容为了解决上述问题,本发明提供了 一种报表图形展示内存优化 方法和装置,该方法和装置不仅可以极大地降^f氐内存占用量,而且 对系统的响应性能影响不大。在本发明的技术方案中,只有一个位图对象和多个窗口中持有 的图形压缩信息,当前的焦点窗口拥有位图对象,而其它窗口持有 压缩后的位图信息。当窗口切换时4巴要切换窗口压缩的信息解压缩 为位图对象,把解压后位图对象提供给切换窗口展示,以前的位图 对象占用的内存空间就可以释放,该方法可以避免持有多个位图对 象带来的内存开销,同时解压缩的速度较快,在多个窗口平铺和层 叠展示时,通过解压来恢复原有位图对象的方式能够满足系统的响 应要求。由于用户在多凄史应用场景下都是对当前窗口的图形对象移动 查看,因此,此时不需要做解压操作,响应速度上应与通常采用持 有多个位图方案相当,但大大降低了内存占用量。为了实现上述目的,本发明的一个方面提供了一种报表图形展 示内存优化方法,用于多个窗口浏览报表生成图形的内存优化,其包4舌以下步骤步骤S102,生成用于将位图与压缩信息进4亍相互转 换的工具类以及用于展示图形的展示组件;步骤S104,根据报表图 形产生图形信息,通过工具类将图形信息压缩成图形信息句柄并将 其传递给展示组件;步骤S106,展示组件将图形信息句柄传递给工 具类,工具类将图形信息转换为位形对象,并将位图传递给展示组件;以及步骤S108,展示组件接收位形对象,并 将位形对象展示成图形。冲艮据本发明的一个方面,步骤S104包括以下步骤如果打开 新窗口展示报表图形,则利用报表图形算法产生用于展示的图形信 息,通过工具类将图形信息压缩成图形信息句柄并将其传递给展示 组件;如果已经打开的窗口中报表图形发生变化,则利用报表图形 算法产生用于展示的图形信息,通过工具类将图形信息压缩成图形 信息句柄来替换以前的图形信息句柄并将其传递给展示组件。才艮据本发明的一个方面,步骤S104还包括以下步骤对多个 窗口进行切换操作,则将已经生成的图形信息句柄传递给展示组 件。另夕卜,才艮据本发明的一个方面,步骤S104还包括以下步骤 在同 一窗口的图形大小超过展示区域范围的情况下,将已经传递的 图形信息传递给展示组件。才艮据本发明的一个方面,步骤S106包括以下步骤步骤S1062, 展示组件将图形信息句柄传递给工具类;步骤S1064,工具类判断 图形信息句柄与其中緩存的图形信息句柄是否相同;以及步骤 S1066,在判断为相同的情况下,将緩存图形信息句柄相应的緩存 位形对象传递给展示组件,以及在判断为不同的情况下,将图 形信息句柄解压缩成位形对象,将图形信息句柄和位形对 象緩存在工具类中并将位形对象传递给展示组件。根据本发明的步骤S1064中的判断方式为比较图形信息句柄与 緩存图形信息句柄的字节流。此外,根据本发明的展示组件为图形 用户接口 (GUI)组件的扩展。本发明的另 一方面还提供了 一种报表图形展示内存优化装置,其用于多个窗口浏览报表生成图形的内存优化,该装置包括生成 模块,生成用于将位图与压缩信息进行相互转换的工具类以及用于 展示图形的展示组件;处理模块,根据报表图形产生图形信息,通 过工具类将图形信息压缩成图形信息句柄并将其传递给展示组件; 转换模块,使展示组件将图形信息句柄传递给工具类,工具类将图 形信息转换为位形对象,并将位形对象传递给展示组件; 以及展示模块,使展示组件接收位形对象,并将位形对象 展示成图形。根据本发明的另 一方面,转换模块还用于在打开新窗口展示报 表图形的情况下,通过报表图形算法产生用于展示的图形信息,通 过工具类将图形信息压缩成图形信息句柄并将其传递给展示组件; 并且在已经打开的窗口中报表图形发生变化的情况下,通过报表图 形算法产生用于展示的图形信息,通过工具类将图形信息压缩成图 形信息句柄来替换以前的图形信息句柄并将其传递给展示组件。根据本发明的另一方面,转换模块包括传递模块,使展示组件将图形信息句柄传递给工具类;判断模块,使工具类判断图形信 息句柄与其中緩存的图形信息句柄是否相同;以及子处理模块,在判断为相同的情况下,将緩存图形信息句柄相应的緩存位形对 象传递给展示组件,以及在判断为不同的情况下,将图形信息句柄 解压缩成位形对象,将图形信息句柄和位形对象緩存在工 具类中并将位形对象传递给展示组件。因此,通过上述技术方案,本发明实现了如下技术效果提高了同时打开图形展示窗口的数量,降低了多个窗口展示图 形带来的内存占用量,展示组件采用扩展至GUI组件的方式,方便 ;也应用于J见有GUI展示窗口中,整个处理方法通过压缩工具、自定义显示组件相结合的方法较好地解决才艮表图形在速度和空间上的 沖突。本发明的其它特征和优点将在随后的说明书中阐述,并且,部 分地从说明书中变得显而易见,或者通过实施本发明而了解。本发 明的目的和其他优点可通过在所写的说明书、权利要求书、以及附 图中所特别指出的结构来实现和获得。


附图用来提供对本发明的进一 步理解,并且构成说明书的 一部 分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中图1是根据本发明的报表图形展示内存优化方法的流程图;图2是产生压缩数据过程的示意图;图3是压缩图形信息转换为位图信息的原理图;以及图4是根据本发明的报表图形展示内存优化装置的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此 处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本 发明。图1是根据本发明的报表图形展示内存优化方法的流程图。图 2是产生压缩数据过程的示意图。图3是压缩图形信息转换为位图 4言息的原J里图。以下^l导结合图2、以及图3详细描述如图1所示的才艮表图形展 示内存优化方法,如图1所示,报表图形展示内存方法包括以下步 骤步骤S102,生成用于将位图与压缩信息进行相互转换的工具类 以及用于展示图形的展示组件;也就是"i兌,建立一个将位图转换为压缩信息或者由压缩信息转 才奐为位图的工具类,由该工具类完成压缩和解压的功能,同时建立 一个可持有压缩图形信息自定义展示组件来完成图形展示的功能。其中,根据本发明的实施例,获取压缩信息的原理如图2所示, 首先,调用窗口要展示图形的生成方法返回一个位图信息对象,该 位图信息对象被工具类压缩处理为byte[]字节流,工具类在位 形信息与压缩后图形信息的双向转换工作时会緩存当前解压缩信 息的句柄和解压缩后的位图信息,工具类在下次解压信息时,先比 專交当前的byte压缩码流是否与上一次》爰存的byte流是否相同,如 果相同就直接返回存储的上一次原始位图信息,否则解压缩该图形 信息为位图信息,最终返回给展示组件一个位形对象,然后传 递给展示组4牛。同时,此方法还包括4巴压缩信息流保存为其它形式(诸如文件 方式),解压缩时再对读取文件中的保存信息,以及文件中信息进 行处理,该方式可以进一步节约内存。需要指出的是,此种方式中 凄t才居读取来自文<牛。在完成压缩信息的准备后,还需要自定义展示组件来处理压缩 信息,如图3所示,将压缩图形信息转换为位图信息,以完成图形展示功能。在本发明的实施例中,展示组件在已有GUI组件基础上 进行扩展,实现GUI组件功能的基础上,能被在系统GUI刷新时净皮调用,同时能借助于工具类完成展示压缩图形4言息的功能,自定 义组件实现的功能点如表1。表l展示组件实现的功能点1纟J/f牛的重画方法2该窗口是否是当前窗口的判断3记录上一个窗口的引用4提供设置压缩数据的方法如表1所示,功能点1是展示组件的核心,其要完成对压缩后 信息的重画在组件上加以展示的功能,完成该功能要借助于工具类 的解压缩功能,再把压缩后的信息转化为位图信息返回,然后把位 图重画在组件上加以展示。功能点2和功能点3属于刷新控制逻辑,功能点2用于重画控 制,通过回溯追踪到Window—级,以判断该窗口是否为当前窗口 , 决定是否需要重画。功能点3也与重画机制有关,用它来确定是全 部重画还是部分重画。功能点4是i殳置压缩^U居的4妾口方法。步骤S104,根据报表图形产生图形信息,通过工具类将图形信 息压缩成图形信息句柄并将其传递给展示组件;更具体而言,即打开一个新窗口展示报表图形或者窗口中图形 发生变化,报表图形算法会产生展示的图形信息,该图形通过工具 压缩后作为窗口的图形信息句柄传递给展示组件;在窗口图形对象 变化时,对巴新生成的图形信息通过工具压缩,替换以前的图形信息句柄并传递给展示ia件。其中,需要指出的是,当窗口发生切换时,切换新窗口成为当 前窗口,该窗口已经持有的图形信息句柄,只需把该信息传递给展 示组件。步骤S106,展示组件将图形信息句柄传递给工具类,工具类将图形信息转换为位形对象,并将位形对象传递给展示组件;步骤S108,展示组件接收位形对象,并将位形对象展 示成图形。即,展示组件拿到位形对象后,会把该位形对象通过 绘图的方法绘制到组件上,由于组件是对原有GUI组件扩展而得, 组件具有GUI组件相同的特性,如组件可以放在GUI容器上、支 持窗口拖动,故可把展示组件直接放在窗口上展示图形,上述一系 列过程完成了4艮表图形的展示功能。如上述步骤所示,完成了报表图形展示内存优化方法的整个过 程。其中,需要注意的是,上述方法还包括以下步骤当同一个窗 口图形大小超过展示区域范围时,展示区域在图形区域位置上发生 移动,该操作会引发一个事件并重绘该图形到GUI组件上,事件激 活操作系统的界面刷新,调用展示组件指定的界面刷新逻辑,此时 只需在步骤S104中图形信息句柄重新传递展示组件即可,其余与 上述步骤相同。在下文中,将以JasperReport报表生成的图形对象为例,介绍 通过本发明的方法实现图形对象展示时的内存优化。JasperReport工具生成才艮表图形的过禾呈中,JasperReport会生成 一个Image对象(实际为位图对象)作为报表的当前页显示给客户 端,现有技术中,需要把该Image对象持有供报表展示之用,由于 Image对象是未压缩过的位图对象,直接持有将会占用大量的空间, 本发明的内存优化方法则克服了上述缺陷。在下文中,利用本发明 结合JAVA环境进行多个报表图形对象展示。首先,建立一个工具类 ImageUtil 提供两个方法 getlmageByte(Image image)完成压缩和 getlmageFromByte(byte[] codeStream)完成解压缩的功能,建立 一 个自定义组件 DisplaylmagePanel , 该组件继承至 JPanel 对象并覆盖 paintComponent(Graphics g)方'法,在it只于象中可以通过压纟宿工4乍类 完成压缩图形lt据的显示方法。4妾着,才艮表生成图开^展示时,JasperReport中JasperManager的 printPageToImage()方法生成4艮表要显示的图形对象,该对象为 Image格式,然后把该对象通过getlmageByte()方法压缩后传递给 DisplaylmagePanel组件持有。最后,调用系统的界面刷新逻辑,该逻辑会调用paintComponent 方法,方法会调用getlmageFromByte 4巴压缩图形4言息4争4灸为Image 对象,通过系统的绘制方法,把该图形绘制在界面上,完成图形展 示的过程。从而,实现了 JAVA环境中报表图形展示的全过程。图4是根据本发明的报表图形展示内存优化装置的框图。如图4所示,该装置用于多个窗口浏览报表生成图形的内存优 化,其包括生成模块402,生成用于将位图与压缩信息进行相互 转换的工具类以及用于展示图形的展示组件;处理模块404,根据报表图形产生图形信息,通过工具类将图 形信息压缩成图形信息句柄并将其传递给展示组件;转换模块406,使展示组件将图形信息句柄传递给工具类,工 具类将图形信息转换为位形对象,并将位形对象传递给展 示组件,其中,转换模块406还用于在打开新窗口展示报表图形的情况下,通过才艮表图形算法产生用于展示的图形信息,通过工具类将图形信息压缩成图形信息句柄并将其传递给展示组件;并且在已 经打开的窗口中报表图形发生变化的情况下,通过报表图形算法产 生用于展示的图形信息,通过工具类将图形信息压缩成图形信息句 柄来替换以前的图形信息句柄并将其传递给展示组件;另外,转换 模块406还用于在对多个窗口进行切换操作的情况下,将已经生成 的图形信息句柄传递给展示组件;此外,转换模块406还用于在同 一窗口的图形大小超过展示区域范围的情况下,将已经传递的图形 信息传递给展示组件;其中,转换模块406还包括传递模块4062,使展示组件将图 形信息句柄传递给工具类;判断模块4064,使工具类判断图形信息 句柄与其中緩存的图形信息句柄是否相同;以及子处理模块4066 , 在判断为相同的情况下,将緩存图形信息句柄相应的緩存位形 对象传递^会展示组件,以及在判断为不同的情况下,将图形信息句 柄解压缩成位形对象,将图形信息句柄和位形对象緩存在 工具类中并将位形对象传递给展示组件。展示冲莫块408,使展示组件*接收位形对象,并将位形 对象展示成图形。在本发明中,展示组件为GUI组件的扩展,判断模块的判断方 式为比较图形信息句柄与緩存图形信息句柄的字节流。通过以上本发明的描述,可以看到本发明能够在不降4氐系统响 应速度的情况下,降低内存的占用量,从而较好的解决了报表图形 在速度和空间上的沖突。以上所述仅为本发明的优选实施例而已,并不用于限制本发 明,对于本领域的技术人员来说,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进 等,均应包含在本发明的保护范围之内。
权利要求
1. 一种报表图形展示内存优化方法,用于多个窗口浏览报表生成图形的内存优化,其特征在于,包括以下步骤步骤S102,生成用于将位图与压缩信息进行相互转换的工具类以及用于展示图形的展示组件;步骤S104,根据所述报表图形产生图形信息,通过所述工具类将所述图形信息压缩成图形信息句柄并将其传递给所述展示组件;步骤S106,所述展示组件将所述图形信息句柄传递给所述工具类,所述工具类将所述图形信息转换为位形对象,并将所述位形对象传递给所述展示组件;以及步骤S108,所述展示组件接收所述位形对象,并将所述位形对象展示成图形。
2. 根据权利要求1所述的报表图形展示内存优化方法,其特征在 于,所述步骤S104包括以下步骤如果打开新窗口展示所述报表图形,则利用报表图形算 法产生用于展示的所述图形信息,通过所述工具类将所述图形 信息压缩成所述图形信息句柄并将其传递给所述展示组件;以 及如果已经打开的窗口中所述4艮表图形发生变化,则利用 报表图形算法产生用于展示的所述图形信息,通过所述工具类 将所述图形信息压缩成所述图形信息句柄来替换以前的图形 信息句柄并将其传递给所述展示组件。
3. 根据权利要求2所述的报表图形展示内存优化方法,其特征在 于,所述步骤S104还包括以下步骤对多个所述窗口进行切换操作,则将已经生成的图形信 息句柄传递给所述展示组件。
4. 根据权利要求2所述的报表图形展示内存优化方法,其特征在 于,所述步骤S104还包4舌以下步骤在同 一窗口的图形大小超过展示区域范围的情况下,将 已经传递的所述图形信息传递给所述展示组件。
5. 根据权利要求3或4所述的报表图形展示内存优化方法,其特 征在于,所述步骤S106包括以下步骤步骤S1062,所述展示组件将所述图形信息句柄传递给所 述工具类;步骤S1064,所述工具类判断所述图形信息句柄与其中緩 存的图形信息句柄是否相同;以及步骤S1066,在判断为相同的情况下,将所述緩存图形信 息句柄相应的緩存位形对象传递给所述展示组件,以及在 判断为不同的情况下,将所述图形信息句柄解压缩成位形对象,将所述图形信息句柄和所述位形对象緩存在所述工 具类中并将所述位形对象传递给所述展示组件。
6. 根据权利要求5所述的报表图形展示内存优化方法,其特征在 于,所述步骤S1064中的判断方式为比寿交所述图形信息句柄 与所述緩存图形信息句柄的字节流。
7. 根据权利要求6所述的报表图形展示内存优化方法,其特征在 于,所述展示组件为GUI组件的扩展。
8. —种报表图形展示内存优化装置,用于多个窗口浏览报表生成 图形的内存优化,其特征在于,包括生成模块,生成用于将位图与压缩信息进行相互转换的 工具类以及用于展示图形的展示组件;处理模块,根据所述报表图形产生图形信息,通过所述 工具类将所述图形信息压缩成图形信息句柄并将其传递给所 述展示组件;转换模块,使所述展示组件将所述图形信息句柄传递给 所述工具类,所述工具类将所述图形信息转换为位形对 象,并将所述位形对象传递给所述展示组件;以及展示模块,使所述展示组件接收所述位形对象,并 将所述位形对象展示成图形。
9. 根据权利要求8所述的报表图形展示内存优化装置,其特征在 于,所述转换模块还用于在打开新窗口展示所述报表图形的情 况下,通过报表图形算法产生用于展示的所述图形信息,通过 所述工具类将所述图形信息压缩成所述图形信息句柄并将其 传递给所述展示组件;并且在已经打开的窗口中所述报表图形 发生变化的情况下,通过报表图形算法产生用于展示的所述图 形信息,通过所述工具类将所述图形信息压缩成所述图形信息 句柄来替换以前的图形信息句柄并将其传递给所述展示组件。
10. 根据权利要求9所述的报表图形展示内存优化装置,其特征在 于,所述转换模块包括传递模块,使所述展示组件将所述图形信息句柄传递给 所述工具类;判断模块,使所述工具类判断所述图形信息句柄与其中 緩存的图形信息句柄是否相同;以及子处理才莫块,在判断为相同的情况下, 一夸所述乡爰存图形 信息句柄相应的緩存位形对象传递给所述展示组件,以及 在判断为不同的情况下,将所述图形信息句柄解压缩成位 形对象,将所述图形信息句柄和所述位形对象緩存在所述 工具类中并将所述位形对象传递给所述展示组件。
全文摘要
本发明提供了一种报表图形展示内存优化方法及装置,该方法包括以下步骤步骤S102,生成用于将位图与压缩信息进行相互转换的工具类以及用于展示图形的展示组件;步骤S104,根据报表图形产生图形信息,通过工具类将图形信息压缩成图形信息句柄并将其传递给展示组件;步骤S106,展示组件将图形信息句柄传递给工具类,工具类将图形信息转换为位形对象,并将位形对象传递给展示组件;以及步骤S108,展示组件接收位形对象,并将位形对象展示成图形。因此,可以降低多个窗口展示图形带来的内存占用量,提高同时打开图形展示窗口的数量,较好地解决报表图形在速度和空间上的冲突。
文档编号G06F9/44GK101221497SQ200710000739
公开日2008年7月16日 申请日期2007年1月10日 优先权日2007年1月10日
发明者剑 熊, 鹰 熊 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1