一种工资条打印方法技术

技术编号:24330513 阅读:65 留言:0更新日期:2020-05-29 19:27
本发明专利技术公开了一种工资条打印方法,所述方法包括:配置工资条的表头和表尾变量,生成工资账表表格的列信息;配置打印基础信息;根据工资账表表格的列信息自动生成工资条模板;获取工资账表数据,拼装所述工资账表数据的表头和表尾变量,填充至工资条模板,完成工资条的打印;所述方法解决了企业信息化中工资条需要重复设计的难题,根据从工资账表表格中获取表格的所有字段信息,自动生成工资条模板,避免了工资条模板的设计工作;增加工资条配置,便于用户根据具体业务选择数据样式,保证打印的工资条数据样式和页面中的工作账表表格样式一致。

A printing method of payslip

【技术实现步骤摘要】
一种工资条打印方法
本专利技术涉及信息
,更具体地,涉及一种工资条打印方法。
技术介绍
在企业管理类型的软件中一般都会有工资管理模块,其中包含工资条打印功能,但是每个企业的工资条打印内容可能都不一样,因此,传统的做法是根据工资条打印内容每次都设计工资条模板,根据模板进行打印。但这种方式的缺点是不便于企业用户操作,同时每个企业时用户都需要重新设计,增加企业人力成本,降低工作效率。
技术实现思路
为了解决
技术介绍
存在的现有工资条打印方法不便于企业用户操作,每个企业用户使用时都需重新设计的问题,本专利技术提供了一种工资条打印方法,所述方法从工资账表表格中获取表格的所有字段信息,自动生成工资条模板,避免了工资条模板的设计工作,所述一种工资条打印方法包括:配置工资条的表头和表尾变量,生成工资账表表格的列信息;配置打印基础信息;根据工资账表表格的列信息自动生成工资条模板;获取工资账表数据,拼装所述工资账表数据的表头和表尾变量,填充至工资条模板,完成工资条的打印。进一步的,所述配置工资条的表头和表尾变量的方法包括:所述表头变量项和表尾变量项通过表格方式配置,所述表格数据为工资账表表格所有列的列信息;所述表格的列包括字段名称列、显示列以及换行列;所述字段名称列用于设置列信息的字段名称;显示列用于确定显示的字段;所述换行列用于确定字段是否换行。进一步的,所述打印基础信息包括纸张信息、打印方向以及页边距;所述纸张信息包括A3、A4、B5以及自定义打印纸张类型;所述打印方向包括横向以及纵向;所述页边距包括上方、下方、左侧以及右侧的页边距。进一步的,所述根据工资账表表格的列信息自动生成工资条模板的方法包括:获取所述列信息中的表头信息;根据所述表头信息计算工资条打印内容宽度;计算所述工资账表表格每一行显示的字段,将所述字段放入行对象数组;计算所述工资账表表格的每列宽度,将所述每列宽度放入列宽数组;获取预设的工资条模板,根据所述行对象数组、列宽数组以及预设的工资条模板生成所述工资条模板的表格内容;设置字段列合并;设置数据源信息和区块填数函数,生成工资条模板。进一步的,所述计算工资条打印内容宽度的方法包括:判断是否配置打印基础信息,如果未配置打印基础信息,设置所述工资条打印内容宽度为预设宽度;如果配置打印基础信息,提取纸张类型参数,根据所述纸张类型参数设置纸张的宽度和高度;提取打印方向参数,若所述打印方向参数为横向打印,将所述纸张高度作为打印纸张的宽度,若所述打印方向参数为纵向打印,所述纸张宽度度即为打印纸张的宽度;提取左侧页边距参数和右侧页边距参数,将所述打印纸张宽度减去所述左侧页边距参数和右侧页边距参数得到所述工资条打印内容宽度。进一步的,所述计算所述工资账表表格每一行显示的字段方法包括:创建行对象以及行对象数组,所述行对象用于以行为单位存放字段对象,所述行对象数组用于存放所有字段对象;循环所述工资账表表格的所有字段,判断是否将当前字段放入行对象中;若将当前字段放入行对象中,判断所述当前字段是否为最后一列;若所述当前字段为最后一列,设置所述当前字段宽度为所述工资条打印内容宽度减去当前行对象已存字段宽度之和;设置当前字段结束位置为所述工资条打印内容宽度,将所述当前字段添加至行对象。进一步的,若所述当前字段不是最后一列,设置所述当前字段的结束位置为当前行对象已存字段宽度之和加上所述当前字段的宽度,将所述当前字段添加至行对象。进一步的,若不能将当前字段放入行对象中,判断当前行对象是否为空;若所述行对象为空,设置所述当前字段宽度以及当前字段结束位置为所述工资条打印内容宽度;将所述当前字段添加至行对象;将所述行对象添加至行对象数组,创建一个新的行对象。进一步的,若所述行对象不为空,提取当前行对象的最后一个字段,设置当前字段宽度为所述工资条打印内容宽度减去除最后一个字段以外当前行对象已存字段宽度之和;判断当前字段宽度是否大于所述工资条打印内容宽度;若当前字段宽度大于所述工资条打印内容宽度,设置当前字段宽度和结束位置为所述工资条打印内容宽度,将所述当前字段添加至行对象,将所述行对象添加至行对象数组,创建一个新的行对象数组;否则,直接添加当前字段至行对象。进一步的,所述判断是否将当前字段放入行对象中的方法包括:若当前行对象为空,将当前字段放入行对象;若当前行对象不为空,将当前行对象已存字段宽度之和加上当前字段宽度得到宽度和,若所述宽度和大于工资条打印内容宽度,当前字段不放入行对象,否则将当前字段放入行对象中。进一步的,所述计算所述工资账表表格每列宽度的方法包括:将所述工资账表表格所有字段总数,减去所述行对象数组长度,得到循环次数;按循环次数依次循环所述工资账表表格获取每列宽度,将所述每列宽度添加至列宽数组。进一步的,每次循环中,遍历所述行对象数组,获取每行第一个未确认字段,将所述未确认字段放入预创建的第一数组中;遍历完成行对象数组后,判断所述第一数组是否为空,若所述第一数组为空,退出当次循环;若所述第一数组不为空,遍历所述第一数组,提取第一数组中字段结束位置值最小的字段,设置所述字段为确认后字段,将所述字段结束位置最小值减去当前行对象所有列宽度之和,得到新列宽;若所述新列宽不等于0,将所述新列宽放入列宽数组中。进一步的,若当前循环列为最后一列,将工资条打印内容宽度减去当前行对象其余所有列宽度之和作为最后一列宽度;若所述最后一列宽度不等于0,将所述最后一列宽度放入列宽数组中。进一步的,所述根据所述行对象数组、列宽数组以及预设的工资条模板生成所述工资条模板的表格内容的方法包括:所述预设的工资条模板为默认的工资条模板,包含基本的模板信息;所述预设的工资条模板为XML格式,将所述XML格式转换成文档对象;选择所述文档对象的表节点对象;循环所述列宽数组,在所述表节点对象中添加列对象,设置列宽度;生成标题和表头信息,获取标题和表头行数;循环所述行对象数组,根据所述标题和表头信息生成标题行和数据行;生成表尾信息;设置倒数第二行格式以及最后一行格式,处理尾部的分隔线显示,生成工资条模板。进一步的,所述生成标题和表头信息以及获取标题和表头行数的方法包括:获取标题信息,若所述标题信息为空则不添加标题行;若所述标题信息为非空,则在表节点对象中添加一行用于标题行的显示;获取配置的表头变量项,判断所述表头变量项是否有待显示字段,若没有则不添加表头信息行,否则根据换行信息判断行数。进一步的,所述生成生成标题行的方法包括:根据获取的标题行以及表头信息行的行数,设置工资条表格从本文档来自技高网...

