将结构化数据转为版式表单文件的方法及系统转让专利

申请号 : CN201410475294.3

文献号 : CN105488052B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王绪胜郭荆玮王海瑞岳龙

申请人 : 方正国际软件(北京)有限公司方正国际软件有限公司

摘要 :

本发明公开了将结构化数据转为版式表单文件的方法及系统,优化了结构化数据向版式表单文件的转换步骤,实现了在一个技术平台上对结构化数据进行转换;根据解析表单域定义数据,生成的版式表单文件,从而保持了版式表单文件中数据的结构化,并使转换后的版式表单文件具备交互能力。所述方法包括:根据版式表单文件的显示要求,利用报表工具确定表单模板;解析所述表单模板,并根据解析结果确定表单域定义数据;利用所述表单模板和结构化数据,生成版式文件;通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板;将结构化数据填充到所述版式表单文件模板中,确定版式表单文件。

权利要求 :

1.一种将结构化数据转换为版式表单文件的方法,其特征在于,该方法包括:根据版式表单文件的显示要求,利用报表工具确定表单模板;

解析所述表单模板,并根据解析结果确定表单域定义数据;

利用所述表单模板和结构化数据,生成版式文件;

通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板;

将结构化数据填充到所述版式表单文件模板中,确定版式表单文件;所述表单模板包括:表单域占位控件;其中,所述表单域占位控件包括:表单域属性,所述表单域属性是由所述表单域占位控件确定的表单域的属性;

解析所述表单模板,并根据解析结果确定表单域定义数据,包括:解析所述表单模板中的表单占位控件,并根据解析结果确定表单域定义数据,其中,所述表单域定义数据包括:所述表单域属性;所述表单模板中还包括:用于对结构化数据进行计算的公式;

利用所述表单模板和结构化数据,生成版式文件,包括:将结构化数据填充到所述表单模板中,得到第一报表文件;

通过所述公式,得到所述结构化数据的计算结果,并将所述计算结果固化到所述第一报表文件中,得到第二报表文件;

删除所述第二报表文件中填充的结构化数据,得到第三报表文件;

利用所述报表工具对所述第三报表文件进行转换,得到版式文件。

2.根据权利要求1所述的方法,其特征在于,所述表单模板中还包括:生成版式文件前的预处理操作信息;

利用所述表单模板和结构化数据,生成版式文件,包括:将所述结构化数据填充到所述表单模板中,得到第一报表文件;

根据所述预处理操作信息,利用所述报表工具对所述第一报表文件进行处理,得到第二报表文件;

删除所述第二报表文件中填充的结构化数据,得到第三报表文件;

利用所述报表工具对所述第三报表文件进行转换,得到版式文件;

通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板,包括:根据第二报表文件,调整所述表单域定义数据,得到第二表单域定义数据;

通过所述第二表单域定义数据,以及所述版式文件,生成版式表单文件模板。

3.根据权利要求1所述的方法,其特征在于,所述表单域占位控件还包括表单域占位控件属性,所述表单域占位控件属性包括:排版属性、重复行属性以及分组属性;

利用所述表单模板和结构化数据,生成版式文件,包括:根据所述结构化数据,调整所述表单模板,得到第一报表文件;

将所述结构化数据填充到所述第一报表文件中,得到第二报表文件;

根据所述表单域占位控件属性中的排版属性,调整所述第二报表文件,得到第三报表文件;

删除所述第三报表文件中填充的结构化数据,得到第四报表文件;

利用所述报表工具对所述第四报表文件进行转换,得到版式文件;

通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板,包括:根据所述结构化数据,调整所述表单域定义数据,得到第二表单域定义数据;

根据所述第三报表文件,调整所述第二表单域定义数据,得到第三表单域定义数据;

通过所述第三表单域定义数据,以及所述版式文件,生成版式表单文件模板。

4.根据权利要求1所述的方法,其特征在于,所述表单域属性包括:可否编辑属性;

在利用所述表单模板和结构化数据,生成版式文件之后,在通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板之前,该方法还包括:根据所述可否编辑属性,确定需要生成的版式表单文件模板中的表单域可否编辑。

5.一种将结构化数据转换为版式表单文件的系统,其特征在于,该系统包括:确定表单模板单元,用于根据版式表单文件的显示要求,利用报表工具确定表单模板;

确定表单域定义数据单元,用于解析所述表单模板,并根据解析结果确定表单域定义数据;

生成版式文件单元,用于利用所述表单模板和结构化数据,生成版式文件;

生成版式表单模板单元,用于通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板;

填充结构化数据单元,用于将结构化数据填充到所述版式表单文件模板中,确定版式表单文件;所述表单模板包括:表单域占位控件;其中,所述表单域占位控件包括:表单域属性,所述表单域属性是由所述表单域占位控件确定的表单域的属性;

所述确定表单域定义数据单元,具体用于:解析所述表单模板中的表单占位控件,并根据解析结果确定表单域定义数据,其中,所述表单域定义数据包括:所述表单域属性;所述表单模板中还包括:用于对结构化数据进行计算的公式;

所述生成版式文件单元,具体用于:

根据所述表单模板,将所述结构化数据填充到所述表单模板中,得到第一报表文件;

