CN107402729B - 打印模板构建方法及模板打印方法 - Google Patents

打印模板构建方法及模板打印方法 Download PDF

Info

Publication number
CN107402729B
CN107402729B CN201610341579.7A CN201610341579A CN107402729B CN 107402729 B CN107402729 B CN 107402729B CN 201610341579 A CN201610341579 A CN 201610341579A CN 107402729 B CN107402729 B CN 107402729B
Authority
CN
China
Prior art keywords
printing
template
data
row
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610341579.7A
Other languages
English (en)
Other versions
CN107402729A (zh
Inventor
谢建军
解军伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisino Corp
Original Assignee
Aisino Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aisino Corp filed Critical Aisino Corp
Priority to CN201610341579.7A priority Critical patent/CN107402729B/zh
Publication of CN107402729A publication Critical patent/CN107402729A/zh
Application granted granted Critical
Publication of CN107402729B publication Critical patent/CN107402729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Record Information Processing For Printing (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明涉及打印控制领域,公开了一种打印模板构建方法及模板打印方法。其中打印模板构建方法包括:根据打印模板分类标识建立打印模板分类;为所述打印模板分类设置多个数据源,其中所述多个数据源包括一个主表类型的数据源以及一个或多个子表类型的数据源;为所述打印模板分类设置对应的打印变量;以及提取空白的文字处理程序表格,为所述表格中的至少一个单元格设置打印变量,以及将设置所述打印变量的表格保存为对应于所述打印模板分类的打印模板。通过上述技术方案,设计打印模板操作容易,不需要安装第三方的打印插件,极大地提高了企业用户进行模板打印时的工作效率。

Description

打印模板构建方法及模板打印方法
技术领域
本发明涉及打印控制领域,具体地,涉及一种打印模板构建方法及模板打印方法。
背景技术
银行、政府、企业等各行各业在办公的过程中都不可避免的要用到打印机,而这些需要打印的信息可能牵涉到用户或其客户的各种机密信息。而这些机密信息在打印过程中可能存在各种不可控的因素而导致泄露。比如,在打印前容易出现用户打印不受控制,造成机密信息泄露;而在用户打印过程中,最常见的就是用户打印完成之后忘记及时取回打印资料而造成泄密;而这些资料一旦泄密,就很难再去追根溯源找到泄露途径。除了打印过程中由于不确认因素存在的安全隐患外,打印机的安全管理级别也会对用户信息是否安全造成影响。为了信息绝对确保安全,用户需要在安全可控环境下进行打印操作。
目前在国产安全可控环境下还没有模板打印的解决方案,公知的模板打印都是针对windows操作系统进行设计的,一般都需要在浏览器上安装打印插件,经常会出现因为系统环境而安装不上插件的问题,从而无法进行模板打印。
针对上述问题,现有技术中尚无良好解决方案。
发明内容
本发明的目的是提供一种打印模板构建方法及模板打印方法,该方法能够在安全可控环境下实现模板打印。
为了实现上述目的,本发明提供一种打印模板构建方法,该方法包括:
根据打印模板分类标识建立打印模板分类;
为所述打印模板分类设置多个数据源,其中所述多个数据源包括一个主表类型的数据源以及一个或多个子表类型的数据源;
为所述打印模板分类设置对应的打印变量;以及
提取空白的文字处理程序表格,为所述表格中的至少一个单元格设置打印变量,以及将设置所述打印变量的表格保存为对应于所述打印模板分类的打印模板。
进一步地,该方法包括:在所述打印模板分类中配置至少一个打印模板的打印模板信息,其中所述打印模板信息包括以下至少之一者:打印模板编码、打印模板名称、明细行数、套打信息、默认模板信息、本页合计行位置、末页补空行信息。
进一步地,所述打印模板分类标识包括分类的编码和/或名称。
进一步地,设置所述数据源包括设置数据源的信息,其中所述数据源的信息包括以下中的至少一者:数据源的ID、数据源类型、数据源、类型、排序列、ID关联字段,其中所述数据源类型包括自定义类型和实体类型,以及所述类型包括主表类型和子表类型。
进一步地,所述打印变量包括以下至少之一者:变量名称、变量编码、数据类型、格式、精度。
本发明的另一个方面,提供了一种使用上述方法构建的打印模板打印的方法,该方法包括:
接收打印模板分类的编码和需要打印数据主表的主键;
根据所述打印模板分类的编码查找打印模板;
根据所述打印数据主表的主键和数据源组织打印数据;以及
将所述打印模板和所组织的打印数据拼装成打印内容以进行打印。
进一步地,将所组织的打印数据拼装成所述打印内容后,该方法还包括将所述打印内容以XML字符串发送到文字处理程序。
进一步地,该方法包括:判断所述打印模板是否为套打;以及当所述打印模板为套打时,去除所述打印模板中的边框和文字标题。
进一步地,该方法包括:
根据打印模板的每页明细行数确定调用有分页的处理过程或无分页的处理过程,其中,当所述每页明细行数为0或空时,调用如下无分页的处理过程:
遍历所述打印模板中所有带子表变量的Row节点,从Row节点中找到数据源的ID;
从打印数据中取出该数据源的ID对应的打印数据,判断所取出的打印数据是否为空,如果为空则将该Row节点的所有带变量的Cell节点内容设置为空;如果不为空,判断该Row节点在包括所有Row节点的数组中的位置,将该位置作为打印数据的插入位置,然后在数组中删除该行;
循环所有的打印数据,数组的每项数据为Map类型,克隆带子表变量的Row节点,将Row节点的所有包含变量的Cell节点内容替换成Map类型中的打印数据,再将该Row节点插入到包括所有Row节点的数组中。
进一步地,当所述每页明细行数不为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节点数组中。
通过上述技术方案,设计打印模板操作容易,不需要安装第三方的打印插件,极大地提高了企业用户进行模板打印时的工作效率。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是本发明实施方式提供的打印模板构建方法流程图;
图2是本发明示例实施方式提供的打印模板构建方法流程图;
图3是本发明实施方式提供的一种使用打印模板打印的方法流程图;
图4是本发明示例实施方式提供的一种使用打印模板打印的方法流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1是本发明实施方式提供的打印模板构建方法流程图。如图1所示,本发明提供一种打印模板构建方法,该方法包括:
S101,根据打印模板分类标识建立打印模板分类;
S102,为所述打印模板分类设置多个数据源,其中所述多个数据源包括一个主表类型的数据源以及一个或多个子表类型的数据源;
S103,为所述打印模板分类设置对应的打印变量;以及
S104,提取空白的文字处理程序表格,为所述表格中的至少一个单元格设置打印变量,以及将设置所述打印变量的表格保存为对应于所述打印模板分类的打印模板。
通过上述技术方案,设计打印模板操作容易,不需要安装第三方的打印插件,极大地提高了企业用户进行模板打印时的工作效率。
在上述实施方式中,文字处理程序可以是WPS程序,相应地,文字处理程序表格可以是WPS表格。通过WPS表格建立打印模板,可以利用WPS程序调用打印程序进行打印。在实施方式中,上述方法可以包括:在所述打印模板分类中配置至少一个打印模板的打印模板信息,其中所述打印模板信息包括以下至少之一者:打印模板编码、打印模板名称、明细行数、套打信息、默认模板信息、本页合计行位置、末页补空行信息。其中,所述打印模板分类标识可以包括分类的编码和/或名称。本领域技术人员可以理解,编码、名称、代码等具有标识作用的符号可以用作打印模板分类标识。
在实施方式中,可以通过设置数据源的信息来对数据源进行设置,其中数据源的信息可以包括以下中的至少一者:数据源的ID、数据源类型、数据源、类型、排序列、ID关联字段,其中所述数据源类型包括自定义类型和实体类型,以及所述类型包括主表类型和子表类型。本领域的技术人员可以理解打印模板的建立或打印过程需要配置打印变量,举例的打印变量可以包括以下至少之一者:变量名称、变量编码、数据类型、格式、精度。
以下,结合图2从程序设置执行角度对本发明的实施方式进行描述。图2是本发明示例实施方式提供的打印模板构建方法流程图。在实施方式中,考虑到人机交互过程,可以通过页面设置来实现本发明上述实施方式提供的方法。
在一个举例的实施方式中提供多个操作页面实现上述基于WPS表格的模板打印方案,其中:
打印模板分类数据维护过程,用于配置打印模板分类;实体维护过程,用于配置实体和对应字段信息;打印模板分类数据源维护过程,用于配置打印分类的数据来源;打印模板管理过程,用于配置打印模板的基本信息;打印变量维护过程,用于配置打印变量信息;打印模板设计过程,用于设计打印模板的样式。
其中,针对各个操作过程的功能描述如下:
S201,打印模板分类数据维护过程具体内容包括:在打印模板分类数据维护过程,可以新增、修改、删除打印模板分类,打印分类信息包括编码、名称和单据类型,配置单据类型作用是根据单据类型可以找到打印模板分类。一个打印模板分类下面可能包括多个打印模板。
实体维护过程具体内容包括:用来配置实体和对应字段信息,每一个实体对应一张数据表,实体的字段为数据库表的字段信息。
S202,打印模板分类数据源维护过程具体内容包括:配置打印分类的数据源,一个打印分类可以配置一个主表类型的数据源和多个子表类型的数据源。数据源信息包括数据源的ID、数据源的类型、数据源、类型、排序列和ID关联字段。其中数据源类型分为自定义和实体两种,如果数据源类型为实体,需要设置数据源为某个具体的实体,并且需要配置ID关联字段的值。ID关联字段是用来确定实体对应数据表的主键。类型是用来区分数据源是主表类型还是子表类型。
S203,打印变量维护过程具体内容包括:设置每一个打印分类对应的数据源的打印变量。打印变量分为两种:自定义字段和实体字段。在打印模板分类数据源维护过程选择的数据源类型为实体的,添加变量时可以直接选择实体的字段。打印变量的内容包括:变量名称、变量编码、数据类型、格式、精度。其中数据类型分为字符和数字两种。格式和精度用来设置数字类型数据的显示样式。
S204,打印模板管理过程具体内容包括:配置打印模板信息,可以在某一个打印分类下面建立多个打印模板。打印模板信息包括:打印模板编码、名称、明细行数,是否套打、是否默认模板、本页合计行位置和末页是否补空行等。其中明细行数据指的是打印时每页中子表的数据行数,是否套打指的是打印时是否打印模板中的表格线和标题文字。
S205,打印模板设计过程具体内容包括:设计打印模板。在首次进行该过程的设置时,会打开一个空白的WPS表格,在该表格中设置打印模板的样式。选中某一个单元格后选择“添加主表变量”或“添加子表变量”会生成打印分类对应的打印变量,然后选择某一个变量后,会将选择的打印变量添加到WPS表格的单元格中,主表变量显示内容为{打印变量编码},子表变量显示内容为{数据源ID:打印变量编码},同时会将打印变量的名称作为表格的批注信息显示出来。
具体实施时,可以首先在打印模板分类过程,输入打印分类的编码和名称建立一个打印分类,再为该打印分类设置数据源,设置一个主表类型的数据源、一个或多个子表类型的数据源。然后在模板管理过程先设置打印分类对应的打印变量,为之前保存的每个数据源添加自定义字段或实体字段。在新建好的打印模板分类下面新建模板,输入模板编码、名称、每页明细行数和是否套打等信息后保存模板。选择保存的模板,还可以进入打印模板设计过程,设计打印模板的样式并添加主表和子表变量完成打印模板设计。
图3是本发明实施方式提供的一种使用打印模板打印的方法流程图。如图3所示,本发明的另一个方面,提供了一种使用上述方法构建的打印模板打印的方法,该方法包括:
S301,接收打印模板分类的编码和需要打印数据主表的主键;
S302,根据所述打印模板分类的编码查找打印模板;
S303,根据所述打印数据主表的主键和数据源组织打印数据;以及
S304,将所述打印模板和所组织的打印数据拼装成打印内容以进行打印。
在实施方式中,将所组织的打印数据拼装成所述打印内容后,该方法还包括将所述打印内容以XML字符串发送到文字处理程序。在需要打印的页面调用模板打印的方法,传入打印模板分类的编码和需要打印数据主表的主键,这时可以(例如,在程序后台)根据打印分类的编码查询打印模板,如果该打印分类下面有默认的打印模板,则使用默认的打印模板,如果没有则可以提供可选择的打印模板,让用户选择某一个模板作为打印模板进行打印。然后根据打印数据主表的主键和数据源部分的配置组织打印数据,最后将打印模板和组织好的数据拼装成打印内容,将打印内容以XML字符串形式返回到程序前台,通过WPS表格进行展示,调用WPS表格的打印方法进行打印或打印预览。
图4是本发明示例实施方式提供的一种使用打印模板打印的方法流程图。根据打印模板和打印数据拼装打印内容的算法可以如下:首先将XML格式的打印模板字符串转换成Document(文件)类型对象,获取打印模板的根结点,判断打印模板是否为套打(S401),如果是套打,则去掉的所有的边框(S402)和文字标题(S403)。建立一个数组用来存放所有的Row节点,遍历打印数据数组,对每一个打印数据,先克隆一份模板的所有Row节点作为新的打印模板,再找到主表类型的数据源ID,从打印数据中取出其对应的值,处理新模板中的主表类型的变量(S404),然后再判断明细行数(S405),如果每页明细行数为0或者是没有设置明细行数,则调用无分页时的模板(S407);如果每页明细行数不为0,则调用有分页的模板(S406),再将处理子表变量返回的Row(行)节点添加到所有Row节点数组中,设置模板中Table(表格)节点的内容为所有的Row节点。最后将Document类型对象转换成XML格式的字符串。
在实施方式中,去掉模板中的所有边框的方法可以是,首先取出所有的Style(类型)节点,接着遍历所有的节点,判断是否有Borders(边界)节点。如果有Borders节点,再判断该节点是否有Border子节点,如果有则去掉该Borders节点。
在实施方式中,去掉所有标题文字的方法可以是,首先取出模板中所有的Row节点,循环所有的Row节点,再取出Row节点下面的所有Cell(细胞)节点,循环所有的Cell节点,取出其Data子结点,如果其内容不为空并且不以{号开头,说明不是打印变量,设置Data(数据)节点的内容为空。
在实施方式中,处理新模板中的主表类型的变量方法可以是,循环所有的Row节点,取出Row节点下面的Cell节点,再循环所有的Cell节点,取出其Data子节点,判断其内容是否以{开头,如果是则取出括号中的变量,再从打印数据中取该变量对应的值,然后设置Data内容为变量的值。
进一步地,上述方法可以包括:
根据打印模板的每页明细行数确定调用有分页的处理过程或无分页的处理过程,其中,当所述每页明细行数为0或空时,调用如下无分页的处理过程:
遍历所述打印模板中所有带子表变量的Row节点,从Row节点中找到数据源的ID;
从打印数据中取出该数据源的ID对应的打印数据,判断所取出的打印数据是否为空,如果为空则将该Row节点的所有带变量的Cell节点内容设置为空;如果不为空,判断该Row节点在包括所有Row节点的数组中的位置,将该位置作为打印数据的插入位置,然后在数组中删除该行;
循环所有的打印数据,数组的每项数据为Map(映射)类型,克隆带子表变量的Row节点,将Row节点的所有包含变量的Cell节点内容替换成Map类型中的打印数据,再将该Row节点插入到包括所有Row节点的数组中。
其中,打印数据为数组类型,每一个数据为Map类型,key为打印数据源的ID,值为数据源对应的打印数据,主表类型的打印数据源值为Map类型,子表类型的打印数据源值为数组类型,数组的每一项为Map类型。
在上述实施方式中,从模板的所有Row节点中找到带子表变量的Row节点的方法可以是,循环所有的Row节点,取出所有的Cell子节点,再循环所有的Cell节点,取出其Data子节点,判断以否以{号开头并且其中包含冒号,如果是说明该Row节点就是带子表变量的行。冒号前面的字符串为数据源ID,冒号后面的字符串为打印变量编码。
相应地,当所述每页明细行数不为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节点数组中。
在上述有分页的处理过程中,首先从模板中所有Row节点中找到带子表变量的Row节点,接着只针对第一个带子表变量的Row节点进行分页处理,其他的带子表变量的Row节点按没有分页时的逻辑处理。从带子表变量的Row节点数组中取出第一个Row节点,然后根据带子表变量Row节点中的变量找到数据源ID,然后再从打印数据中取出数据源ID对应的数据,该数据为数组类型。如果取出的打印数据为空,则直接设置该Row节点中包含变量的Cell节点内容为空,接着按没有分页时的逻辑处理其他带子表变量的Row节点。
通过上述技术方案,通过配置打印数据源,在WPS表格上设计打印模板,在WPS表格上配置打印变量,能够自动生成WPS表格显示需要的XML字符串,然后使用WPS表格的打印功能进行打印或打印预览。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

Claims (10)

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节点数组中。
CN201610341579.7A 2016-05-20 2016-05-20 打印模板构建方法及模板打印方法 Active CN107402729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610341579.7A CN107402729B (zh) 2016-05-20 2016-05-20 打印模板构建方法及模板打印方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610341579.7A CN107402729B (zh) 2016-05-20 2016-05-20 打印模板构建方法及模板打印方法

Publications (2)

Publication Number Publication Date
CN107402729A CN107402729A (zh) 2017-11-28
CN107402729B true CN107402729B (zh) 2020-02-14

Family

ID=60389625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610341579.7A Active CN107402729B (zh) 2016-05-20 2016-05-20 打印模板构建方法及模板打印方法

Country Status (1)

Country Link
CN (1) CN107402729B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733332B (zh) * 2018-06-19 2021-04-16 浪潮通用软件有限公司 一种通用的打印模板元数据设计方法
CN109615803A (zh) * 2018-10-09 2019-04-12 北京辰森世纪科技股份有限公司 一种数据打印方法及装置
CN109766064A (zh) * 2019-01-29 2019-05-17 深圳市快金数据技术服务有限公司 电子面单打印模板转换方法、电子面单打印模板转换装置
CN112230870B (zh) * 2020-12-08 2021-04-06 中博信息技术研究院有限公司 一种打印表格数据的方法及装置
CN112732205B (zh) * 2020-12-18 2024-06-18 航天信息股份有限公司 通用的打印设备控制方法、电子设备、存储介质及系统
CN113934384B (zh) * 2021-09-26 2024-02-09 金蝶软件(中国)有限公司 数据渲染方法、装置、计算机设备和存储介质
CN114296662B (zh) * 2021-12-28 2023-10-13 城云科技(中国)有限公司 基于网页的表格文书分页打印方法、装置及其应用

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706716A (zh) * 2009-09-08 2010-05-12 南京师范大学 基于vo的表单定制配置与解析运行方法
CN102279715A (zh) * 2011-04-18 2011-12-14 北京神州数码思特奇信息技术股份有限公司 一种通用票据打印控件的实现方法及装置
CN102789372A (zh) * 2011-05-16 2012-11-21 腾讯科技(深圳)有限公司 一种打印方法及装置
CN103631546A (zh) * 2013-12-05 2014-03-12 用友软件股份有限公司 数据输出及电子存档装置和方法、word生成装置和方法
CN103955345A (zh) * 2014-04-23 2014-07-30 中国工商银行股份有限公司 一种数据打印方法及系统
CN104714766A (zh) * 2015-03-12 2015-06-17 福建工程学院 一种web报表浏览器中直接打印的方法
CN105589686A (zh) * 2014-11-14 2016-05-18 航天信息股份有限公司 WinCE平台下基于模板的信息录入、打印方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706716A (zh) * 2009-09-08 2010-05-12 南京师范大学 基于vo的表单定制配置与解析运行方法
CN102279715A (zh) * 2011-04-18 2011-12-14 北京神州数码思特奇信息技术股份有限公司 一种通用票据打印控件的实现方法及装置
CN102789372A (zh) * 2011-05-16 2012-11-21 腾讯科技(深圳)有限公司 一种打印方法及装置
CN103631546A (zh) * 2013-12-05 2014-03-12 用友软件股份有限公司 数据输出及电子存档装置和方法、word生成装置和方法
CN103955345A (zh) * 2014-04-23 2014-07-30 中国工商银行股份有限公司 一种数据打印方法及系统
CN105589686A (zh) * 2014-11-14 2016-05-18 航天信息股份有限公司 WinCE平台下基于模板的信息录入、打印方法和装置
CN104714766A (zh) * 2015-03-12 2015-06-17 福建工程学院 一种web报表浏览器中直接打印的方法

Also Published As

Publication number Publication date
CN107402729A (zh) 2017-11-28

Similar Documents

Publication Publication Date Title
CN107402729B (zh) 打印模板构建方法及模板打印方法
CN100416591C (zh) 字符识别电子设备和字符识别方法
US20050172227A1 (en) Ensuring proper rendering order of bidirectionally rendered text
CN110705237B (zh) 文档的自动生成方法、数据处理设备及存储介质
CN109284145A (zh) 多语言配置文件的生成和展示方法及装置、设备和介质
JP2020187733A (ja) アプリケーション・プログラミング・インターフェースのドキュメンテーションの注釈付け
CN113836947B (zh) 机器翻译译后的术语翻译方法、装置、设备及存储介质
CN104536998A (zh) 一种数据导入方法及装置
CN113360106B (zh) 一种网页打印方法和装置
CN112559112B (zh) 界面节点定位方法及装置
CN110134920A (zh) 绘文字兼容显示方法、装置、终端及计算机可读存储介质
CN114816170A (zh) 规则方案生成方法、装置、介质及电子设备
CN110929100A (zh) 获取取值路径的方法、装置、存储介质和电子设备
JP6994138B2 (ja) 情報管理装置並びにファイル管理方法
CN113076722B (zh) 报告生成方法、装置、计算机设备及存储介质
CN109840080B (zh) 字符属性比较方法、装置、存储介质及电子设备
CN111767223B (zh) 一种文件处理方法、装置、电子设备及存储介质
JP2004348341A (ja) 構造化文書処理システム、構造化文書処理方法及びプログラム
CN100390783C (zh) 进行格变换的方法和系统
CN113536762A (zh) Json文本的比对方法及装置
CN109684437B (zh) 用于文件比较的内容对齐方法、装置、存储介质和设备
JP7383882B2 (ja) 情報処理装置、及び情報処理プログラム
JP2016212626A (ja) Webを介した外字・異体字含有文字群入力利用システム
US11847405B1 (en) Encoding hyperlink data in a printed document
JP7501255B2 (ja) 文書検索システム、文書検索方法およびプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant