一种基于防灾备份功能的通用报表生成方法与流程

文档序号:15163773发布日期:2018-08-14 17:10阅读:196来源:国知局

本发明涉及通用报表的生成方式和设计,尤其涉及结合数据同步功能且做到了防灾备份的通用报表生成方法。



背景技术:

现有的报表技术,是基于业务的需求,然后设计报表格式,确认表头,直接连接数据库,通过表结构关联导出数据。此方法在大型数据库中推广,会大量占用服务器的资源,导致用户在访问服务器时,出现系统卡顿现象。同时,绝大多数的快递公司在部署服务器的时候,都只部署了一台服务器,导致出现硬件故障,黑客攻击等情况的时候,无法还原数据,以至于产生巨大的损失。并且快递公司的业务量庞大,数据报表复杂,很难满足业务部门的需求。



技术实现要素:

以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。

本发明的目的在于解决上述问题,提供了一种基于防灾备份功能的通用报表生成方法,既能满足报表设计多样性的需求,也能降低对服务器运行的压力,同时可以实现防灾备份的功能。

本发明的技术方案为:本发明揭示了一种基于防灾备份功能的通用报表生成方法,包括:

步骤1:给字段的属性设定唯一码,匹配到数据库表结构中的字段,用于后续字段的分类和用户设计报表;

步骤2:设计报表生成程序,包括定制报表和通用报表;

步骤3:开发用户设计报表的界面;

步骤4:将所有报表字段嵌入程序;

步骤5:部署多台用户访问服务器,通过负载均衡软件实现用户分布式访问数据库;

步骤6:实现主数据库和报表数据库的数据同步;

步骤7:开启报表生成程序,实现定制报表和通用报表的功能。

根据本发明的基于防灾备份功能的通用报表生成方法的一实施例,在步骤1中,对于用于通用报表的字段池中的字段属性进行编号处理,用javascript对需要设定为报表的字段设定唯一码,对应于数据库的表结构中的字段,通过对已编号的字段属性进行分类。

根据本发明的基于防灾备份功能的通用报表生成方法的一实施例,在步骤2中,对于有定制格式的定制报表,使用c++builder设计报表的格式;对于有排版要求的报表,通过c++builder设计报表界面,待程序运行后通过拼接sql的方式抓取数据并填入到对应的表格中;对于没有定制格式的通用报表,使用c++builder关联程序中的报表字段和数据库表结构中的字段,将所有报表字段嵌入,根据用户在界面中选取的业务数据和查询条件,c++builder通过拼接sql的方式抓取数据并导出表头和抓取的数据到excel中。

根据本发明的基于防灾备份功能的通用报表生成方法的一实施例,在步骤3中,用c#开发用户界面,用于用户设计通用报表;对于定制报表,通过c++builder导出已经确认的格式和字段,无需重新设计。

根据本发明的基于防灾备份功能的通用报表生成方法的一实施例,在步骤4中,通过visualstudio平台,使用c#和c++混编技术,将c++builder嵌入到c#中,实现报表生成程序和用户界面的结合。

根据本发明的基于防灾备份功能的通用报表生成方法的一实施例,步骤6中的主数据库用于业务数据的写入操作可实现数据实时同步,报表数据库用于报表的生成和导出,且报表数据库具有防灾备份的功能。

根据本发明的基于防灾备份功能的通用报表生成方法的一实施例,在步骤6中,通过sqlserverservicebroker消息队列的方式从主数据库中实现数据同步。

本发明对比现有技术有如下的有益效果:本发明通过部署多台服务器,同时安装sqlserver数据库,通过sqlserverservicebroker消息队列的方式实现数据同步。由于部署了多台服务器,在主数据层通过负载均衡确保了业务数据的稳定输入和访问。报表数据库通过数据同步的方式获取了主数据库中的数据,可做到防灾备份的功能,并且结合c++builder设计了定制报表和通用报表,做到了通用报表的自定义功能。