【技术保护点】
1.一种工资条打印方法,所述方法包括:/n配置工资条的表头和表尾变量,生成工资账表表格的列信息;/n配置打印基础信息;/n根据工资账表表格的列信息自动生成工资条模板;/n获取工资账表数据,拼装所述工资账表数据的表头和表尾变量,填充至工资条模板,完成工资条的打印。/n

【技术特征摘要】
1.一种工资条打印方法,所述方法包括:
配置工资条的表头和表尾变量,生成工资账表表格的列信息;
配置打印基础信息;
根据工资账表表格的列信息自动生成工资条模板;
获取工资账表数据,拼装所述工资账表数据的表头和表尾变量,填充至工资条模板,完成工资条的打印。


2.根据权利要求1所述的方法,其特征在于,所述配置工资条的表头和表尾变量的方法包括:
所述表头变量项和表尾变量项通过表格方式配置,所述表格数据为工资账表表格所有列的列信息;
所述表格的列包括字段名称列、显示列以及换行列;
所述字段名称列用于设置列信息的字段名称;显示列用于确定显示的字段;所述换行列用于确定字段是否换行。


3.根据权利要求1所述的方法,其特征在于:
所述打印基础信息包括纸张信息、打印方向以及页边距;
所述纸张信息包括A3、A4、B5以及自定义打印纸张类型;
所述打印方向包括横向以及纵向;
所述页边距包括上方、下方、左侧以及右侧的页边距。


4.根据权利要求1所述的方法,其特征在于,所述根据工资账表表格的列信息自动生成工资条模板的方法包括:
获取所述列信息中的表头信息;
根据所述表头信息计算工资条打印内容宽度;
计算所述工资账表表格每一行显示的字段,将所述字段放入行对象数组;
计算所述工资账表表格的每列宽度,将所述每列宽度放入列宽数组;
获取预设的工资条模板,根据所述行对象数组、列宽数组以及预设的工资条模板生成所述工资条模板的表格内容;
设置字段列合并;
设置数据源信息和区块填数函数,生成工资条模板。


5.根据权利要求4所述的方法,其特征在于,所述计算工资条打印内容宽度的方法包括:
判断是否配置打印基础信息,如果未配置打印基础信息,设置所述工资条打印内容宽度为预设宽度;
如果配置打印基础信息,提取纸张类型参数,根据所述纸张类型参数设置纸张的宽度和高度;
提取打印方向参数,若所述打印方向参数为横向打印,将所述纸张高度作为打印纸张的宽度,若所述打印方向参数为纵向打印,所述纸张宽度度即为打印纸张的宽度;
提取左侧页边距参数和右侧页边距参数,将所述打印纸张宽度减去所述左侧页边距参数和右侧页边距参数得到所述工资条打印内容宽度。


6.根据权利要求4所述的方法,其特征在于,所述计算所述工资账表表格每一行显示的字段方法包括:
创建行对象以及行对象数组,所述行对象用于以行为单位存放字段对象,所述行对象数组用于存放所有字段对象;
循环所述工资账表表格的所有字段,判断是否将当前字段放入行对象中;
若将当前字段放入行对象中,判断所述当前字段是否为最后一列;
若所述当前字段为最后一列,设置所述当前字段宽度为所述工资条打印内容宽度减去当前行对象已存字段宽度之和;
设置当前字段结束位置为所述工资条打印内容宽度,将所述当前字段添加至行对象。


7.根据权利要求6所述的方法,其特征在于:
若所述当前字段不是最后一列,设置所述当前字段的结束位置为当前行对象已存字段宽度之和加上所述当前字段的宽度,将所述当前字段添加至行对象。


8.根据权利要求6所述的方法,其特征在于:
若不能将当前字段放入行对象中,判断当前行对象是否为空;
若所述行对象为空,设置所述当前字段宽度以及当前字段结束位置为所述工资条打印内容宽度;
将所述当前字段添加至行对象;
将所述行对象添加至行对象数组,创建一个新的行对象。


9.根据权利要求8所述的方法,其特征在于:
若所述行对象不为空,提取当前行对象的最后一个字段,设置当前字段宽度为所述工资条打印内容宽度减去除最后一个字段以外当前行对象已存字段宽度之和;
判断当前字段宽度是否大于所述工资条打印内容宽度;
若...

【专利技术属性】
技术研发人员:谢建军朱天祥董亚伟郭佩华
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1