System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件开发,特别是涉及一种多模板导出的实现方法和装置。
技术介绍
1、文件导出是各行各业不可或缺的需求,目前几乎所有软件系统中均包含文件导出功能。根据导出文件的用途不同,所需文件的数据结构也不同,所以有多种文件导出的需求模板。在这个前提下,存在根据文件中的数据导出基于不同需求模板的文件的需求,且对于不同需求模板还可能存在导出不同数据格式的特定导出需求。
2、现有技术中,由于需求模板不同和特定导出需求存在不同,用于实现导出的导出方法(即相关代码的结构)也不尽相同。一个导出方法往往只能所对应一种需求模板,此时如果需求模板较多,那么总导出功能类中会存在大量基于不同需求模板的相似冗余代码;根据不同需求模板的不同特定导出需求,具体的导出方法或导出功能类中会进一步存在大量基于不同数据格式的相似冗余代码。且数据导入功能和导出功能分离在不同的代码结构中,每次进行导入和导出时,还需要额外查询所需导出的导出条目id,进一步增加了相似冗余代码。具有导出功能的软件系统存在大量相似冗余代码时,在处理请求或事务时,错误率较高,即软件系统的稳定性和可靠性较低;且不利于后续对导出功能相关代码的改动、增加和维护,例如新增需求模板,使得导出功能的可维护性与可拓展性较差。
3、鉴于此,克服该现有技术所存在的缺陷是本
亟待解决的问题。
技术实现思路
1、本专利技术要解决的技术问题是提供一种多模板导出的实现方法和装置,其目的在于使导出功能相关代码的结构便于改动、增加和维护,减少相似
2、本专利技术采用如下技术方案:
3、第一方面,本专利技术提供了一种多模板导出的实现方法,抽象出导出功能,并定义抽象工厂,包括:
4、抽象导出模块获取待导出数据的导出条目id,将所述导出条目id传入至抽象工厂;
5、所述抽象工厂的管理功能类根据所述导出条目id获取需求模板,将所述导出条目id传入至所述需求模板所对应的具体工厂;
6、所述具体工厂根据所述导出条目id,导出所述待导出数据所对应的导出文件,将所述导出文件返回至所述抽象导出模块,以通过抽象导出模块实现导出。
7、进一步地,所述抽象工厂为需求产品接口;所述具体工厂根据所述导出条目id,导出所述待导出数据所对应的导出文件包括:
8、所述具体工厂的构造函数根据所述导出条目id获取所述待导出数据的基础信息,根据所述基础信息,获取所述待导出数据;
9、确定所述待导出数据的至少一个导出数据格式;
10、所述构造函数根据所述导出数据格式,得到所述具体工厂的具体生产者;
11、所述具体生产者根据所述导出数据格式,将所述待导出数据导出,得到导出文件。
12、进一步地,所述构造函数根据所述导出数据格式,得到所述具体工厂的具体生产者包括:
13、在所述构造函数中,创建所述具体工厂的export方法;其中,所述具体工厂的export方法为所述具体工厂中的具体生产者;
14、在所述具体工厂的export方法中,添加根据导出数据格式将所述待导出数据导出的操作代码。
15、进一步地,所述具体生产者根据所述导出数据格式,将所述待导出数据导出,得到导出文件包括:
16、将所述待导出数据的导入数据格式与所述具体工厂的export方法中的导出数据格式进行匹配,确定所需的导出数据格式;
17、根据所述所需的导出数据格式所对应的操作代码,将所述待导出数据以所述所需的导出数据格式导出,得到导出文件。
18、进一步地,所述根据所述所需的导出数据格式所对应的操作代码,将所述待导出数据以所述所需的导出数据格式导出,得到导出文件包括:
19、获取预设格式的当前时间字段;根据所述当前时间字段,生成文件名;
20、根据所述文件名,生成所述待导出数据的导出url;
21、根据所述导出url,生成所需导出至的文件路径;
22、根据所述待导出数据得到所述导出文件,将所述导出文件导出至所述文件路径。
23、进一步地,一种需求模板对应一个具体工厂,所有具体工厂均由所述管理功能类统一管理。
24、进一步地,还包括:
25、当需要新增需求模板时,在所述管理功能类的getnetdocument方法中,添加第一操作代码,所述第一操作代码用于根据所述导出条目id,从相应的具体工厂中得到新增的需求模板所对应的导出文件;
26、创建新增的需求模板的具体工厂;
27、在具体工厂中,添加第二操作代码,所述第二操作代码用于根据所述新增的需求模板将所述待导出数据导出。
28、进一步地,所述在具体工厂中,添加第二操作代码包括:
29、创建抽象工厂的新增类template,作为所述新增的需求模板的具体工厂;
30、所述具体工厂中创建构造函数template;在所述构造函数template中添加获取待导出数据的基础信息的操作代码,以及添加根据基础信息获取待导出数据的操作代码;
31、确定所述新增的需求模板的至少一个新增数据格式;
32、在所述构造函数template中创建所述新增类template的export方法,添加根据所述新增数据格式将所述待导出数据导出的操作代码,以实现需求产品接口中的export方法。
33、第二方面,本专利技术提供了一种多模板导出的实现方法,从多套用于导出具体表格的原始导出代码集中,获取所需复用的原始导出代码集和所述原始导出代码集对应的具体表格;结合所述具体表格,对所述原始导出代码集进行智能分析,以根据所述原始导出代码集生成对应的通用导出模板;其中,所述原始导出代码集包括用于导出所述具体表格的全部程序指令集,以及所述全部程序指令集所涉及的调用库;所述多模板导出的实现方法还包括:
34、当指定用所述原始导出代码集生成通用导出模板时,对于原始导出代码集中的每一个数据对象,通过依次执行所述原始导出代码集中的每一行原始操作代码,确定所述数据对象与相应的原始操作代码对应的执行结果之间的关联关系;
35、根据所述关联关系,确定所述数据对象所代表的含义;根据所述含义与所述原始导出代码集,生成至少一套通用操作代码;所述通用操作代码用于替换对应的原始操作代码,将所述含义以变量参数、函数和程序指令的形式表达;
36、显示所述原始导出代码集,以复选框或注释的方式,在所述数据对象之后罗列出所生成的通用操作代码;使用选择的通用操作代码替换所述数据对象;
37、当所述原始导出代码集中的每一个数据对象均被替换为通用操作代码时,得到目标导出代码集,将所述目标导出代码集作为所述通用导出模板。
38、第三方面,本专利技术还提供本文档来自技高网...
【技术保护点】
1.一种多模板导出的实现方法,其特征在于,抽象出导出功能,并定义抽象工厂,包括:
2.根据权利要求1所述的多模板导出的实现方法,其特征在于,所述抽象工厂为需求产品接口;所述具体工厂根据所述导出条目ID,导出所述待导出数据所对应的导出文件包括:
3.根据权利要求2所述的多模板导出的实现方法,其特征在于,所述构造函数根据所述导出数据格式,得到所述具体工厂的具体生产者包括:
4.根据权利要求2所述的多模板导出的实现方法,其特征在于,所述具体生产者根据所述导出数据格式,将所述待导出数据导出,得到导出文件包括:
5.根据权利要求4所述的多模板导出的实现方法,其特征在于,所述根据所述所需的导出数据格式所对应的操作代码,将所述待导出数据以所述所需的导出数据格式导出,得到导出文件包括:
6.根据权利要求1所述的多模板导出的实现方法,其特征在于,一种需求模板对应一个具体工厂,所有具体工厂均由所述管理功能类统一管理。
7.根据权利要求6所述的多模板导出的实现方法,其特征在于,还包括:
8.根据权利要求7所述的多模板导
9.一种多模板导出的实现方法,其特征在于,从多套用于导出具体表格的原始导出代码集中,获取所需复用的原始导出代码集和所述原始导出代码集对应的具体表格;结合所述具体表格,对所述原始导出代码集进行智能分析,以根据所述原始导出代码集生成对应的通用导出模板;其中,所述原始导出代码集包括用于导出所述具体表格的全部程序指令集,以及所述全部程序指令集所涉及的调用库;所述多模板导出的实现方法还包括:
10.一种多模板导出的实现装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于实现权利要求1-9任一所述的多模板导出的实现方法。
...【技术特征摘要】
1.一种多模板导出的实现方法,其特征在于,抽象出导出功能,并定义抽象工厂,包括:
2.根据权利要求1所述的多模板导出的实现方法,其特征在于,所述抽象工厂为需求产品接口;所述具体工厂根据所述导出条目id,导出所述待导出数据所对应的导出文件包括:
3.根据权利要求2所述的多模板导出的实现方法,其特征在于,所述构造函数根据所述导出数据格式,得到所述具体工厂的具体生产者包括:
4.根据权利要求2所述的多模板导出的实现方法,其特征在于,所述具体生产者根据所述导出数据格式,将所述待导出数据导出,得到导出文件包括:
5.根据权利要求4所述的多模板导出的实现方法,其特征在于,所述根据所述所需的导出数据格式所对应的操作代码,将所述待导出数据以所述所需的导出数据格式导出,得到导出文件包括:
6.根据权利要求1所述的多模板导出的实现方法,其特征在于,一种需求模板对应一个具体工厂,所有具体工厂均由所述管理功能类统一管...
【专利技术属性】
技术研发人员:程航远,姚全锋,徐东磊,熊书文,姜萌,周健,陈宇轩,周里程,郑晶晶,
申请(专利权)人:武汉烽火技术服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。