CN101354723B - 一种实现组合字段的方法及装置 - Google Patents
一种实现组合字段的方法及装置 Download PDFInfo
- Publication number
- CN101354723B CN101354723B CN2008101495010A CN200810149501A CN101354723B CN 101354723 B CN101354723 B CN 101354723B CN 2008101495010 A CN2008101495010 A CN 2008101495010A CN 200810149501 A CN200810149501 A CN 200810149501A CN 101354723 B CN101354723 B CN 101354723B
- Authority
- CN
- China
- Prior art keywords
- field
- combination
- rule
- son
- combined
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实现组合字段的方法,该方法包括:基于数据表字段元数据定义字段组合规则;保存所述字段组合规则;所述数据表运行时,解析所述字段组合规则,实现组合字段。本发明还公开了一种实现组合字段的装置。通过本发明提供的组合规则定义方法及对组合规则的通用解析,可以让用户自定义地设置组合规则,组合字段的实现不再需要针对性硬编码,当因业务需求发生变化而需要修改或增加组合字段时,可以由用户或业务人员快捷地完成,因此大大提高了系统的可扩展性。
Description
技术领域
本发明涉及计算机数据处理技术领域,特别是涉及一种实现组合字段的方法及装置。
背景技术
在业务应用系统的数据处理过程中,常常遇到组合字段的情况,所述组合字段是指同一个字段的结果值可能是多种数据类型。例如,A字段的结果值可能是文本与数值两种类型,一般用一个文本字段和一个数值字段存储A字段的结果值,此时A字段就是一个组合字段,文本字段和数值字段为组合的子字段。处理组合字段时应注意以下两个问题:
1)不同数据类型的实际物理存储要分开完成。
2)不同数据类型在用户交互时有不同的特性要求,如数值类型字段,要求只能录入数字,右对齐等。
例如,在企业管理软件应用方面,很多业务单据中的字段就是由多个字段组合而成的,如“检验结果”字段,当检验方式为定性时,该字段为一个文本类型的字段,存储“合格”、“不合格”这样的定性描述,当检验方式为定量时,该字段为一个小数类型的字段,存储“0.3”,“0.8”这样的定量数值,不同的字段,其数据录入、展现等一系列界面交互均应与对应的数值类型匹配,如文本字段习惯上左对齐,数值字段习惯上右对齐等。这里“检验结果”字段就是一个组合字段,由一个文本字段及一个小数字段组合而成。
现有技术往往通过硬编码方式来实现这种组合字段,使用一个文本字段保存定性检验结果,用一个小数字段保存定量检验结果。对字段的动态锁定或隐藏的控制逻辑硬编码,实现定性检验时,文本字段可用,小数字段锁定或者隐藏,定量检验时小数字段可用,文本字段锁定或隐藏。
但是由于组合子字段的控制均是硬编码,因此,如果用户需要增加组合子字段参与组合关系,必须修改代码完成,技术门槛高。导致软件的维护成本高。另外,组合关系都已经硬编码完成,用户如需要增加新的组合字段,也必须修改代码完成,系统的扩展性很差,软件提供者的维护成本高。
因此,需要本领域技术人员迫切解决的一个技术问题是:如何创造性地提出一种组合字段的实现方案,以提高系统的可扩展性,降低组合字段的实现成本。
发明内容
有鉴于此,本发明的目的在于提供一种实现组合字段的方法及装置,以解决现有技术在实现组合字段时扩展性差、维护成本高的问题。
为实现上述目的,本发明提供了如下方案:
一种实现组合字段的方法,包括:
基于数据表字段元数据定义字段组合规则;所述定义字段组合规则包括:
选择参与组合的子字段;指定触发字段、默认显示的子字段及子字段组合条件;
保存所述字段组合规则;
所述数据表运行时,解析所述字段组合规则,实现组合字段;
其中,所述解析所述字段组合规则,实现组合字段包括:从组合规则中解析出所述触发字段、所有的组合字段、子字段、默认显示的子字段及子字段组合条件;设置默认显示的子字段可见,其他子字段不可见;所述触发字段值变化时,对所述子字段组合条件进行判定,将满足子字段组合条件的组合子字段设置为可见,其他组合子字段设置为不可见。
优选的,解析所述字段组合规则,实现组合字段的具体实现还包括:
根据组合字段元数据坐标及标题,设置组合子字段坐标及标题。
优选的,所述定义组合字段组合规则后还包括:
校验各字段是否合法,各子字段组合条件是否相互冲突,如果否,触发所述保存字段组合规则的步骤。
优选的,将所述字段组合规则保存至数据表元数据,或,保存为独立的组合规则文件。
一种实现组合字段的装置,包括:
组合规则定义单元,用于基于数据表字段元数据定义字段组合规则;其中,所述组合规则定义单元包括:选择子单元,用于选择参与组合的子字段;指定子单元,用于指定触发字段、默认显示的子字段及子字段组合条件;
组合规则保存单元,用于保存所述字段组合规则;
组合规则解析单元,用于所述数据表运行时,解析所述字段组合规则,实现组合字段;
其中,所述组合规则解析单元包括:解析子单元,用于从组合规则中解析出触发字段、所有的组合字段、子字段、默认显示的子字段及子字段组合条件;设置子单元,用于设置默认显示的子字段可见,其他子字段不可见;判断子单元,用于所述触发字段值变化时,对所述子字段组合条件进行判定,将满足子字段组合条件的子字段设置为可见,其他子字段设置为不可见。
优选的,所述组合规则解析单元还包括:
坐标设置子单元,用于根据组合字段元数据坐标及标题,设置组合子字段坐标及标题。
优选的,还包括:
校验单元,用于校验各字段是否合法,各子字段组合条件是否相互冲突,如果否,触发所述组合规则保存单元保存所述字段组合规则。
优选的,所述组合规则保存单元将所述字段组合规则保存至数据表元数据,或,保存为独立的组合规则文件。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明通过提供组合规则定义方法及对组合规则的通用解析,可以让用户自定义地设置组合规则,组合字段的实现不再需要针对性硬编码,当因业务需求发生变化而需要修改或增加组合字段时,可以由用户或业务人员通过修改组合规则快捷地完成,因此大大提高了系统的可扩展性。
另外,由于提供了组合字段的通用解决方案,软件开发者的组合字段开发成本大大降低,提升了产品开发的效率及质量。
附图说明
图1是本发明提供的方法的流程图;
图2是本发明提供的组合规则设计器界面示意图;
图3是本发明提供的组合规则设计器另一界面示意图;
图4是本发明提供的数据表运行时的界面示意图;
图5是本发明提供的装置的示意图;
图6是本发明提供的另一装置的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参见图1,本发明提供的实现组合字段的方法包括以下步骤:
S101:基于数据表字段元数据定义字段组合规则;
S102:保存所述字段组合规则;
S103:所述数据表运行时,解析所述字段组合规则,实现组合字段。
所述定义字段组合规则包括:指定触发字段、选定参与组合的子字段、指定默认在数据表加载时显示的子字段以及指定子字段组合条件等。其中,字段组合规则设置是基于数据表字段元数据进行的,触发字段、被选取的组合子字段等均是数据表上原有的字段。以检验业务场景为例:
触发字段:检验方式
组合字段:检验结果
组合子字段:文本、小数
子字段组合条件:
ACTIONKEY{CheckMode}
UNIONITEM{CheckResultText,EXPRESS{CheckMode="定性检验"}|CheckResultDecimal,EXPRESS{CheckMode="定量检验"}}
DEFAULTKEY{CheckResultText}
其中,ACTIONKEY部分为触发字段定义,CheckMode即“检验方式”字段。
UNIONITEM部分为子字段对应组合条件定义,这里子字段包括:CheckResultText(文本字段),其组合条件是“检验方式=定性检验”;CheckResultDecimal(小数字段),其组合条件是“检验方式=定量检验”。
DEFAULTKEY部分指定触发字段无值时,默认显示的子字段,此处为文本字段。
当然,组合规则的语法可以是其他实现,只要能够准确描述该组合规则。
上述字段组合规则定义完成之后,需要进行保存,保存的形式多种多样。例如,可以保存至数据表元数据(如保存至组合字段的组织规则属性),还可以将字段组合规则存储为一个独立的组合规则文件等。
所述数据表运行时,便可以解析所述字段组合规则,来实现组合字段了。该步骤可以通过以下方式实现:
取出所述字段组合规则(如,从字段的组合规则属性中取出),并对所述字段组合规则进行解析,从中解析出触发字段,并且可以用程序进行标记,便于在其值发生变化时确保组合规则被解析执行;从组合规则中解析出所有的组合子字段以及默认可见的组合子字段,除默认可见的组合子字段,其余组合子字段应当设置为不可见,至于组合字段,当作虚字段处理,界面不作加载。当触发字段值发生变化时,对组合条件进行判定,仍以上述定义字段组合规则的例子为例,当检验方式的值变化时,如选择定性检验时,文本字段的组合条件成立,则将文本字段设置为可见,其他所有子字段设置为不可见。当选择定量检验时,将会把检验结果字段动态替换为小数字段。
在不同的技术实现下,解析字段组合规则的步骤可以采用其他的实现方式,例如,可以直接订阅触发字段的值更新事件,当事件发生时,解析组合条件,当然,抽象来说,这也是一种标记触发字段的方式。
为了使用户得到更好的体验,在解析字段组合规则时,还可以根据组合字段元数据坐标、标题,设置各子字段的坐标、标题,将子字段标题、界面位置设置为与组合字段一致。当然,该步骤的实现也可以采用其他方法,例如设置字段的锁定性,不管子字段的标题信息、位置坐标等。
动态替换的实现有多种可能,一种可能是在单据加载时,即将组合子字段(文本、小数)的字段名、界面位置设置成与组合字段一致,并且控制为不可见字段,当检验方式为定量检验时,将小数字段设置为可见,文本字段设置为不可见;当检验方式变为定性检验时,将小数字段设置为不可见,文本字段设置为可见。
在实际应用中,为了保证组合规则的正确性,在定义完字段组合规则后还可以对各字段的合法性进行校验,并判断各子字段对应的组合条件是否相互冲突等,如果各字段均合法,且各组合条件不相互冲突,才保存所述字段组合条件。
需要说明的是,所述元数据是指描述数据的数据,指明数据的结构与意义。比如质检单据中的“检验方式”字段,其元数据可能是:
标题:检验方式
数据类型:整数
字段标识:checkmode
界面控件:下拉列表
长度:20字符
来源:基础资料-检验方式
字体:宋体
字号:9号
界面中字段位置TOP:100
界面中字段位置Left:1000
界面中字段高度:200
界面中字段宽度:100
是必录字段:是
存储物理表:质检表
存储物理字段:checkmode
是否允许保存为空值:否
在定义字段组合规则时之所以要基于字段元数据,是因为在解析字段组合 规则时,必须知道规则中各种数据的取值方式,例如“CheckMode="定量检验"”这个条件,checkmode是检验方式字段元数据的关键词,通过它可以找到检验方式对应的元数据,从而知道检验方式该如何取值。当然,如果在组合规则中包含足够多的信息,通过这些信息即可以完成正确的取值,那么没有必要基于外部的元数据。但这样的话,组合规则的设置将比较麻烦,因为必须在组合规则中包含字段的元数据。除上述的取值信息,元数据中还包含字段数据类型信息,界面位置信息等,都是在组合规则解析中要用到的。
基于数据表元数据的好处在于:数据表元数据的保存、解析是数据表已有的功能,可以直接调用。某些信息系统的设计,数据表可能并不基于元数据,这种情况下要实现本发明所述的组合字段实现方案,需要先建立字段元数据。
可见,本发明通过提供组合规则及对组合规则的通用解析,可以让用户自定义地设置组合规则,组合字段的实现不再需要针对性硬编码,因此,当因业务需求发生变化而需要修改或增加组合字段时,可以由用户或业务人员通过修改组合规则快捷地完成,因此大大提高了系统的可扩展性。
另外,由于提供了组合字段的通用解决方案,软件开发者的组合字段开发成本大大降低,提升了产品开发的效率及质量。
下面通过具体应用中的实例详细说明本发明提供的方法。
参见图2所示的组合规则设计器参考主界面,首先根据单据字段元数据,将字段的信息填充到区域1(触发字段下拉列表),以及区域2(备选的组合子字段列表)。
利用这个界面,用户可以在区域1中选定触发字段,如检验方式。在区域2中通过勾选的方式,确定参与组合的组合子字段,如文本、小数两个字段,并且指定每个字段的组合条件(该组合子字段在什么条件满足时,作为实际的检验结果存储字段)
点击“确定”时,会校验各组合子字段对应的组合条件是否相互冲突。校验完毕正确的组合规则将会保存。
在图2所示的界面中进行组合子字段条件设置时,会进入图3所示的条件设置界面。该界面首先在区域1中加载单据字段元数据,作为参与条件设置的 备选字段。用户可以在区域2中直接设计某一个组合子字段的组合条件。点击“确定”时,会校验组合条件是否合法。
在组合规则定义过程中,会根据元数据解析单据字段,填充组合规则设计器的触发字段列表、组合子字段列表等。
在组合规则解析过程中,参见图4,因为在组合规则中,文本字段被设置为默认字段,当单据加载时,“检验结果”字段实际被替换成了文本字段。此时小数字段、文本字段的标题已被设置为“检验结果”,界面位置信息与原检验结果字段一致。
同时,根据元数据控制组合子字段,如将文本字段标题设置为与检验结果字段的标题一致,将文本字段“界面中字段位置TOP”、“界面中字段位置Left”、“界面中字段高度”、“界面中字段宽度”设置为与检验结果字段对应属性一致,可以完成文本字段这个组合子字段的动态控制。
与本发明提供的方法相对应,本发明实施例还提供了一种实现组合字段的装置,参见图5,该装置包括:
组合规则定义单元U501,用于基于数据表字段元数据定义字段组合规则;
组合规则保存单元U502,用于保存所述字段组合规则;
组合规则解析单元U503,用于所述数据表运行时,解析所述字段组合规则,实现组合字段。
组合规则定义单元U501,基于数据表字段元数据定义字段组合规则;组合规则保存单元U502,保存所述字段组合规则;当所述数据表运行时,组合规则解析单元U503解析所述字段组合规则,实现组合字段。
其中,参见图6,组合规则定义单元U601包括:
选择子单元U6011,用于选择参与组合的子字段;
指定子单元U6012,用于指定触发字段、默认显示的子字段及子字段组合条件。
组合规则解析单元U603可以通过多种方式进行组合规则的解析,优选的,组合规则解析单元U603可以包括以下子单元:
解析子单元U6031,用于从组合规则中解析出触发字段、所有的组合字段、子字段、默认显示的子字段及子字段组合条件;
设置子单元U6032,用于设置默认显示的子字段可见,其他子字段不可见;
判断子单元U6033,用于所述触发字段值变化时,对所述子字段组合条件进行判定,将满足子字段组合条件的子字段设置为可见,其他子字段设置为不可见。
在不同的技术实现下,组合规则解析单元U603也可以采用其他的实现方式,例如,可以直接订阅触发字段的值更新事件,当事件发生时,解析组合条件,当然,抽象来说,这也是一种标记触发字段的方式。
为了使用户得到更好的体验,在解析字段组合规则时,还可以根据组合字段元数据坐标、标题,设置各子字段的坐标、标题,将子字段标题、界面位置设置为与组合字段一致。因此,组合规则解析单元U603还可以包括:
坐标设置子单元U6034,用于根据组合字段元数据坐标及标题,设置组合子字段坐标及标题。
在实际应用中,为了保证组合规则的正确性,在定义完字段组合规则后还可以对各字段的合法性进行校验,并判断各子字段对应的组合条件是否相互冲突等,如果各字段均合法,且各组合条件不相互冲突,才保存所述字段组合条件。因此,该装置还包括:
校验单元U604,用于校验各字段是否合法,各子字段组合条件是否相互冲突,如果否,触发所述组合规则保存单元保存所述字段组合规则。
保存组合规则的形式也是多种多样。例如,组合规则保存单元U602可以保存至数据表元数据(如保存至组合字段的组合规则属性),还可以将字段组合规则存储为一个独立的组合规则文件等。
以上对本发明所提供的一种实现组合字段的方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种实现组合字段的方法,其特征在于,包括:
基于数据表字段元数据定义字段组合规则;所述定义字段组合规则包括:选择参与组合的子字段;指定触发字段、默认显示的子字段及子字段组合条件;
保存所述字段组合规则;
所述数据表运行时,解析所述字段组合规则,实现组合字段;
其中,所述解析所述字段组合规则,实现组合字段包括:从组合规则中解析出所述触发字段、所有的组合字段、子字段、默认显示的子字段及子字段组合条件;设置默认显示的子字段可见,其他子字段不可见;所述触发字段值变化时,对所述子字段组合条件进行判定,将满足子字段组合条件的组合子字段设置为可见,其他组合子字段设置为不可见。
2.根据权利要求1所述的方法,其特征在于,解析所述字段组合规则,实现组合字段的具体实现还包括:
根据组合字段元数据坐标及标题,设置组合子字段坐标及标题。
3.根据权利要求1所述的方法,其特征在于,所述定义组合字段组合规则后还包括:
校验各字段是否合法,各子字段组合条件是否相互冲突,如果否,触发所述保存字段组合规则的步骤。
4.根据权利要求1所述的方法,其特征在于,将所述字段组合规则保存至数据表元数据,或,保存为独立的组合规则文件。
5.一种实现组合字段的装置,其特征在于,包括:
组合规则定义单元,用于基于数据表字段元数据定义字段组合规则;其中,所述组合规则定义单元包括:选择子单元,用于选择参与组合的子字段;指定子单元,用于指定触发字段、默认显示的子字段及子字段组合条件;
组合规则保存单元,用于保存所述字段组合规则;
组合规则解析单元,用于所述数据表运行时,解析所述字段组合规则,实现组合字段;
其中,所述组合规则解析单元包括:解析子单元,用于从组合规则中解析出触发字段、所有的组合字段、子字段、默认显示的子字段及子字段组合条件;设置子单元,用于设置默认显示的子字段可见,其他子字段不可见;判断子单元,用于所述触发字段值变化时,对所述子字段组合条件进行判定,将满足子字段组合条件的子字段设置为可见,其他子字段设置为不可见。
6.根据权利要求5所述的装置,其特征在于,所述组合规则解析单元还包括:
坐标设置子单元,用于根据组合字段元数据坐标及标题,设置组合子字段坐标及标题。
7.根据权利要求5所述的装置,其特征在于,还包括:
校验单元,用于校验各字段是否合法,各子字段组合条件是否相互冲突,如果否,触发所述组合规则保存单元保存所述字段组合规则。
8.根据权利要求5所述的装置,其特征在于,所述组合规则保存单元将所述字段组合规则保存至数据表元数据,或,保存为独立的组合规则文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101495010A CN101354723B (zh) | 2008-09-10 | 2008-09-10 | 一种实现组合字段的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101495010A CN101354723B (zh) | 2008-09-10 | 2008-09-10 | 一种实现组合字段的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101354723A CN101354723A (zh) | 2009-01-28 |
CN101354723B true CN101354723B (zh) | 2011-07-20 |
Family
ID=40307530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101495010A Active CN101354723B (zh) | 2008-09-10 | 2008-09-10 | 一种实现组合字段的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101354723B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799801A (zh) * | 2010-01-26 | 2010-08-11 | 中兴通讯股份有限公司 | 基于流量协议的自定义统计报表的实现方法和装置 |
CN103886110A (zh) * | 2014-02-24 | 2014-06-25 | 金蝶软件(中国)有限公司 | 数据录入方法和装置 |
CN104462361B (zh) * | 2014-12-05 | 2017-10-31 | 广州普邦园林股份有限公司 | 一种匹配数据表中数据的方法和装置 |
CN105447114A (zh) * | 2015-11-13 | 2016-03-30 | 中科曙光信息技术无锡有限公司 | 表单中字段的显示方法和装置 |
CN110109910A (zh) * | 2018-01-08 | 2019-08-09 | 广东神马搜索科技有限公司 | 数据处理方法及系统、电子设备和计算机可读存储介质 |
CN110489409B (zh) * | 2018-09-14 | 2020-06-23 | 北京数聚鑫云信息技术有限公司 | 一种动态扩展数据字段的方法及装置 |
CN113641881A (zh) * | 2021-08-23 | 2021-11-12 | 北京字跳网络技术有限公司 | 元数据的显示方法、装置、设备及介质 |
-
2008
- 2008-09-10 CN CN2008101495010A patent/CN101354723B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101354723A (zh) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101354723B (zh) | 一种实现组合字段的方法及装置 | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
CN110705237B (zh) | 文档的自动生成方法、数据处理设备及存储介质 | |
CN104462179B (zh) | 处理大数据的方法、执行其的装置以及储存其的存储媒介 | |
US9646103B2 (en) | Client-side template engine and method for constructing a nested DOM module for a website | |
RU2417420C2 (ru) | Программируемость для хранилища xml данных для документов | |
CN102750289B (zh) | 基于标签组对数据进行混合的方法和设备 | |
CN104699681A (zh) | 一种基于元数据库的数据处理方法 | |
CN111126019B (zh) | 基于模式定制的报表生成方法、装置和电子设备 | |
CN115061721A (zh) | 一种报表生成方法、装置、计算机设备及存储介质 | |
CN106940721B (zh) | 一种自定义选择框的数据处理方法及系统 | |
CN110119292A (zh) | 系统运行参数查询方法、匹配方法、装置及节点设备 | |
CN105630817A (zh) | 一种电子发票内容解析的方法及系统 | |
CN110738035A (zh) | 一种文档模板生成方法及装置 | |
CN106557307B (zh) | 业务数据的处理方法及处理系统 | |
US9898523B2 (en) | Tabular data parsing in document(s) | |
CN104572939A (zh) | 一种行业内异构数据交换的数据查询方法 | |
US10503823B2 (en) | Method and apparatus providing contextual suggestion in planning spreadsheet | |
US20170124124A1 (en) | System and method for analyzing complex metadata | |
US20160012023A1 (en) | Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules | |
CN112184321A (zh) | 一种客户数据快速筛选方法、装置及系统 | |
CN104965783A (zh) | 一种网页内容展现监测的方法和装置 | |
US20100042633A1 (en) | Messaging tracking system and method | |
CN102486731A (zh) | 增强软件的软件调用栈的可视化的方法、设备和系统 | |
CN106250477B (zh) | 一种分表数据的分页方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |