本技术属于计算机,涉及软件工程与报表设计,尤其涉及一种报表设计器及跨平台通用报表打印实现方法及系统。
背景技术:
1、目前,不同操作系统和设备上的报表设计和打印工具不兼容,导致受众范围被约束,降低了使用效率,同时也加大了管理和维护负担,影响了整体的业务流程协同和信息技术集成。具体表现有以下几点:
2、1、传统报表设计工具往往受限于固定组件集和缺乏动态扩展能力,难以满足日益增长的个性化和复杂数据处理需求;
3、2、平台依赖性高:通常报表工具只适用于特定的操作系统或硬件环境,这就意味着设计的报表只能在特定的平台上使用,在非目标平台上无法正常使用或展现,导致用户无法在他们所使用的系统上预览、设计和打印报表;
4、3、兼容性问题:由于不同操作系统间的数据格式、字体渲染、打印驱动等方面的差异,报表在设计和打印时可能面临兼容性问题,如样式丢失、排版错乱、图形显示不正常等情况;
5、4、开发与维护成本增加:为了满足不同平台系统的需求,开发者需要针对每个平台单独进行开发,这会导致开发成本和后期维护成本上升;
6、5、用户体验不一致:不同平台上的报表在外观、交互方式以及打印效果上可能存在因平台特性而造成的差异,导致用户体验不一致,影响工作效率和满意度;
7、6、协作不便:在多环境下数据共享时,如果各方使用的报表或模板不兼容,会让报表的传输、编辑和以及审阅过程将变得复杂和低效。
8、针对现有报表设计工具在组件丰富性、灵活性及数据处理能力方面和跨系统打印输出方面的不足,提出本技术。
技术实现思路
1、针对上述相关现有技术不足,本技术提供一种报表设计器,其集成了多套可视化组件、支持pascal script engine以实现无需编程即可快速设计、动态扩展和灵活处理数据的报表解决方案,同时提供一种跨平台通用报表打印实现方法与系统,不受操作系统、硬件等差异所带来的兼容性影响,可独立运行于基于信创标准的国产化操作系统以及windows、linux、unix系统中,实现多平台统一报表设计与输出功能,并在不同操作系统上查看的一致性效果,只需集中精力维护一套代码即可,降低开发维护成本。
2、为了实现上述目的,本发明采用以下技术:
3、一种报表设计器,包括组件库、拖拽式设计界面以及pascal script engine集成模块;
4、组件库包含至少一种用于数据绑定的组件和多种展示组件;用于数据绑定的组件包括tdatasource等,展示组件包括文本框控件tmemo、静态标签控件tlabel、下拉组件tcombobox、多选框控件tcheckbox、单选按键控件tradiobutton、图像控件timage等;
5、拖拽式设计界面用于支持用户通过拖拽操作进行布局设计,组件库的组件支持通过注册机制动态添加至拖拽式设计界面中;
6、pascal script engine集成模块用于供用户通过脚本自定义报表逻辑,包括数据处理、函数调用,脚本的引擎支持外部脚本的导入与执行。
7、一种跨平台通用报表打印实现方法,包括步骤:
8、报表设计阶段:
9、利用在客户端上预先部署所述的报表设计器进行报表模板的新增或编辑;
10、将新增或编辑的报表模板上传到预先部署的module服务器,以存入于module服务器上预先建立的标准模板库中,并使module服务器更新与标准模板库中的报表模板对应的模板信息列表;
11、打印输出阶段:
12、根据module服务器提供的模板信息列表,从中选择指定报表模板向module服务器发起获取请求,以使module服务器从标准模板库中调取并返回所请求的报表模板;
13、对返回的报表模板进行解析,提取报表模板中的标签,并在提取到带有数据源属性的标签时,根据标签向数据源请求数据;其中,数据源中的数据与标签具有预设的映射关系;
14、将请求得到的数据转换为根据标签属性预定格式的结构化数据后,与标签一起放入预先创建的泛型容器中;
15、在内存中创建模板展示容器,并在展示容器中创建指定尺寸的画布;
16、循环读取泛型容器中的标签及对应的结构化数据,根据标签属性将结构化数据通过drawdata方法画到画布上,直到泛型容器中所有结构化数据均已渲染到画布上;
17、将渲染后的画布转存为文件格式输出。
18、一种跨平台通用报表打印实现系统,包括位于不同操作系统的客户端、预先部署的module服务器和数据源;
19、设计器部署阶段:
20、可在单个客户端或多个客户端预先部署所述的报表设计器;
21、报表设计阶段:
22、在客户端上利用报表设计器进行报表模板的新增或编辑;
23、客户端将新增或编辑的报表模板上传到预先部署的module服务器;
24、module服务器将上传的报表模板存入于module服务器上预先建立的标准模板库中,并更新与标准模板库中的报表模板对应的模板信息列表;
25、打印输出阶段:
26、module服务器向各客户端提供的模板信息列表;
27、客户端从模板信息列表中选择指定报表模板向module服务器发起获取请求;
28、module服务器从标准模板库中调取并返回所请求的报表模板;
29、客户端对返回的报表模板进行解析,提取报表模板中的标签,并在提取到带有数据源属性的标签时,根据标签向数据源请求数据,数据源向客户端返回所请求的数据;其中,数据源中的数据与标签具有预设的映射关系;
30、客户端将数据源返回的数据转换为根据标签属性预定格式的结构化数据后,与标签一起放入预先创建的泛型容器中;
31、客户端在内存中创建模板展示容器,并在展示容器中创建指定尺寸的画布;
32、客户端循环读取泛型容器中的标签及对应的结构化数据,根据标签属性将结构化数据通过drawdata方法画到画布上,直到泛型容器中所有结构化数据均已渲染到画布上;
33、客户端将渲染后的画布转存为文件格式输出。
34、本发明有益效果在于:
35、1、融合了组件化设计理念、拖拽式界面构建技术以及脚本引擎的集成,打造了一个高度可定制化、易于扩展的跨系统的报表设计器;组件化与拖拽式设计大幅缩短了报表设计周期,降低了技术门槛;独立组件注册机制和脚本引擎的集成,使得系统能够轻松接纳新功能和自定义逻辑;通过脚本执行引擎,用户可根据具体业务需求动态调整报表逻辑,无需系统升级,加快了迭代速度;
36、2、设计器可以脱离数据源进行模板编辑;操作简便,利用鼠标拖拽就可以对报表进行编辑和调整;所见即所得,在进行报表设计时,在无据源的支持下就能直接的展示预览效果(格式、位置等),这样以便根据展示结果进行调整改进;
37、通过pascal script engine集成模块预置公式的编辑器,当报表涉及数据运算操作时,可提供极强的公式预算能力,包括算数运算(+-*/)、最大值、最小值、平均数等。除了提供常用函数外,还能根据用户的需要,定义一些变量和常量,方便在报表中使用。设计器预置有外部脚本执行功能:除报表内部定义的函数外。报表提供了自定义的脚本执行接口。用户或开发人员,可以根据实际需要,将自定义的脚本导入到报表中,在设计报表时,调用植入的函数就可以实现相应的功能。
38、3、本发明提供的方法及系统,可以设计出能够在多种操作系统(如windows、macos、linux等)和多种设备(包括pc、笔记本、平板电脑、智能手机等)上无缝运行的报表,极大地提高了报表的适用范围和实用性;无论在何种设备或操作系统上查看报表,都可以得到一致的视觉效果、操作体验和打印质量,实现在不同设备不同系统之间共享和编辑报表;支持连接多种类型的数据源,包括但不限于关系型数据库、nosql数据库、api接口等,能实现数据的跨平台整合与输出;只需要一次性开发即可满足在多个平台上进行编译运行需求,大大减少了重复劳动和额外的开发成本,同时也简化了后续的维护工作,只需集中精力维护一套代码即可。
1.一种报表设计器,其特征在于,包括组件库、拖拽式设计界面以及pascal scriptengine集成模块;
2.根据权利要求1所述的报表设计器,其特征在于,用于数据绑定的组件包括tdatasource,展示组件包括文本框控件tmemo、静态标签控件tlabel、下拉组件tcombobox、多选框控件tcheckbox、单选按键控件tradiobutton、图像控件timage。
3.一种跨平台通用报表打印实现方法,其特征在于,包括步骤:
4.根据权利要求3所述的跨平台通用报表打印实现方法,其特征在于,所述新增或编辑的报表模板,是通过编辑器创建gui报表容器,在其内根据需求的报表样式设置标签及标签属性,并做好数据映射,然后保存为内存流,配置模板名称和描述信息后,通过http协议上传到module服务器。
5.根据权利要求3所述的跨平台通用报表打印实现方法,其特征在于,数据源为关系数据库或nosql数据库或api接口,或为包含表格数据、文本数据、来自webapi数据中的一种或多种数据的excel文件或csv文件。
6.根据权利要求3所述的跨平台通用报表打印实现方法,其特征在于,文件格式包括pdf、jpg、bmp、png、html中的一种,文件格式为html时,先将标签分解为html标准语法后再进行转换输出。
7.根据权利要求3所述的跨平台通用报表打印实现方法,其特征在于,报表设计器运行时,支持将编写好的自定义函数的脚本文件通过导入的方式引入到报表设计器中,经过pascal script engine集成模块编译/语法检测后提供给组件库的组件使用,同时脚本文件的代码会同步到module服务器,以便于其他客户端的报表设计器通过更新后也具备该自定义函数的调用方法;解析模板时,检测到有自定义函数时会通过脚本引擎执行自定义函数对应的脚本文件内容,并将执行结果以进行渲染并显示出来。
8.一种跨平台通用报表打印实现系统,其特征在于,包括位于不同操作系统的客户端、预先部署的module服务器和数据源;
9.根据权利要求8所述的跨平台通用报表打印实现系统,其特征在于,客户端对返回的报表模板进行解析时,通过调用解析引擎解析对返回的报表模板进行解析,若创建解析引擎失败,则提示异常并退出;
10.根据权利要求8所述的跨平台通用报表打印实现系统,其特征在于,所述不同操作系统包括windows、linux、macos、unix、ubuntu、centos、麒麟、统信、中标、欧拉中的至少两种。