附图说明

在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。

图1示出了本发明的基于防灾备份功能的通用报表生成方法的实施例的流程图。

图2示出了采用本发明的通用报表生成方法实现的系统的运行流程示意图。

具体实施方式

以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。

图1示出了本发明的基于防灾备份功能的通用报表生成方法的实施例的流程,图2示出了采用本发明的通用报表生成方法实现的系统的运行流程。请参见图1和图2,下面是对本实施例的通用报表生成方法的各个步骤的详细描述。

步骤s1:给字段的属性设定唯一码,匹配到数据库表结构中的字段,用于后续字段的分类和用户设计报表。

在程序设计初期,对于那些用于通用报表的字段池中的字段属性进行编号处理,用javascript对那些需要设定为报表的字段设定唯一码,并对应于数据库的表结构中的字段。设定唯一码后,便于后期对字段属性的大类进行分类处理。

由于快递行业的业务类型众多,通过对已编号的字段属性进行大类划分的分类,可以方便用户区分字段的类别,方便用户在ui界面按类别设计报表,否则字段杂乱无章,不方便用户选取。

字段属性可分为3大类(具体可按可快递公司的业务重新分类):陆运,航空,其他。

大类中分的小类为:

步骤s2:设计报表生成程序,包括定制报表和通用报表。

对于有定制格式的定制报表,比如发货单、收据等报表,可以使用c++builder的技术设计报表的格式。对于有排版要求的报表,如收据报表,可以通过c++builder技术设计报表界面,等程序运行后,直接通过拼接sql的方式抓取数据并填入到对应的表格中。该技术可以在不需要第三方插件的情况下,实现动态报表的制作。

对于没有定制格式的通用报表,这类报表没有排版要求,只需要导出表头和业务数据到excel中的报表,可以使用c++builder的技术,关联程序中的报表字段和数据库表结构中的字段,将所有报表字段嵌入,根据用户在ui界面选取的业务数据和查询条件,c++builder通过拼接sql的方式抓取数据并导出表头和抓取的数据到excel中。

步骤s3:开发用户设计报表的界面。

用c#开发用户ui界面,用于用户设计通用报表;对于定制报表,前期通过c++builder技术,已经确认格式和字段,可直接导出,无需重新设计。

步骤s4:将所有报表字段嵌入程序。

通过visualstudio平台,使用c#和c++混编技术,将c++builder嵌入到c#中,可实现报表生成程序和用户界面的结合。

步骤s5:部署多台用户访问web,通过负载均衡软件,实现用户分布式访问数据库。

由于大型快递公司的业务数据量达到每日千万条数据,为了确保用户的访问性能,需要部署多台服务器,并安装负载均衡软件,确保一台服务器挂机后,通过负载均衡软件用户可以正常访问数据库。

步骤s6:实现主数据库和报表数据库的数据同步。

数据库分为主数据库和报表数据库。主数据库用于业务数据的写入操作可实现数据实时同步,报表数据库用于报表的生成和导出,减轻主数据库的访问压力,并且报表数据库可作防灾备份的功能。

通过sqlserverservicebroker消息队列的方式从主数据库中实现数据同步,这样报表数据库可以做到防灾备份的功能:servicebroker为sqlserver提供消息队列,这提供了从数据库中发送异步事务性消息队列的方法。servicebroker消息可以保证以适当的顺序或原始的发送顺序不重复地一次性接收,并且因为内建在sqlserver中,这些消息在数据库发生故障时是可以恢复的,也可以随数据库一起备份。此方法提供了一个功能强大的一部编程模型,缩短了交互式响应时间;同时提供了可靠的消息传递服务,并可以对网络的消息加密。

报表数据库可单独部署在另一台服务器,就不会影响主数据库的性能,提高了用户体验。

步骤s7:开启报表生成程序,实现定制报表和通用报表的功能。

尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。

本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。

结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。

结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。

在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。

提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1