一种报表生成方法以及相关装置的制作方法

文档序号:6438232阅读:156来源:国知局
专利名称:一种报表生成方法以及相关装置的制作方法
技术领域
本发明涉及数据统计领域,尤其涉及一种报表生成方法以及相关装置。
背景技术
报表系统是各种软件系统呈现数据的重要方法,而Excel有全面的功能和强大的数据处理能,所以Excel报表得以广泛运用。目前Excel报表的制作方法有人工填写方式, 这种方法工作量大,效率低,需要手工更新数据。另一种方法使用(JXL,Java Excel)等驱动生成Excel报表对象,然后向单元格写入数据并保存为文件,这种方法需要编写程序,代码量大,而且样式变化时需要修改代码。

发明内容
本发明实施例提供了一种报表生成方法,用于根据自定义的函数获取指定的数据信息以生成Excel报表。本发明提供的报表生成方法,包括加载用户所选择的自定义函数;从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中;根据用户在所述服务窗口中选择的报表项目生成Excel报表。本发明提供的报表生成装置,包括加载单元,用于加载用户所选择的自定义函数;数据获取单元,用于从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中;报表生成单元,用于根据用户在所述服务窗口中选择的报表项目生成Excel报表。从以上技术方案可以看出,本发明实施例具有以下优点本发明实施例在Excel应用程序中用宏生成了自定义函数,当加载所述自定义函数函数之后,可以从数据库中获取所述自定义函数对应的数据列表,将所述数据列表显示在所述自定义函数的服务窗口中,并根据用户在所述服务窗口中选择的报表项目生成 Excel报表,从而便捷地生成包含指定数据的Excel报表。


