一种税控系统中模板数据格式化打印方法

文档序号:8339340阅读:241来源:国知局
一种税控系统中模板数据格式化打印方法
【技术领域】
[0001]本发明涉及一种数据格式化打印方法,具体而言,涉及一种税控系统中模板数据格式化打印方法。
【背景技术】
[0002]目前,在税控系统中,数据在发票上打印显示时需要先对数据进行格式化使其成为字符串,然后再打印到发票票面上。在传统的数据打印解决方案中,所有的数据格式化均由开发人员对数据进行处理后再显示,由于开发人员对发票模版格式了解不足,从而导致数据硬编码在程序中,使得出错率增加,修改复杂度大。因此,分离数据格式化内容,实现由发票模版中的元素决定数据的显示格式,降低数据与打印文件的耦合度,降低数据格式化过程的复杂度和出错率是数据打印的发展方向。

【发明内容】

[0003]本发明提供一种税控系统中模板数据格式化打印方法,用以实现发票票面元素尤其是以数据样式显示的票面元素在发票票面上的格式化打印。
[0004]为达到上述目的,本发明提供了一种税控系统中模板数据格式化打印方法,包括以下步骤:
[0005]为发票打印模板中的所有票面元素分别绑定一个唯一的编码及一种显示样式,并将绑定的编码及显示样式信息写入打印模板文件中与每个票面元素分别对应的节点文本;
[0006]提取出发票打印模板中所有以数据样式显示的票面元素,为每个以数据样式显示的票面元素分别绑定一种数据类型及一个格式化掩码,并将绑定的数据类型及格式化掩码信息写入打印模板文件中与每个票面元素分别对应的节点文本,根据每个以数据样式显示的票面元素绑定的编码组织数据文件,其中,数据文件包含每个以数据样式显示的票面元素自身的值及其绑定的编码;
[0007]将打印模板文件发送至打印模块,打印模块中的模板解析函数首先读取打印模板文件中包含的所有不以数据样式显示的票面元素对应的编码及显示样式,由打印模块中的打印函数将所有不以数据样式显示的票面元素绘制在发票票面的对应位置;
[0008]打印模块中的模板解析函数读取打印模板文件中每个以数据样式显示的票面元素的节点文本并提取出其绑定的编码、数据类型及格式化掩码;
[0009]根据每个以数据样式显示的票面元素绑定的编码遍历数据文件,获得每个以数据样式显示的票面元素自身的值;
[0010]根据每个以数据样式显示的票面元素绑定的数据类型,将每个以数据样式显示的票面元素自身的值强制转化为绑定的数据类型;
[0011]根据每个以数据样式显示的票面元素绑定的格式化掩码,将每个强制转化后的以数据样式显示的票面元素对应的值转化为指定的字符串格式;
[0012]打印模块中的格式化函数解析每个以数据样式显示的票面元素对应的字符串格式,并将解析信息传递至打印模块中的打印函数;
[0013]打印函数根据每个以数据样式显示的票面元素对应的解析信息在发票票面的对应位置绘制该票面元素,绘制完所有以数据样式显示的票面元素后即完成发票的打印。
[0014]可选的,在默认情况下,每一个以数据样式显示的票面元素的数据类型均为字符串型。
[0015]可选的,票面元素的数据类型至少包括:整型、单精度浮点型、双精度浮点型、日期时间型、字符串型。
[0016]可选的,当票面元素的数据类型不为整型、单精度浮点型、双精度浮点型、日期时间型、字符串型中的任意一种时,将票面元素按文本类型处理。
[0017]可选的,格式化掩码为字符串格式且包含一对{},其中,{}内为需要格式化的内容。
[0018]可选的,在格式化掩码中,C表示货币格式,D表示10进制,N表示用逗号分割千分位’#表示数字占位符,O表示O占位符,Y表示年占位符,M表示月占位符,D表示日占位符。
[0019]可选的,格式化掩码使用标识符和位宽表示非字符符号,其中,标识符以‘[’开始,为两位大写字符,位宽为两位数字。
[0020]可选的,当格式化掩码不包含非字符符号时,解析信息包括票面元素的绘制位置和绘制格式;当格式化掩码包含非字符符号时,解析信息包括票面元素的绘制位置、绘制格式、非字符符号的占位信息以及绘制函数。
[0021]可选的,绘制格式包括绘制区域的长度、宽度、绘制坐标、绘制采用的线型及字体、水平及垂直方向的对齐方式,非字符符号的占位信息包括非字符符号的起始绘制位置及占据的位宽。
[0022]可选的,当读取到的某个以数据样式显示的票面元素对应的格式化掩码为空时,不对该票面元素作进一步处理。
[0023]本发明提供的税控系统中模板数据格式化打印方法将打印数据与发票打印模板分离,降低了发票打印模板设计及修改的复杂度,使得开发人员无需了解数据显示的具体实现方式,仅需按照指定的数据类型传递数据即可方便的对以数据样式显示的票面元素进行格式化打印,降低了打印过程中数据的出错率。
【附图说明】
[0024]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本发明一实施例的税控系统中模板数据格式化打印方法的流程图。
【具体实施方式】
[0026]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]图1为本发明一个实施例的税控系统中模板数据格式化打印方法的流程图,如图所示,该打印方法包括以下步骤:
[0028]SllO:为发票打印模板中的所有票面元素分别绑定一个唯一的编码及一种显示样式,并将绑定的编码及显示样式信息写入打印模板文件中与每个票面元素分别对应的节点文本;
[0029]其中,票面元素按照其显示样式可分为以数据样式显示的票面元素和不以数据样式显示的票面元素两大类。由于以数据样式显示的票面元素与具体的数据相关联,故在每次打印时均需传入具体的数值;不以数据样式显示的票面元素则以图片、直线、文字以及选中框等样式显示,在打印过程中不与具体的数据相关联,故在打印时直接根据其设定的显示样式即可进行打印。另外,打印模板文件中为每个票面元素分配有一个节点文本,用以记录与该节点有关的信息,节点文本记录了节点的所有属性。
[0030]S120:提取出发票打印模板中所有以数据样式显示的票面元素,为每个以数据样式显示的票面元素分别绑定一种数据类型及一个格式化掩码,并将绑定的数据类型及格式化掩码信息写入打印模板文件中与每个票面元素分别对应的节点文本,根据每个以数据样式显示的票面元素绑定的编码组织数据文件,其中,数据文件包含每个以数据样式显示的票面元素自身的值及其绑定的编码;
[0031]其中,在默认情况下,每个以数据样式显示的票面元素的数据类型均为字符串型(string型),还可将以数据样式显示的票面元素的数据类型绑定为整型(int型)、单精度浮点型(float型)、双精度浮点型(double型)、日期时间型(datetime型)或字符串型(string型),当以数据样式显示的票面元素的数据类型不为以上任意一种时,则将其按文本类型处理。
[0032]另外,以数据样式显示的票面元素绑定的格式化掩码为字符串格式,格式化掩码以任意字符开头,任意字符结尾,且包含一对H,H内为需要格式化的内容,H外还可以包含其他固定的字符、特殊字符以及非字符符号(电脑字符编码库中不存在的符号)。其中,在格式化掩码中,使用C表示货币格式,D表示10进制,N表示用逗号分割千分位,#表示数字占位符,O表示O占位符,Y表示年占位符,M表示月占位符,D表示日占位符。格式化掩码中的非字符符号使用标识符和位宽表示,其中,标识符以‘[’开始,为两位大写字符,位宽为两位数字。
[0033]例如:“{########0.00} ”、“ {########0.00}美元”、“ {########0.00} $ ” 均可作为格式化掩码,其中,表示占位符,“O”表示必要占位符,”表示小数点。当格式化掩码中包含非字符符号如六角雪花符号时,可以使用如“ [AA02]”来表示,此时格式化掩码可为:“ {########0.00} [AA02] ”。其中“AA”表示六角雪花符号,“02”表示六角雪花符号的位宽为两个字节,也即六角雪花符号占据的空间与一个汉字占据的空间相同。
[0034]S130:将打印模板文件发送至打印模块,打印模块中的模板解析函数首先读取打印模板文件中包含的所有不以数据样式显示的票面元素对应的编码及显示样式,由打印模块中的打印函数将所有不以数据样式显示的票面元素绘制在发票票面的对应位置;
[0035]其中,打印不以数据样式显示的票面元素时无需读取数据文件,根据其对应的节点文本记录的该票面元素的属性即可在发票票面的相应位置完成对应元素的打印。
[0036]S140:打印模块中的模板解析函数读取打印模板文件中每个以数据样式显示的票面元素的节点文本并提取出其绑定的编码、数据类型及格式化掩码;
[0037]其中,通过每个以数据样式显示的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1