通过所述公式,得到所述结构化数据的计算结果,并将所述计算结果固化到所述第一报表文件中,得到第二报表文件;

删除所述第二报表文件中填充的结构化数据,得到第三报表文件;

利用所述报表工具对所述第三报表文件进行转换,得到版式文件。

6.根据权利要求5所述的系统,其特征在于,所述表单模板中还包括:生成版式文件前的预处理操作信息;

所述生成版式文件单元,具体用于:

将所述结构化数据填充到所述表单模板中,得到第一报表文件;

根据所述预处理操作信息,利用所述报表工具对所述第一报表文件进行处理,得到第二报表文件;

删除所述第二报表文件中填充的结构化数据,得到第三报表文件;

利用所述报表工具通过对所述第三报表文件进行转换,得到版式文件;

所述生成版式表单模板单元,具体用于:

根据第二报表文件,调整所述表单域定义数据,得到第二表单域定义数据;

通过所述第二表单域定义数据,以及所述版式文件,生成版式表单文件模板。

7.根据权利要求5所述的系统,其特征在于,所述表单域占位控件还包括表单域占位控件属性,所述表单域占位控件属性包括:排版属性、重复行属性以及分组属性;

所述生成版式文件单元,具体用于:

根据所述结构化数据,调整所述表单模板,得到第一报表文件;

将所述结构化数据填充到所述第一报表文件中,得到第二报表文件;

根据所述表单域占位控件属性中的排版属性,调整所述第二报表文件,得到第三报表文件;

删除所述第三报表文件中填充的结构化数据,得到第四报表文件;

利用所述报表工具对所述第四报表文件进行转换,得到版式文件;

所述生成版式表单模板单元,具体用于:

根据所述结构化数据,调整所述表单域定义数据,得到第二表单域定义数据;

根据所述第三报表文件,调整所述第二表单域定义数据,得到第三表单域定义数据;

通过所述第三表单域定义数据,以及所述版式文件,生成版式表单文件模板。

8.根据权利要求5所述的系统,其特征在于,所述表单域属性包括:可否编辑属性;

生成版式表单模板单元在通过所述表单域定义数据和所述版式文件,生成版式表单文件模板之前,还用于:根据所述可否编辑属性,确定需要生成的版式表单文件模板中的表单域可否编辑。

说明书 :

将结构化数据转为版式表单文件的方法及系统

技术领域

[0001] 本发明涉及电子文件技术领域,尤其涉及将结构化数据转为版式表单文件的方法及系统。

背景技术

[0002] 目前,结构化数据大多存储在数据库中,其显示依赖于专有系统,为便于数据的独立显示和利用,需要将结构化数据转换为独立的电子文件,并能保留数据的结构化,便于提取出结构化数据进行数据再利用。另一方面,结构化数据转换后的电子文件要求具备一定程度的交互能力,如添加或修改文件中的某些数据,加盖电子印章等。
[0003] 现有的处理方法一般是采取版式表单工具和报表工具两种技术来实现结构化数据转换为电子文件,对于不需要交互能力的电子文件转换,一般采用报表工具实现将结构化数据的报表输出,然后通过接口转换为通用的PDF等版式电子文件。对于需要交互的电子文件,一般是通过版式表单工具生成表单模板,然后通过表单填充接口进行表单数据填充,表单技术保证了文件的交互能力。
[0004] 现有的将结构化数据转换为版式电子文件的处理方法的主要问题如下:
[0005] 问题一、通过报表工具生成的文件是非结构化的,不便于数据的再利用,如需结构化数据进行数据再利用,还需要再提供一个结构化的数据文件,导致文件传输和交换复杂度增加;
[0006] 问题二、电子表单的版面描述能力比较弱,无法满足复杂数据的要求。目前,电子表单模板的设计生成是和数据无关,而不少结构化数据的显示样式是与数据相关,具有报表的特征,如公式计算、复杂排版、根据内容自动增加表格行、内容分组等;现有的电子表单设计方法无法满足这类数据的转换要求;
[0007] 问题三、目前,将结构化数据转换为版式电子文件处理方法为电子表单和报表工具,但这两种转换处理方法采用的技术路线具有较大的差异,即从模板的设计、数据的填充、数据的提取都是采用完全不同的处理方法,如需实现结构化数据转换为版式表单文件,将分别在两个技术平台使用两种转换处理方法,从而导致整个结构化数据转换系统的复杂度增加,成本也大幅增加。
[0008] 综上所述,现有技术对结构化数据转换处理的方法,已经不能够满足版式电子文件交互的需求,与对版式电子文件中数据的结构化的需求,而且分别在两个技术平台对结构化数据进行转换,也将会大幅增加结构化数据转换系统的复杂度与成本。

发明内容