图1是本发明实施例报表生成方法的一个流程示意图;图2是本发明实施例报表生成方法的另一个流程示意图;图3是本发明实施例报表生成装置的逻辑结构示意图。
具体实施例方式本发明实施例提供了一种报表生成方法,用于根据自定义的函数获取指定的数据信息以生成Excel报表。请参阅图1,本发明实施例中报表生成方法的一个实施例包括101、报表生成装置加载用户所选择的自定义函数;
报表生成装置加载用户所选择的自定义函数,所述自定义函数是通过报表生成装置中宏定义选项自定义生成的,所述自定义函数中包括有数据源的地址,数据项目的排列格式,服务窗口函数与各种事件和消息的映射关系。102、报表生成装置从数据库中获取所述自定义函数对应的数据列表;报表生成装置从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中,以便于用户可以根据服务窗口所提供的数据列表,选择用户所需要在报表中显示的数据项目。由于所述自定义函数中设置有数据源的地址,因此,在加载所述自定义函数之后, 报表生成装置就会根据该数据源的地址查找到相应的数据列表,该数据列表可以为所述数据库所包含的各种数据项目的列表;可选的,所述数据库可以为计算机中的数据源,也可以为网络数据库,具体数据库的类型可以根据实际情况而定,此处不作限定。103、报表生成装置根据用户选择的报表项目生成Excel报表。报表生成装置根据用户在所述服务窗口中选择的报表项目生成Excel报表。具体的,在报表生成装置将所述数据列表显示在所述自定义函数的服务窗口之后,用户可以在该服务窗口中选择用户所需要的报表项目(报表项目中包含有上述数据项目),然后向报表生成装置发送根据所选择报表项目生成Excel报表的指令,则报表生成装置在收到该指令后,在所述数据库中提取所述报表项目所对应的数据信息,然后根据所述自定义函数中设定的或用户所选择的报表格式生成Excel报表,该Excel报表中显示有所述报表项目所对应的数据信息。本发明实施例在Excel应用程序中用宏生成了自定义函数,当加载所述自定义函数函数之后,可以从数据库中获取所述自定义函数对应的数据列表,将所述数据列表显示在所述自定义函数的服务窗口中,并根据用户在所述服务窗口中选择的报表项目生成 Excel报表,从而便捷地生成包含指定数据的Excel报表。下面对本发明报表生成方法进行详细描述,请参阅图2,本发明实施例中报表生成方法的另一个实施例包括201、报表生成装置加载用户所选择的自定义函数;报表生成装置加载用户所选择的自定义函数,所述自定义函数是通过报表生成装置中宏定义选项自定义生成的,所述自定义函数中包括有数据源的地址,数据项目的排列格式,服务窗口函数与各种事件和消息的映射关系。具体的,报表生成装置可以为Excel程序。202、报表生成装置从数据库中获取所述自定义函数对应的数据列表;报表生成装置从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中,以便于用户可以根据服务窗口所提供的数据列表,选择用户所需要在报表中显示的数据项目。可选的,所述数据库可以为计算机中的数据源,也可以为网络数据库,具体数据库的类型可以根据实际情况而定,此处不作限定。203、报表生成装置获取用户选择的报表项目;在报表生成装置将所述数据列表显示在所述自定义函数的服务窗口之后,用户可以在该服务窗口中选择用户所需要的报表项目,然后向报表生成装置发送根据所选择报表
项目生成Excel报表的指令,则报表生成装置通过该指令就会获取到用户选择的报表项目。具体的,所述报表项目可以包括数据列表中的数据项目,生成报表的格式信息, 数据项目的时间信息;其中,生成报表的格式信息和数据项目的时间信息为所需要生成的报表模板的变量,报表生成装置可以根据所述报表项目中用户选择的变量确定所述自定义函数中的各种变量公式中的变量的取值,以便于报表生成装置可以根据该变量公式生成用户所需要的Excel报表。204、报表生成装置根据时间信息在数据库中提取用户选择的数据项目对应的数据信息;在获取用户生成Excel报表的指示之后,报表生成装置根据所述数据项目的时间信息在数据库中提取用户选择的数据项目对应的数据信息。205、报表生成装置根据用户选择的报表项目生成Excel报表。报表生成装置根据所述生成报表的格式信息和所述数据项目的时间信息在报表的单元格中排列所述数据项目和所述数据信息,根据所述排列结果制成Excel报表。具体的,报表生成装置根据所述生成报表的格式信息创建一个表格,在所述表格的第一列中排布所述数据项目,在所述表格的第一行中依次排布所述数据项目的时间信息,根据所述数据项目和所述数据项目的时间信息与所述数据信息的映射关系,在所述表格的相应单元格中所述数据信息。可选的,也可以在所述表格的第一列中依次排布所述数据项目的时间信息,在所述表格的第一行中排布所述数据项目。为了便于理解,下面以一具体生成自定义函数的场景对上述的实施例中描述的报表生成方法进行描述,具体为1、打开 Excel 程序;2、鼠标左键点击Excel菜单“工具- >宏- >宏”打开新建宏的界面,填入宏名, 点击“创建”按钮;3、在Visual Basic编辑器里插入服务窗口,然后在服务窗口里添加自己需要的控件,例如“使用GetAIHourValue函数填充单元格”的控件;4、鼠标左键双击服务窗口上的控件,可以对该控件的事件消息编写脚本以实现相应的功能;例如双击“使用GetAIHourValue函数填充单元格”服务窗口上的“生成报表”控件,进入脚本编辑页面,可以对“生成报表”控件的鼠标左键单击事件编写脚本,此脚本用于生成报表表单;5、重复第4步骤完成本服务窗口及其控件需要实现的响应、事件、消息等脚本;6、重复第4、5步骤完成所有服务窗口以及脚本编写;7、在Visual Basic编辑器里插入新模块,在此模块里编写自定义函数的脚本,例如新建“模块2”,此模块用于定义GetAIHourValue函数,此函数用于从数据库取得AITable 的每小时整点值;8、重复第7步定义每个自定义函数;9、定义用来加载步骤3定义的服务窗口函数,例如下面例子函数用于加载服务窗口 UserForml ;
10、定义函数Auto Open,在此函数里定义数据源,并且在此函数里添加自定义函数加载到Excel菜单的脚本,并把自定义函数与加载服务窗口函数进行消息映射,以便在点击菜单里的自定义函数时,可以响应加载服务窗口的函数来加载对应的服务窗口。例如在菜单里增加一个菜单项“华力特报表”,把自定义函数“GetAIHourValue”添加到菜单“华力特电力报表”的字菜单项,还把子菜单的消息响应与函数“InputAIMsg”关联起来,建立映射关系。生成后的自定义函数添加在报表生成装置的选项中,供用户选择;当用户点击了某一自定义函数后,报表生成装置就会加载该自定义函数。上面仅以一些例子对本发明实施例中的应用场景进行了说明,可以理解的是,在实际应用中,还可以有更多的应用场景,具体此处不作限定。下面对用于执行上述报表生成方法的本发明报表生成装置的实施例进行说明,其逻辑结构请参考图3,本发明实施例中的报表生成装置一个实施例包括加载单元301,用于加载用户所选择的自定义函数;数据获取单元302,用于从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中;报表生成单元303,用于根据用户在所述服务窗口中选择的报表项目生成Excel 报表。本发明实施例中的报表生成单元303可以包括项目获取模块3031,用于获取用户选择的报表项目,所述报表项目包括数据列表中的数据项目,生成报表的格式信息,数据项目的时间信息;数据提取模块3032,用于在获取用户生成Excel报表的指示之后,根据数据项目的时间信息在数据库中提取用户选择的数据项目对应的数据信息;报表生成模块3033,用于根据所述生成报表的格式信息和所述数据项目的时间信息在报表的单元格中排列所述数据项目和所述数据信息,根据所述排列结果制成Excel报表。本发明实施例报表生成装置中各个单元具体的交互过程如下在用户选择了相应的自定义函数之后,加载单元301加载用户所选择的自定义函数,所述自定义函数是通过报表生成装置中宏定义选项自定义生成的,所述自定义函数中包括有数据源的地址,数据项目的排列格式,服务窗口函数与各种事件和消息的映射关系。在加载加载所述自定义函数之后,数据获取单元302从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中,以便于用户可以根据服务窗口所提供的数据列表,选择用户所需要在报表中显示的数据项目。可选的,所述数据库可以为计算机中的数据源,也可以为网络数据库,具体数据库的类型可以根据实际情况而定,此处不作限定。在报表生成装置将所述数据列表显示在所述自定义函数的服务窗口之后,报表生成单元303根据用户在所述服务窗口中选择的报表项目生成Excel报表。具体的,在报表生成装置将所述数据列表显示在所述自定义函数的服务窗口之后,用户可以在该服务窗口中选择用户所需要的报表项目,然后向报表生成装置发送根据所选择报表项目生成Excel报表的指令,则报表生成装置的项目获取模块3031通过该指令就会获取到用户选择的报表项目。所述报表项目可以包括数据列表中的数据项目,生成报表的格式信息,数据项目的时间信息;其中,生成报表的格式信息和数据项目的时间信息为所需要生成的报表模板的变量,报表生成装置可以根据所述报表项目中用户选择的变量确定所述自定义函数中的各种变量公式中的变量的取值,以便于报表生成装置可以根据该变量公式生成用户所需要的Excel报表。在获取用户生成Excel报表的指示之后,数据提取模块3032根据所述数据项目的时间信息在数据库中提取用户选择的数据项目对应的数据信息。最后,报表生成模块3033根据所述生成报表的格式信息和所述数据项目的时间信息在报表的单元格中排列所述数据项目和所述数据信息,根据所述排列结果制成Excel 报表。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种报表生成方法,其特征在于,包括 加载用户所选择的自定义函数;从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中;根据用户在所述服务窗口中选择的报表项目生成Exce 1报表。
2.根据权利要求1所述的方法,其特征在于,所述自定义函数是通过报表生成装置中宏定义选项自定义生成的,所述自定义函数中包括有数据源的地址,数据项目的排列格式, 服务窗口函数与各种事件和消息的映射关系。
3.根据权利要求1或2所述的方法,其特征在于,所述根据用户在所述服务窗口中选择的报表项目生成Excel报表,包括获取用户选择的报表项目,所述报表项目包括数据列表中的数据项目,生成报表的格式信息,数据项目的时间信息;在获取用户生成Excel报表的指示之后,根据所述数据项目的时间信息在数据库中提取用户选择的数据项目对应的数据信息;根据所述生成报表的格式信息和所述数据项目的时间信息在报表的单元格中排列所述数据项目和所述数据信息,根据所述排列结果制成Excel报表。
4.根据权利要求3所述的方法,其特征在于,所述根据所述生成报表的格式信息和所述数据项目的时间信息在报表的单元格中排列所述数据项目和所述数据信息,包括根据所述生成报表的格式信息创建一个表格,在所述表格的第一列中排布所述数据项目,在所述表格的第一行中依次排布所述数据项目的时间信息,根据所述数据项目和所述数据项目的时间信息与所述数据信息的映射关系,在所述表格的相应单元格中所述数据信肩、ο
5.一种报表生成装置,其特征在于,包括 加载单元,用于加载用户所选择的自定义函数;数据获取单元,用于从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中;报表生成单元,用于根据用户在所述服务窗口中选择的报表项目生成Excel报表。
6.根据权利要求5所述的装置,其特征在于,所述报表生成单元包括项目获取模块,用于获取用户选择的报表项目,所述报表项目包括数据列表中的数据项目,生成报表的格式信息,数据项目的时间信息;数据提取模块,用于在获取用户生成Excel报表的指示之后,根据所述数据项目的时间信息在数据库中提取用户选择的数据项目对应的数据信息;报表生成模块,用于根据所述生成报表的格式信息和所述数据项目的时间信息在报表的单元格中排列所述数据项目和所述数据信息,根据所述排列结果制成Excel报表。
全文摘要
本发明实施例公开了一种报表生成方法,用于根据自定义的函数获取指定的数据信息以生成Excel报表。本发明实施例方法包括加载用户所选择的自定义函数;从数据库中获取所述自定义函数对应的数据列表,并将所述数据列表显示在所述自定义函数的服务窗口中;根据用户在所述服务窗口中选择的报表项目生成Excel报表。
文档编号G06F17/30GK102436498SQ20111036010
公开日2012年5月2日 申请日期2011年11月14日 优先权日2011年11月14日
发明者张应榜, 王波涛, 胡波, 顾莉娜 申请人:深圳市华力特电气股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1