[发明专利]打印模板构建方法及模板打印方法有效
申请号: | 201610341579.7 | 申请日: | 2016-05-20 |
公开(公告)号: | CN107402729B | 公开(公告)日: | 2020-02-14 |
发明(设计)人: | 谢建军;解军伟 | 申请(专利权)人: | 航天信息软件技术有限公司 |
主分类号: | G06F3/12 | 分类号: | G06F3/12 |
代理公司: | 11266 北京工信联合知识产权代理有限公司 | 代理人: | 姜丽楼 |
地址: | 100195 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 打印 模板 构建 方法 | ||
1.一种打印模板构建方法,其特征在于,该方法包括:
根据打印模板分类标识建立打印模板分类;
为所述打印模板分类设置多个数据源,其中所述多个数据源包括一个主表类型的数据源以及一个或多个子表类型的数据源;
为所述打印模板分类设置对应的打印变量;以及
提取空白的文字处理程序表格,为所述表格中的至少一个单元格设置打印变量,以及将设置所述打印变量的表格保存为对应于所述打印模板分类的打印模板。
2.根据权利要求1所述的打印模板构建方法,其特征在于,该方法包括:
在所述打印模板分类中配置至少一个打印模板的打印模板信息,其中所述打印模板信息包括以下至少之一者:打印模板编码、打印模板名称、明细行数、套打信息、默认模板信息、本页合计行位置、末页补空行信息。
3.根据权利要求1所述的打印模板构建方法,其特征在于,所述打印模板分类标识包括分类的编码和/或名称。
4.根据权利要求1所述的打印模板构建方法,其特征在于,设置所述数据源包括设置数据源的信息,其中所述数据源的信息包括以下中的至少一者:数据源的ID、数据源类型、数据源、类型、排序列、ID关联字段,其中所述数据源类型包括自定义类型和实体类型,以及所述类型包括主表类型和子表类型。
5.根据权利要求1所述的打印模板构建方法,其特征在于,所述打印变量包括以下至少之一者:变量名称、变量编码、数据类型、格式、精度。
6.一种使用打印模板的方法,所述打印模板为根据权利要求1-5中任一项权利要求所述的方法构建的打印模板,其特征在于,该方法包括:
接收打印模板分类的编码和需要打印数据主表的主键;
根据所述打印模板分类的编码查找打印模板;
根据所述打印数据主表的主键和数据源组织打印数据;以及
将所述打印模板和所组织的打印数据拼装成打印内容以进行打印。
7.根据权利要求6所述的方法,其特征在于,将所组织的打印数据拼装成所述打印内容后,该方法还包括将所述打印内容以XML字符串发送到文字处理程序。
8.根据权利要求6所述的方法,其特征在于,该方法包括:
判断所述打印模板是否为套打;以及
当所述打印模板为套打时,去除所述打印模板中的边框和文字标题。
9.根据权利要求6所述的方法,其特征在于,该方法包括:
根据打印模板的每页明细行数确定调用有分页的处理过程或无分页的处理过程,其中,当所述每页明细行数为0或空时,调用如下无分页的处理过程:
遍历所述打印模板中所有带子表变量的Row节点,从Row节点中找到数据源的ID;
从打印数据中取出该数据源的ID对应的打印数据,判断所取出的打印数据是否为空,如果为空则将该Row节点的所有带变量的Cell节点内容设置为空;如果不为空,判断该Row节点在包括所有Row节点的数组中的位置,将该位置作为打印数据的插入位置,然后在数组中删除该行;
循环所有的打印数据,数组的每项数据为Map类型,克隆带子表变量的Row节点,将Row节点的所有包含变量的Cell节点内容替换成Map类型中的打印数据,再将该Row节点插入到包括所有Row节点的数组中。
10.根据权利要求9所述的方法,其特征在于,当所述每页明细行数不为0时,调用如下有分页的处理过程:
从所述打印模板中找到带子表变量的Row节点,针对第一个带子表变量的Row节点:
根据带子表变量Row节点中的变量找到数据源的ID,然后再从打印数据中取出数据源的ID对应的打印数据,该打印数据为数组类型;
如果取出的打印数据为空,则直接设置该Row节点中包含变量的Cell节点内容为空;
如果取出的打印数据不为空,则新建一个数组存放所有的Row节点,判断该Row节点在包括所有Row节点的数组中的位置,将该位置作为存放每页Row节点数组的插入打印数据的位置,从模板的所有Row节点数组中删除该Row节点;
根据每页明细行数和打印数据数组的长度计算出打印页数;
循环打印页数次,针对每页建立一个数组用来存放每页的Row节点,再遍历打印模板中的所有Row节点,克隆Row节点并放入每页Row节点数组中,然后循环明细行数次,克隆带子表变量的Row节点,根据页数和行数从打印数据数组中取出数据,将该Row节点的所有包含变量的Cell节点内容替换成打印数据,再将该节点插入到每页Row节点数组中;
循环完每页明细行数次后,再处理存放每页Row节点数组中的其他子表类型的变量,方法同无分页的处理过程,再将每页Row节点数组添加到所有Row节点数组中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天信息软件技术有限公司,未经航天信息软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610341579.7/1.html,转载请声明来源钻瓜专利网。