[0009] 本发明实施例提供了将结构化数据转为版式表单文件的方法及系统,优化了结构化数据向版式表单文件的转换步骤,实现了在一个技术平台上对结构化数据进行转换;根据解析表单域定义数据,生成的版式表单文件,从而保持了版式表单文件中数据的结构化,并使转换后的版式表单文件具备交互能力。
[0010] 本发明实施例提供的一种将结构化数据转换为版式表单文件的方法,包括:
[0011] 根据版式表单文件的显示要求,利用报表工具确定表单模板;
[0012] 解析所述表单模板,并根据解析结果确定表单域定义数据;
[0013] 利用所述表单模板和结构化数据,生成版式文件;
[0014] 通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板;
[0015] 将结构化数据填充到所述版式表单文件模板中,确定版式表单文件。
[0016] 通过该方法,优化了结构化数据向版式表单文件的转换步骤,实现了在一个技术平台上对结构化数据进行转换;根据解析表单域定义数据,生成的版式表单文件,从而保持了版式表单文件中数据的结构化,使得填充结构化数据后得到的版式表单文件具备交互能力。
[0017] 较佳地,所述表单模板包括:表单域占位控件;其中,所述表单域占位控件包括:表单域属性,所述表单域属性是由所述表单域占位控件确定的表单域的属性;
[0018] 解析所述表单模板,并根据解析结果确定表单域定义数据,包括:
[0019] 解析所述表单模板中的表单占位控件,并根据解析结果确定表单域定义数据,其中,所述表单域定义数据包括:所述表单域属性。
[0020] 较佳地,所述表单模板中还包括:用于对结构化数据进行计算的公式;
[0021] 利用所述表单模板和结构化数据,生成版式文件,包括:
[0022] 将结构化数据填充到所述表单模板中,得到第一报表文件;
[0023] 通过所述公式,得到所述结构化数据的计算结果,并将所述计算结果固化到所述第一报表文件中,得到第二报表文件;
[0024] 删除所述第二报表文件中填充的结构化数据,得到第三报表文件;
[0025] 利用所述报表工具对所述第三报表文件进行转换,得到版式文件。
[0026] 通过该方法,利用在表单模板中添加预设的以结构化数据为参数的计算公式,实现了传统表单模板无法实现的公式计算的处理操作,通过对结构化数据的计算结果进行固化,从而实现了表单模板中参与计算的数据变化时,计算结果位置显示的数据不再随着变化。
[0027] 较佳地,所述表单模板中还包括:生成版式文件前的预处理操作信息;
[0028] 利用所述表单模板和结构化数据,生成版式文件,包括:
[0029] 将所述结构化数据填充到所述表单模板中,得到第一报表文件;
[0030] 根据所述预处理操作信息,利用所述报表工具对所述第一报表文件进行处理,得到第二报表文件;
[0031] 删除所述第二报表文件中填充的结构化数据,得到第三报表文件;
[0032] 利用所述报表工具对所述第三报表文件进行转换,得到版式文件;
[0033] 通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板,包括:
[0034] 根据第二报表文件,调整所述表单域定义数据,得到第二表单域定义数据;
[0035] 通过所述第二表单域定义数据,以及所述版式文件,生成版式表单文件模板。
[0036] 较佳地,所述表单域占位控件还包括表单域占位控件属性,所述表单域占位控件属性包括:排版属性、重复行属性以及分组属性;
[0037] 利用所述表单模板和结构化数据,生成版式文件,包括:
[0038] 根据所述结构化数据,调整所述表单模板,得到第一报表文件;
[0039] 将所述结构化数据填充到所述第一报表文件中,得到第二报表文件;
[0040] 根据所述表单域占位控件属性中的排版属性,调整所述第二报表文件,得到第三报表文件;
[0041] 删除所述第三报表文件中填充的结构化数据,得到第四报表文件;
[0042] 利用所述报表工具对所述第四报表文件进行转换,得到版式文件;
[0043] 通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板,包括:
[0044] 根据所述结构化数据,调整所述表单域定义数据,得到第二表单域定义数据;
[0045] 根据所述第三报表文件,调整所述第二表单域定义数据,得到第三表单域定义数据;
[0046] 通过所述第三表单域定义数据,以及所述版式文件,生成版式表单文件模板。
[0047] 通过该方法,利用在表单模板中添加表单域占位控件属性,实现了传统表单模板无法实现的包含复杂排版、自动拓展行、内容分组等的复杂表单,有效的扩充了报表和表单的应用范围,而且本发明通过将现有技术中的表单设计与报表设计统一在一个平台上,从而降低了将结构化数据转换为版式表单文件设备的建设与维护成本。
[0048] 较佳地,所述表单域属性包括:可否编辑属性;
[0049] 在利用所述表单模板和结构化数据,生成版式文件之后,在通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板之前,该方法还包括:
[0050] 根据所述可否编辑属性,确定需要生成的版式表单文件模板中的表单域可否编辑。
[0051] 通过该方法,实现了在同一个技术平台上将结构化数据转化为版式电子文件,从而满足了复杂结构化数据和简单结构化数据的文件转换,实现了转换后的版式表单文件具备交互的需求,并保证了转换后的版式表单文件中的数据的结构化。
[0052] 本发明实施例提供的一种将结构化数据转换为版式表单文件的系统,包括:
[0053] 确定表单模板单元,用于根据版式表单文件的显示要求,利用报表工具确定表单模板;
[0054] 确定表单域定义数据单元,用于解析所述表单模板,并根据解析结果确定表单域定义数据;
[0055] 生成版式文件单元,用于利用所述表单模板和结构化数据,生成版式文件;
[0056] 生成版式表单模板单元,用于通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板;
[0057] 填充结构化数据单元,用于将结构化数据填充到所述版式表单文件模板中,确定版式表单文件。
[0058] 通过该系统,优化了结构化数据向版式表单文件的转换步骤,实现了在一个技术平台上对结构化数据进行转换;根据解析表单域定义数据,生成的版式表单文件,从而保持了版式表单文件中数据的结构化,使得填充结构化数据后得到的版式表单文件具备交互能力。
[0059] 较佳地,所述表单模板包括:表单域占位控件;其中,所述表单域占位控件包括:表单域属性,所述表单域属性是由所述表单域占位控件确定的表单域的属性;
[0060] 所述确定表单域定义数据单元,具体用于:
[0061] 解析所述表单模板中的表单占位控件,并根据解析结果确定表单域定义数据,其中,所述表单域定义数据包括:所述表单域属性。
[0062] 较佳地,所述表单模板中还包括:用于对结构化数据进行计算的公式;
[0063] 所述生成版式文件单元,具体用于:
[0064] 根据所述表单模板,将所述结构化数据填充到所述表单模板中,得到第一报表文件;
[0065] 通过所述公式,得到所述结构化数据的计算结果,并将所述计算结果固化到所述第一报表文件中,得到第二报表文件;
[0066] 删除所述第二报表文件中填充的结构化数据,得到第三报表文件;
[0067] 利用所述报表工具对所述第三报表文件进行转换,得到版式文件。
[0068] 通过该系统,利用在表单模板中添加预设的以结构化数据为参数的计算公式,实现了传统表单模板无法实现的公式计算的处理操作,通过对结构化数据的计算结果进行固化,从而实现了表单模板中参与计算的数据变化时,计算结果位置显示的数据不再随着变化。
[0069] 较佳地,所述表单模板中还包括:生成版式文件前的预处理操作信息;
[0070] 所述生成版式文件单元,具体用于:
[0071] 将所述结构化数据填充到所述表单模板中,得到第一报表文件;
[0072] 根据所述预处理操作信息,利用所述报表工具对所述第一报表文件进行处理,得到第二报表文件;
[0073] 删除所述第二报表文件中填充的结构化数据,得到第三报表文件;
[0074] 利用所述报表工具通过对所述第三报表文件进行转换,得到版式文件;
[0075] 所述生成版式表单模板单元,具体用于:
[0076] 根据第二报表文件,调整所述表单域定义数据,得到第二表单域定义数据;
[0077] 通过所述第二表单域定义数据,以及所述版式文件,生成版式表单文件模板。
[0078] 较佳地,所述表单域占位控件还包括表单域占位控件属性,所述表单域占位控件属性包括:排版属性、重复行属性以及分组属性;
[0079] 所述生成版式文件单元,具体用于:
[0080] 根据所述结构化数据,调整所述表单模板,得到第一报表文件;
[0081] 将所述结构化数据填充到所述第一报表文件中,得到第二报表文件;
[0082] 根据所述表单域占位控件属性中的排版属性,调整所述第二报表文件,得到第三报表文件;
[0083] 删除所述第三报表文件中填充的结构化数据,得到第四报表文件;
[0084] 利用所述报表工具对所述第四报表文件进行转换,得到版式文件;
[0085] 所述生成版式表单模板单元,具体用于:
[0086] 根据所述结构化数据,调整所述表单域定义数据,得到第二表单域定义数据;
[0087] 根据所述第三报表文件,调整所述第二表单域定义数据,得到第三表单域定义数据;
[0088] 通过所述第三表单域定义数据,以及所述版式文件,生成版式表单文件模板。
[0089] 通过该系统,利用在表单模板中添加表单域占位控件属性,实现了传统表单模板无法实现的包含复杂排版、自动拓展行、内容分组等的复杂表单,有效的扩充了报表和表单的应用范围,而且本发明通过将现有技术中的表单设计与报表设计统一在一个平台上,从而降低了将结构化数据转换为版式表单文件设备的建设与维护成本。
[0090] 较佳地,所述表单域属性包括:可否编辑属性;
[0091] 生成版式表单模板单元在通过所述表单域定义数据和所述版式文件,生成版式表单文件模板之前,还用于:
[0092] 根据所述可否编辑属性,确定需要生成的版式表单文件模板中的表单域可否编辑。
[0093] 通过该系统,实现了在同一个技术平台上将结构化数据转化为版式电子文件,从而满足了复杂的结构化数据和简单的结构化数据的文件转换,实现了转换后的版式表单文件具备交互的需求,并保证了转换后的版式表单文件中的数据的结构化。

附图说明

[0094] 图1为本发明实施例提供的将结构化数据转换为版式表单文件的方法的流程示意图;
[0095] 图2为本发明实施例提供的针对表单模板中包含以结构化数据为参数的计算公式的情况,将结构化数据转换为版式表单文件方法的流程示意图;
[0096] 图3为本发明实施例提供的针对在转换版式文件前对表单模板进行预处理的情况,将结构化数据转换为版式表单文件方法的流程示意图;
[0097] 图4为本发明实施例提供的针对版式表单文件的特殊排版、重复行和分组等要求的情况,将结构化数据转换为版式表单文件方法的流程示意图;
[0098] 图5为本发明实施例提供的将结构化数据转换为版式表单文件的方法的完整步骤的流程示意图;
[0099] 图6为本发明实施例提供的一种将结构化数据转换为版式表单文件的系统的结构示意图。

具体实施方式

[0100] 本发明实施例提供了一种将结构化数据转换为版式表单文件的方法及系统,实现了在一个技术平台上将结构化数据转换为版式电子文件,保持数据结构化、并使转换后的电子文件具备交互能力。
[0101] 参见图1,本发明实施例提供的一种将结构化数据转换为版式表单文件的方法,包括:
[0102] S101、根据版式表单文件的显示要求,利用报表工具确定表单模板;
[0103] S102、解析所述表单模板,并根据解析结果确定表单域定义数据;
[0104] S103、利用所述表单模板和结构化数据,生成版式文件;
[0105] S104、通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板;
[0106] S105、将结构化数据填充到所述版式表单文件模板中,确定版式表单文件。
[0107] 其中,所述表单模板包括:表单域占位控件;其中,所述表单域占位控件包括:表单域占位控件属性与表单域属性;
[0108] 其中,所述表单域属性是由所述表单域占位控件确定的表单域的属性;
[0109] 其中,所述表单域占位控件属性包括:特殊排版属性、重复行属性以及分组属性;所述表单域属性包括:域类型属性、数据源属性、表单域位置属性以及可否编辑属性。
[0110] 较佳地,所述表单模板,还包括:用于对结构化数据进行计算的公式以及生成版式文件前预处理操作信息,其中,所述用于对结构化数据进行计算的公式的参数为填充的结构化数据。
[0111] 较佳地,S104生成的版式表单文件模板可以重复利用,并且对于同构的结构化数据,且版式表单文件的显示样式与数据无关的转换,可以直接使用S104中表单模板预先生成的版式表单文件模板。
[0112] 较佳地,S102中解析所述表单模板中的表单占位控件,并根据对所述表单域占位控件的解析结果,确定表单域定义数据,其中,所述表单域定义数据包括:所述表单域属性;
[0113] 其中,所述表单域定义数据可以为虚表单定义数据,即所述表单域定义数据可以不包含参与显示的表单域,从而实现将结构化数据嵌入到其他方法生成的常规版式文件中。
[0114] 下面将对本发明实施例提供的一种结构化数据转换为版式文件的方法进行具体说明。
[0115] 首先,由于利用现有技术中生成的表单模板无法解决复杂排版的问题,因此本发明实施例提供了一种支持复杂排版,行拓展、分组和自动计算的表单模板的生成方法,该方法包括如下步骤:
[0116] 步骤一、根据表单模板对结构化数据的显示要求,利用报表工具确定表单模板,其中,所述表单模板包括,用于对结构化数据进行计算的公式部分,以及与结构化数据显示无关的表单模板部分。其中,所述通用报表工具,需支持本发明所需的复杂排版、行拓展、公式、自定义函数操作。
[0117] 步骤二、在表单模板上显示结构化数据的位置添加表单域占位控件。
[0118] 表单域占位控件的形式与生成表单模板的报表工具有关,如使用Excel或Word作为报表工具,表单域占位控件既可以为报表工具自带的ActiveX控件,例如文本框TextBox、图像框ImageBox,也可以为定制开发的ActiveX。
[0119] 步骤三、为表单域占位控件所属的表单域指定表单域属性与表单域占位控件属性,其中,所述表单域属性包括,域类型属性、数据源属性、表单域位置属性以及可否编辑属性。
[0120] 其中,所述域类型属性为表单域的类型,即表单域可以为文本框、下拉框、多选框、单选框、图像框或者公章控件等。
[0121] 所述数据源属性为本表单域中填充的数据在结构化数据中节点的描述,例如,可扩展标记语言(Extensible Markup Language,XML)中的路径语言XPath“/专利创新登记/更新日期/”中,“专利创新登记”与“更新日期”均为XML数据的节点。
[0122] 所述可否编辑属性,即为版式表单文件中该表单域中填充的数据是否可以被交互式编辑。
[0123] 较佳地,所述表单域占位控件属性包括,特殊排版属性、重复行属性以及分组属性等。其中,重复行属性、分组属性的定义可以通过数据源属性的扩展实现。
[0124] 其中,所述特殊排版属性,即为该表单域是否有特殊的排版要求,例如根据该表单域中的填充的数据,对表单域大小进行调整。
[0125] 所述重复行属性,即为对数据源中的重复节点在该表单域中显示样式的设计。而且,为了最终版式表单文件清楚美观,也可以要求在结构化数据节点的重复数较小时,为文件保留最小行数。例如,通过指定重复行的表单域数据源属性“/专利创新登记/专利[1..a|n]/名称”实现重复行定义,其中,a表示最小行数,n表示版式表单文件最终显示行数,当数据“/专利创新登记/专利”中的节点数量n大于a时;重复行则为该表单域所在行及向下连续n-1行。表单域所在的列填充的结构化数据分别来源于“/专利创新登记/专利[1]/名称”、“/专利创新登记/专利[2]/名称”、……、“/专利创新登记/专利[n]/名称”。
[0126] 所述分组属性,即为根据版式表单文件的显示样式对数据源中的重复节点进行分组,其中,分组的个数与每组内重复行的个数均由结构化数据与版式表单文件的显示样式决定的。分组包括分组定义和分组内重复行定义。表单模板扩展时,首先根据分组定义进行分组的扩展,然后再根据分组内重复行定义实现每组内的扩展。
[0127] 所述分组定义,用于定义分组的数据源、每个分组包含的最小行数,模板扩展时会根据结构化数据内的数据进行分组扩展。例如,通过指定表单域数据源属性“/费用单/账单[1..m]*b/账单名称”实现分组定义,其中,b表示每个分组最小行数,m表示分组数;其中,m是由结构化数据“/费用单/账单/”中的节点数量确定的,b则是根据表单文件的显示样式确定,是组内重复行数为1时每个分组的显示行数。如上例所述,版式表单文件的显示按照“账单”进行分组报表,模板扩展时将在报表上扩展生成m组空行,每组包含b个空行,其中每个分组定义控件位置的显示数据分别来源于“费用单/账单[1]/账单名称”、“费用单/账单[2]/账单名称”、……、“费用单/账单[m]/账单名称”。
[0128] 所述分组内重复行定义,用于定义每组内的数据源及重复行。例如,通过指定分组内重复行的数据源为“/费用单/账单[1..m]/费用项[1..n]/费用名称”实现分组内重复行定义,其中,m为分组数,n为分组内重复行数,表单模板扩展时,将根据本组内重复行的个数扩展本分组的数据行,第k(k∈[1..m])个分组中数据行的个数取决于“/费用单/账单[k]/费用项”节点的个数,数据填充时该分组内本表单域占位控件所在行向下连续n行、表单域所在列的数据分别来源于XML数据中"/费用单/账单[k]/费用项[1]/费用名称"、"/费用单/账单[k]/费用项[2]/费用名称"、……、"/费用单/账单[k]/费用项[n]/费用名称"。
[0129] 步骤四、根据版式表单文件的显示要求,确定转换版式文件前的预处理操作信息,并将该操作信息存储在表单模板中,可用于突出显示填充的特殊的结构化数据。如使用支持宏(Macro)的Excel或Word作为报表工具,转换版式文件前的预处理操作信息可定义为宏。
[0130] 步骤五、保存表单模板。
[0131] 其次,利用本发明实施例提供的复杂表单模板的生成方法,完成表单模板定义后,下面将通过四个实施例对本发明提供的一种将结构化数据转换为版式表单文件的方法进行具体说明。
[0132] 参见图2,针对表单模板中包含以结构化数据为参数的计算公式的情况,将结构化数据转换为版式表单文件的具体步骤:
[0133] 步骤一、根据版式表单文件的显示要求,通过定义表单模板的方法确定表单模板,其中,表单模板包括表单域占位控件与用于对结构化数据进行计算的公式;表单域占位控件包括:表单域占位控件的属性以及由表单域占位控件确定的表单域的属性;
[0134] 步骤二、利用定义确定的表单模板时使用的报表工具,读取确定的表单模板,解析该表单模板得到表单域占位控件确定的表单域的属性,并根据得到的表单域属性确定表单域定义数据;
[0135] 步骤三、利用报表工具的读写接口,将结构化数据填充到表单文件中得报表文件;
[0136] 步骤四、根据表单模板中预设的计算公式,对填充的结构化数据进行自动计算,确定报表文件中的计算公式的计算结果,并将所述计算结果固化到报表文件中,从而保证当报表文件中的计算公式的参数变化时,固化的计算结果不再随着计算结果的位置的变化而改变;
[0137] 步骤五、删除报表文件中填充的结构化数据,从而避免生成的版式表单文件中的结构化数据冗余;
[0138] 步骤六、利用报表工具和版式文件的接口,将步骤五中得到的报表文件转换为版式文件;
[0139] 步骤七、将步骤二中得到的表单域定义数据添加到步骤六转换得到的版式文件中,生成版式表单文件模板,其中,所述版式表单文件模板为带表单域的版式电子文件;
[0140] 步骤八、将结构化数据填充到步骤七生成的版式表单文件模板中,确定版式表单文件。
[0141] 参见图3,针对在转换版式文件前对表单模板进行预处理的情况,将结构化数据转换为版式表单文件的具体步骤:
[0142] 步骤一、根据版式表单文件的显示要求,通过定义表单模板的方法确定表单模板,其中,所述表单模板包括:表单域占位控件与转换版式文件前的预处理操作信息;表单域占位控件包括:表单域占位控件的属性以及由所述表单域占位控件确定的表单域的属性;
[0143] 步骤二、利用确定的表单模板时使用的报表工具,读取确定的表单模板,解析该表单模板得到表单域占位控件确定的表单域的属性,并根据得到的表单域属性确定表单域定义数据;
[0144] 步骤三、利用报表工具的读写接口,将结构化数据填充到表单文件中得报表文件;
[0145] 步骤四、根据表单模板中转换版式文件前的预处理操作信息,对报表文件进行处理。如报表文件中转换版式文件前的预处理操作为处理报表工具中预先定义的宏,则可调用软件开发工具包(Software Development Kit,SDK)执行转换版式文件前的宏;
[0146] 步骤五、根据步骤四中得到的报表文件,调整步骤二确定的表单域定义数据;
[0147] 步骤六、删除步骤四中得到的报表文件中填充的结构化数据,从而避免了生成的版式表单文件的结构化数据层叠、冗余;
[0148] 步骤七、利用报表工具和版式文件的接口,将步骤六中得到的报表文件转换为版式文件;
[0149] 步骤八、将步骤五中调整后的表单域定义数据添加到步骤七转换得到的版式文件中,生成版式表单文件模板,其中,所述版式表单文件模板为带表单域的版式电子文件;
[0150] 步骤九、将结构化数据填充到步骤八中得到的版式表单文件模板中,确定版式表单文件。
[0151] 参见图4,针对版式表单文件的特殊排版、重复行和分组等要求的情况,将结构化数据转换为版式表单文件的具体步骤:
[0152] 步骤一、根据版式表单文件的显示要求,通过定义表单模板的方法确定表单模板,其中,所述表单模板包括:表单域占位控件;表单域占位控件包括:表单域占位控件的属性以及由所述表单域占位控件确定的表单域的属性;其中,表单域占位控件的属性中包括特殊排版属性、重复行属性和分组属性;
[0153] 步骤二、利用定义表单模板时使用的报表工具,读取确定的表单模板,解析该表单模板得到表单域占位控件确定的表单域的属性,并根据得到的表单域属性确定表单域定义数据;
[0154] 步骤三、根据结构化数据,扩充表单模板中的重复行、分组、分组内的重复行以及表单域控件,生成报表文件,并调整步骤二确定的表单域定义数据;
[0155] 步骤四、利用报表工具的读写接口,将结构化数据填充到报表文件中;
[0156] 步骤五、根据表单域占位控件属性中的特殊排版属性,对填充后的报表文件进行相应的版面调整;
[0157] 步骤六、计算步骤五中调整后的报表文件中表单域的位置,调整表单域定义数据;
[0158] 步骤七、删除步骤五中调整后的报表文件中填充的结构化数据,从而避免了生成的版式表单文件的结构化数据冗余;
[0159] 步骤八、利用报表工具和版式文件的接口,将步骤七中得到的报表文件转换为版式文件;
[0160] 步骤九、将步骤六中得到的表单域定义数据添加到步骤八中转换得到的版式文件中,生成版式表单文件模板,其中,所述版式表单文件模板为带表单域的版式电子文件;
[0161] 步骤十、将结构化数据填充到步骤八生成的版式表单文件模板中,确定版式表单文件。
[0162] 此外,本发明并不局限于本发明实施例中这三种结构化数据转换的方法。版式表单文件的显示样式是否随着结构化数据调整、版式表单文件是否涉及以结构化数据为参数的计算公式、版式表单文件是否涉及特殊排版、重复行和分组等要求、版式表单文件是否涉及对表单模板进行转换版式文件前的预处理操作,均可根据版式表单文件的显示要求进行组合选择。
[0163] 由于版式表单文件的显示样式是否随着结构化数据调整、版式表单文件是否涉及以结构化数据为参数的计算公式、版式表单文件是否涉及特殊排版、版式表单文件是否涉及对表单模板进行转换版式文件前的预处理操作等版式表单文件的显示要求的组合时有固定的处理顺序,因此本发明实施例提供的将结构化数据转换为版式表单文件的方法的完整的步骤,参见图5,该完整方法的步骤具体包括:
[0164] 步骤一、根据版式表单文件的显示要求,在通用报表上确定表单模板,其中,在表单模板中显示结构化数据的位置上,添加表单域占位控件;并确定表单域占位控件属性、表单域属性以及以结构化数据为参数的计算公式、转换版式文件前的预处理操作信息;其中,表单域占位控件的属性中包括特殊排版属性、重复行属性和分组属性;其中,表单域属性包括可否编辑属性;
[0165] 步骤二、利用定义确定的表单模板时使用的报表工具,利用定义表单模板时使用的报表工具,读取步骤一中确定的表单模板,解析该表单模板得到表单域占位控件确定的表单域的属性,并根据得到的表单域属性确定表单域定义数据;
[0166] 步骤三、根据结构化数据,扩充表单模板中的重复行、分组、分组内的重复行以及表单域控件,生成报表文件,并调整步骤二确定的表单域定义数据;
[0167] 步骤四、利用表单模板的读写接口,将结构化数据填充到报表文件中;
[0168] 步骤五、根据表单模板中预设的计算公式,确定报表文件中的计算公式的计算结果,并将所述计算结果固化到步骤四中得到的报表文件中;
[0169] 步骤六、根据所述表单域属性中的特殊排版属性,调整步骤五中得到的报表文件;
[0170] 步骤七、根据所述表单模板中预设的转换版式文件前预处理操作信息,对步骤六中得到的报表文件进行处理;
[0171] 步骤八、根据步骤七中得到的报表文件中表单域的位置,调整步骤三中得到的表单域定义数据;
[0172] 步骤九、删除步骤七中调整后的报表文件中填充的结构化数据;
[0173] 步骤十、利用报表工具和版式文件的接口,将步骤九中得到的报表文件转换为版式文件;
[0174] 步骤十一、将步骤八中调整得到的表单域定义数据添加到步骤十中得到的版式文件,生成版式表单文件模板;
[0175] 步骤十二、根据表单域定义数据中的可否编辑属性,确定步骤十一得到的版式表单文件模板中的表单域可否编辑;
[0176] 步骤十三、将结构化数据填充到步骤十一得到的版式表单文件模板中,确定版式表单文件。
[0177] 参见图6,本发明实施例提供的一种将结构化数据转换为版式表单文件的系统,包括:
[0178] 确定表单模板单元601,用于根据版式表单文件的显示要求,在通用报表上确定表单模板;
[0179] 确定表单域定义数据单元602,用于解析所述表单模板,并根据解析结果确定表单域定义数据;
[0180] 生成版式文件单元603,用于根据所述表单模板和结构化数据,转换得到版式文件;
[0181] 生成版式表单模板单元604,用于通过所述表单域定义数据,以及所述版式文件,生成版式表单文件模板;
[0182] 填充结构化数据单元605,用于将结构化数据填充到所述版式表单文件模板中,确定版式表单文件。
[0183] 较佳地,所述表单模板包括:表单域占位控件;其中,所述表单域占位控件包括:表单域占位控件属性与表单域属性,其中,所述表单域属性包括:域类型属性、数据源属性以及表单域位置属性;
[0184] 所述确定表单域定义数据单元602,具体用于:
[0185] 解析所述表单模板中的表单占位控件,并根据解析结果确定表单域定义数据,其中,所述表单域定义数据包括:所述表单域属性。
[0186] 较佳地,所述表单模板中还包括:所述结构化数据作为参数的计算公式;
[0187] 所述生成版式文件单元603,具体用于:
[0188] 根据所述表单模板,将所述结构化数据填充到所述表单模板中,得到第一报表文件;
[0189] 根据所述计算公式,确定所述第一报表文件中的计算公式的计算结果,并将所述计算结果固化到所述第一报表文件中,得到第二报表文件;
[0190] 删除所述第二报表文件中填充的结构化数据,得到第三报表文件;
[0191] 通过对所述第三报表文件进行转换,得到版式文件。
[0192] 较佳地,所述表单模板中还包括:转换版式文件前的预处理操作信息;
[0193] 所述生成版式文件单元603,具体用于:
[0194] 根据所述表单模板,将所述结构化数据填充到所述表单模板中,得到第一报表文件;
[0195] 根据所述转换版式文件前的预处理操作信息,对所述第一报表文件进行处理,得到第二报表文件;
[0196] 根据第二报表文件,调整所述表单域定义数据,得到第二表单域定义数据;
[0197] 删除所述第二报表文件中填充的结构化数据,得到第三报表文件;
[0198] 通过对所述第三报表文件进行转换,得到版式文件;
[0199] 所述生成版式表单模板单元604,具体用于:
[0200] 通过所述第二表单域定义数据,以及所述版式文件,生成版式表单文件模板。
[0201] 较佳地,所述表单域占位控件属性包括:特殊排版属性、重复行属性以及分组属性;
[0202] 所述生成版式文件单元603,具体用于:
[0203] 根据所述结构化数据,调整所述表单模板,得到第一报表文件,并且调整所述表单域定义数据,得到第二表单域定义数据;
[0204] 将所述结构化数据填充到所述第一报表文件中,得到第二报表文件;
[0205] 根据所述表单域属性中的特殊排版属性,调整所述第二报表文件,得到第三报表文件;
[0206] 根据所述第三报表文件,调整所述第二表单域定义数据,得到第三表单域定义数据;
[0207] 删除所述第三报表文件中填充的结构化数据,得到第四报表文件;
[0208] 通过对所述第四报表文件进行转换,得到版式文件;
[0209] 所述生成版式表单模板单元604,具体用于:
[0210] 通过所述第三表单域定义数据,以及所述版式文件,生成版式表单文件模板。
[0211] 较佳地,所述表单域属性还包括:可否编辑属性;
[0212] 生成版式表单模板单元604在根据所述表单域定义数据和所述版式文件,生成版式表单文件模板之前,还用于:
[0213] 根据所述表单域定义数据中的可否编辑属性,确定所述版式表单文件模板中的表单域可否编辑。
[0214] 较佳地,本发明实施例中所述确定表单模板单元601、所述确定表单域定义数据单元602、所述生成版式文件单元603、所述生成版式表单模板单元604、所述填充结构化数据单元605,均可以由处理器实现。
[0215] 综上所述,本发明提供了将结构化数据转为版式表单文件的方法及系统,基于报表工具生成表单模板,根据版式表单文件对结构化数据的显示要求,添加表单域定义数据,生成表单模板,当将结构化数据转换为版式表单文件时,在表单模板上填充结构化数据,生成报表文件,并根据最终的版式表单文件的对结构化数据的显示要求,在报表文件上完成行拓展、分组、重复行、公式计算、特殊排版等复杂操作,然后将处理后的报表文件转换为版式文件,将版式文件添加表单域定义数据生成版式表单文件模板,然后将结构化数据填充到版式表单文件模板中,最终生成版式表单文件,实现了在同一个技术平台上将结构化数据转换为版式表单文件,满足复杂数据和简单数据的文件转换,而且转换后的版式表单文件保留了结构化数据的特性,有利于结构化数据的提取与再利用,并且具备了表单填写、加盖公章等交互能力,且由于本发明可利用预先生成的版式表单文件模板,从而保证了简单数据的转换效率与现有技术在同一水平。
[0216] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0217] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0218] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0219] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0220] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。