CN102609816A - 一种通用的可按自定义规则编码的物料编码方法 - Google Patents
一种通用的可按自定义规则编码的物料编码方法 Download PDFInfo
- Publication number
- CN102609816A CN102609816A CN2012100308795A CN201210030879A CN102609816A CN 102609816 A CN102609816 A CN 102609816A CN 2012100308795 A CN2012100308795 A CN 2012100308795A CN 201210030879 A CN201210030879 A CN 201210030879A CN 102609816 A CN102609816 A CN 102609816A
- Authority
- CN
- China
- Prior art keywords
- coding
- rule
- sign indicating
- code
- indicating number
- 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.)
- Granted
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种通用的可按自定义规则编码的物料编码方法,属于物料管理领域。该方法,是将物料编码的组成分解成若干段,每一段都是对物料某一特征进行描述的代号。包括:制定编码规则,就是抽取每一类物料的若干关键特征描述字段,为每一特征字段转换成对应代码制定规则依据;按规则编码,即根据所提供某一物料的描述信息,将该物料的各关键特征描述属性提取出来,分别转换成该段的特征描述代号,最后将各特征描述字段的代号组合在一起,形成对该物料进行唯一性描述的物料编号。与现有技术相比,本发明的编码方法解决了编码产品无通用性的问题,用户编码规则的变更不再受制于程序代码。这不仅仅局限于物料编码,而且是一种通用的编码方式。
Description
技术领域
本发明涉及一种物料管理方法,具体地说是一种通用的可按自定义规则编码的物料编码方法。
背景技术
当前,编码器的发展速度远远滞后于ERP的推广、应用,各企业的物料编码大多是采用‘类别+流水号’的方式,该方式最大的缺点,就是无法避免因人为因素而大量产生的编码重复的问题,影响了数据信息的可靠性。
随着企业信息化的深入,用户对ERP物料编码的品质要求越来越高,已不再满足于流水号式的编码,不仅要消除同一物料多个编码的存在,而且还要求能充分利用数据的信息资源,让无意义的流水号,变成蕴涵丰富的信息码,这就对物料的编码提出了更高档次的需求。
虽然,目前已出现了多种编码器产品,但是,这些编码器无一例外地都是罗列式、针对每条规则写专门代码进行处理的产品,对编码规则要求苛刻,且维护困难,无法适应编码规则的变化,产品不通用,无法在企业间普及使用。
因此,本领域急需开发一种通用、高效、易用且能适应规则变化的编码平台,使各企业可根据自己的实际需求,制定编码规则,生成有自己特色、符合自己实际业务需求的物料编码。
发明内容
本发明的技术任务是针对上述现有技术的不足,提供一种通用的可按自定义规则编码的物料编码方法。该方法为物料逐段定义编码规则,最后将各段按规则所生成的代码,组合在一起生成物料编号。
本发明的技术任务是按以下方式实现的:一种通用的可按自定义规则编码的物料编码方法,其特点是:
所述物料编码由若干编码段构成,所述编码段,是对该物料进行一定描述的关键特征属性所对应的代号;
每一类物料,都可抽取出若干共同的特征属性,满足对每一物料的唯一性描述;
每一特征属性,都可制定转换成特定代码的规则;
每一物料,都可根据所提供的物料特征属性描述数据,确定该物料所属分类及适用编码规则,根据规则,将编码所需的各属性字段数据转换成对应的特征代码,组合生成该物料的编码。
所述规则中,每一段都受到配置参数的控制,通过各控制参数的组合配置,实现不同的编码规则,满足各种编码需求。使用时,对编码规则进行解析,然后逐段按控制参数,将所对应的物料属性描述数据翻译成编码、或通过对照码表取得所对应的编码,最后将各段编码组合成完整的物料编码。
所述编码段的编码规则包括:
【码段号】,码段的顺序编号,在各段均转换成对应的特征编码后,按该顺序编号组合成完整物料编号;
【码段含义】,对码段的描述;
【码段长度】,码段所占编号的位数;
【码段控制】,分固定值、字段值、流水号三种;
【码段值/字段】,物料特征属性数据的来源,即是将要被转换成编码的物料特征属性,当控制字段为‘固定值’时,该值就是编码,无需转换,当控制字段为‘字段值’时,指示的是一个字段,需要间接从该指定字段中取数据;
【是否截取】,是否需要对所取值进行截取;
【截取符号】,指定截取符号依据;
【截取段号】,指定取截取后的哪一段;
【是否二次截取】,是否需要对所取截取后的值再次进行截取,经过分析,通常只需两次截取便可得到所需数据,如存在特殊情况,可继续扩充,增加三次、四次截取等;
【二次截取符号】,指定截取符号依据;
【二次截取段号】,指定取截取后的哪一段;
【小数右侧规格化】,是否将小数位右侧小数部分规格化。专门处理默认含小数部分的数据,如,对于30和20.8、20.86,如需统一规格化成含两位小数的格式,则规格化后的数据分别为30.00、20.80、20.86;
【小数判断依据符号】,判定小数部分的依据,如,将小数点’.’后的部分为小数部分;
【小数部分长度】,指定小数部分需规格化后的统一位数
【小数部分字符填充方向】,指定规格化小数部填充字符的方向,如‘在右侧填充’;
【小数部分填充字符】,指定规格化小数部分需填充的字符,如‘0’;
【是否需要替代】,是否需要将所取值中的部分字符替换成其它字符;
【被替代符号】,指定需被替代的符号;
【代替符号】,指定用来代替的符号;
【是否使用对照码表】,指定是使用当前值作编码,还是需要通过对照码表间接获取编码。
【对照码表】,指定从哪个对照表中获取对应编码;
【码段编号不足位填充方向】,指定所获码段编号长度不足时,需填充字符的方向规格化小数部填充字符的方向,如‘在左侧填充’;
【码段编号填充字符】,指定所获码段编号长度不足时,需填充的字符,如0’;
【示例/备注】,在实际编码操作中,显示该码段录入值的规范。
实际应用中,如有特殊需求,可继续扩充控制参数。
通过以上规则中的各控制参数,可将‘码段值/字段’中所提供的物料特征属性数据,转换成所对应的特征代码,最终按码段号的顺序,将该物料的所有特征代号组合在一起,生成该物料的编码。
本发明的通用的可按自定义规则编码的物料编码方法与现有技术相比具有以下突出的有益效果:
1、物料编码分段清晰,规律性强,通过编码就能了解该物料的特征属性;
2、物料编码的唯一性得到保证,避免了一料多码的问题;
3、编码规则通用性强,可在不同企业中普及使用;
4、编码规则实现用户自定义,不同企业可定义适合自己使用、有自己特色的编码规则,而无需定制开发;
5、编码范围广泛,适应各种编码要求,规则实现基础稳定延展性好,易扩充;
6、本技术实现简单,结构清晰;实现方法简单易用;降低了编程的复杂度,进而提高了编程的效率。
附图说明
附图1是本发明的编码规则解析流程。
具体实施方式
参照说明书附图以具体实施例对本发明的通用的可按自定义规则编码的物料编码方法作以下详细地说明。
实施例:
本发明方法适合各种编程语言的开发,本实施例代码谨以PowerBuilder语言代码作为实例。
1、设定编码规则:
如表1(参数设置太长,为方便查看,将表1分成了三段进行显示),为每一类别的物料制定编码规则。先将该类别物料分解成若干段,然后逐段设置编码转换控制参数,保存到编码规则表中,本实施例中,假定编码规则表的表名为‘ICBMGZ’。这些参数(及参数所存放字段。均为假定,后面代码中,不再对这些列名称进行单独解释)包括:
码段编号(ICBMGZ_MDBH)、码段含义(ICBMGZ_MDHY)、码段长度(ICBMGZ_MDCD)、码段控制(ICBMGZ_MDKZ)、码段值/字段(ICBMGZ_VALUE)、是否截取(ICBMGZ_SFJQ)、截取符号(ICBMGZ_JQFH)、截取段号(ICBMGZ_JQDH)、是否二次截取(ICBMGZ_SFJQ2)、二次截取符号(ICBMGZ_JQFH2)、二次截取段号(ICBMGZ_JQDH2)、小数右侧规格化(ICBMGZ_RPRTGGH)、小数判断依据符号(ICBMGZ_RPRTFHYJ)、小数部分长度(ICBMGZ_RPRTCD)、小数部分字符填充方向(ICBMGZ_RPRTFILLDIREC)、小数部分填充字符(ICBMGZ_RPRTFILLCHAR)、是否需要替代(ICBMGZ_SFTD)、被替代符号(ICBMGZ_BTDFH)、代替符号(ICBMGZ_DTFH)、是否使用对照表(ICBMGZ_SFSYDZB)、对照表(ICBMGZ_TABLE)、码段编号不足位填充方向(ICBMGZ_FILLDIREC)、码段编号填充字符(ICBMGZ_FILLCHAR)、示例/备注(ICBMGZ_BZ)等。
另外,假定表‘ICBMGZ’中,还应存在假定列类别编号‘ICBMGZ_WLLB’,与ICBMGZ_MDBH一起作为该表的索引,ICBMGZ_WLLB指定的是一‘套’编码规则,而ICBMGZ_MDBH指的是该套规则中的各组成段。
码段 | 含义 | 长度 | 控制 | 值/字段 | 是否截取 | 截取符号 | 截取段号 | 是否再次截取 |
01 | 大类 | 2 | 固定值 | 01 | 否 | 否 | ||
02 | 中类 | 2 | 固定值 | 01 | 否 | 否 | ||
03 | 船级社 | 1 | 固定值 | 3 | 否 | 否 | ||
04 | 小类 | 2 | 固定值 | 11 | 否 | 否 | ||
05 | 厚 | 3 | 字段值 | 规格 | 是 | ; | 1 | 是 |
06 | 宽 | 4 | 字段值 | 规格 | 是 | ; | 1 | 是 |
07 | 长 | 5 | 字段值 | 规格 | 是 | ; | 1 | 是 |
右侧接
截取符号 | 截取段号 | 小数右侧是否规格化 | 符号依据 | 小数部分长度 | 填充方向 | 填充符号 | 替代 | 被替代符号 | 代替符号 |
否 | 0 | 右填充 | 0 | 否 | |||||
否 | 0 | 右填充 | 0 | 否 | |||||
否 | 0 | 右填充 | 0 | 否 | |||||
否 | 0 | 右填充 | 0 | 否 | |||||
* | 1 | 是 | . | 1 | 右填充 | 0 | 是 | . | |
* | 2 | 否 | 0 | 右填充 | 0 | 否 | |||
* | 3 | 否 | 0 | 右填充 | 0 | 否 | |||
继续右侧接
使用对照表 | 对照表 | 码段编号不足位填充方向 | 填充字符 | 示例(备注) |
否 | 左填充 | 0 | ||
否 | 左填充 | 0 | ||
否 | 左填充 | 0 | ||
否 | 左填充 | 0 | ||
否 | 左填充 | 0 | 厚(3位,含小数1位)*宽(4位,)*长(5位,);其它规格属性 | |
否 | 左填充 | 0 | 厚(3位,含小数1位)*宽(4位,)*长(5位,);其它规格属性 | |
否 | 左填充 | 0 | 厚(3位,含小数1位)*宽(4位,)*长(5位,);其它规格属性 | |
表一
2、解析编码规则并编码:
对物料进行编码时,先根据所提供的物料所属类别信息,从编码规则表中选择所需使用的编码规则,然后对所选编码规则逐段进行解析,并将物料的各特征属性数据分别‘翻译’成编码,最终将各段翻译成的编码,根据段号顺序,组合在一起,生成所需目标物料编码。
如附图1所示,本发明的编码规则解析流程为:
本例中,实际物料与适用编码规则之间的对应关系,假定是由物料所属的类别确定的,即编码规则根据物料所属类别进行设定,不同类别的物料可设定不同的编码规则,而同一类别的物料,全部使用同一编码规则。
首先,用户提供一条物料的各项描述属性数据,如所属类别信息、名称、规格、型号、材质、颜色。。。等。假定这是新物料,还未有物料编号,如已有编号,则不再执行编码过程,直接使用原物料编号。
然后由计算机进行编码,过程如下,
1、选择适用该物料的编码规则。
根据用户提供的物料所属类别信息,获取该类别所设定的编码规则。
2、根据编码规则中的码段编号顺序,对每一编码段,循环执行以下步骤,形成各段编码。
2-1、形成本段的原始编码。过程如下,
2-1-1、从该编码规则中,获取本码段的‘码段控制’值,该值分三种:固定值(’GDZ’)、流水号(’LSH’)、字段值(’ZDZ’)。
2-1-1-1、如果‘码段控制’值为‘固定值’,则直接取本码段的‘值/字段’值,作为本段的原始编码。跳过以下各步,直接从2-2开始继续执行。
2-1-1-2、如果‘码段控制’值为‘流水号’,则模糊查找除本流水号段外编号完全一致的物料编号,从这些物料编号中,找出流水号段最大的(如果没有,可给默认0值),再将该最大流水号加1后,即形成当前物料的流水号,作为本段的原始编码。跳过以下各步,直接从2-2开始继续执行。
2-1-1-3、如果‘码段控制’值为‘字段值’,则从本码段的‘值/字段’中,取出存放目标数据的字段名称(即用户所提供物料属性列的列名),然后从该指定字段中,取出目标值(物料属性数据),假定为vsValue,再使用其它控制参数对该vsValue值进行处理,转换出原始编码。过程如下,
2-1-1-3-1、从该编码规则中,获取本码段的‘是否截取’值,该值分两种:截取(’1’)、不截取(’0’)。
如果该值是不截取,则执行2-1-1-3-2步。
如果该值是截取,则分别从本码段的‘截取符号’、‘截取段号’中,取出截取的符号依据和段号,根据截取符号依据,将vsValue进行分段,从左向右分别为第1段、第2段。。。取‘段号’所指定部分替换vsValue值,执行2-1-1-3-2步。
2-1-1-3-2、从该编码规则中,获取本码段的‘是否二次截取’值,该值分两种:截取(’1’)、不截取(’0’)。
如果该值是不截取,则执行2-1-1-3-3步。
如果该值是截取,则分别从本码段的‘二次截取符号’、‘二次截取段号’中,取出截取的符号依据和段号,根据截取符号依据,将vsValue进行分段,从左向右分别为第1段、第2段。。。,取‘段号’所指定部分替换vsValue值,执行2-1-1-3-3步。
2-1-1-3-3、从该编码规则中,获取本码段的‘小数右侧规格化’值,该值分两种:需要规格化(’1’)、不需要规格化(’0’)。该控制参数的主要作用是将小数部分的位数统一成定长。
如果该值是不需要规格化,则执行2-1-1-3-4步。
如果该值是需要规格化,则分别从本码段的‘小数判断依据符号’、‘小数部分长度’、‘小数部分字符填充方向’、‘小数部分填充字符’中,取出小数判断依据符号、小数部分需要规格化成的长度标准、不足位填充的方向(值范围是:左侧(‘L’)、右侧(‘R’))以及不足位填充符号。从vsValue中,查找符号小数判断依据符号,取出该符号的右侧部分(如果没有该符号,则所取值为空)并存放到临时变量vsValueR中,将vsValueR中字符串的长度与‘小数部分需要规格化成的长度标准’进行比较,如果大于,则提示所提供数据或编码规则设置错误;如果等于,则无需规格化,直接跳过,执行2-1-1-3-4步;如果小于,则根据‘不足位填充的方向’,在vsValueR值的右侧或左侧补‘填充符号’,直至将vsValueR的长度补足到标准长度后替换vsValueR值,最后,将vsValue的左侧部分+小数判断依据符号+vsValueR的值替换vsValue,执行2-1-1-3-4步。
2-1-1-3-4、从该编码规则中,获取本码段的‘是否需要替代’值,该值分两种:需要替代(’1’)、不需要替代(’0’)。该控制参数的主要作用是将数字中的小数点去掉,即将小数点替换成空。
如果该值是不需要替换,则执行2-1-1-3-5步。
如果该值是需要替换,则分别从本码段的‘被替代符号’、‘代替符号’中,取出需要被被替代的符号、用来代替的符号,将vsValue中的‘被替代符号’全部用‘代替符号’替换掉,执行2-1-1-3-5步。
2-1-1-3-5、从该编码规则中,获取本码段的‘是否使用对照表’值,该值分两种:使用对照码表(’1’)、不使用对照码表(’0’)。
如果该值是不使用对照码表,则执行2-2步。
如果该值是使用对照码表,则分别从本码段的‘对照表’中,取出存放该vsValue值对照码的表名,从该对照码表中,将vsValue值所对应的编号取出来,并替换vsValue值,执行2-2步。
2-2、通过2-1中各步,最终获得本段的原始编码,并存放在vsValue变量中。
从本码段的‘码段长度’、‘码段编号不足位填充方向’、‘码段编号填充字符’中,获取本段所需编码的标准长度、不足位填充方向(值范围是:左侧(‘L’)、右侧(‘R’))以及不足位填充符号,将vsValue中字符串的长度与‘本段所需编码的标准长度’进行比较,如果大于,则提示所提供数据或编码规则设置错误;如果等于,则vsValue值即是本段的目标编码;如果小于,则根据‘不足位填充的方向’,在vsValue值的右侧或左侧补‘填充符号’,直至将vsValue的长度补足到标准长度后替换vsValue值,则vsValue值即是本段的目标编码。
至此,完成本段编码。
该过程即是附图1所示对规则中每一码段的解析流程。
重复执行第2步,直到将本规则中的所有码段都生成目标段编码。
3、将以上生成的各段的段编码,按段编号的顺序,连接成一个字符串,该字符串就是该物料的目标编码,即该物料的物料编号。
编码完毕。
对编码规则进行解析及根据编码规则生成物料编号的PowerBuilder部分关键代码如下:
说明:
ICSETWLSX表,是获取需转换成编码的物料属性数据用的。
根据编码规则生成物料编号,对编码规则进行解析及根据编码规则生成物料编号的PowerBuilder样例代码部分实际代码样例(PowerBuilder语言部分):
关键参数说明:ICBMGZ 是编码规则表,存放着物料编码规则
psWllb是字符变量,关联ICBMGZ,从ICBMGZ表中获取当前物料所需使用的编码规则
vdatastoreBmgz是临时存储,获取到当前物料编码规则后,存放在该临时存储中
vlRowCnt是vdatastoreBmgz的行数,每一行代表的是当前编码规则中的一个码段
vsNewWlbh是字符变量,存放该物料的新生成编码部分关键代码:
<1>从编码规则表ICBMGZ中获取当前物料编码所需使用的规则
//psWllb:即是当前需编码的物料所属的类别号,该类别号制定了适合该物料编码所用的规则
//下面,从编码规则表ICBMGZ中,将对该物料进行编码所需的编码规则取出来。
vsSql = ″SELECT
ICBMGZ_MDBH,ICBMGZ_MDHY,ICBMGZ_MDCD,ICBMGZ_MDKZ,ICBMGZ_VALUE,″+&″
ICBMGZ_SFJQ,ICBMGZ_JQFH,ICBMGZ_JQDH,ICBMGZ_SFJQ2,ICBMGZ_JQFH2,ICBMGZ_JQDH2,″+&
″ICBMGZ_RPRTGGH,ICBMGZ_RPRTFHYJ,ICBMGZ_RPRTCD,ICBMGZ_RPRTFILLDIREC,″+&
″ ICBMGZ_RPRTFILLCHAR,
ICBMGZ_SFTD,ICBMGZ_BTDFH,ICBMGZ_DTFH,ICBMGZ_SFSYDZB,″+&″ICBMGZ_TABLE,ICBMGZ_FILLDIREC,ICBMGZ_FILLCHAR″+&
″FROM ICBMGZ WHERE ICBMGZ_WLLB=’″+psWllb+″’ORDER BYICBMGZ_MDBH ASC″
<2>先根据物料的名称、规格、型号等,检查当前物料是否已经存在编码,如果已经存在,则使用原编码即可,无需执行以下步骤;如果不存在,则执行以下编码步骤
<3>根据临时存储中的编码规则,逐段编码--为方便观看,实现过程进行简化,而且部分实现过程使用文字说明的方式替代编码。
FOR vlRow=1TO vlRowCnt//每一次循环,就是对该规则中一个码段的编码,循环完毕,该物料的所有码段号均已形成,连接在一起,即是该物料的完整编码,存放到vsNewWlbh中。
vsMdBh=vdatastoreBmgz.OBJECT.ICBMGZ_MDBH[vlRow]//获取″码段编号″
vsMdHy=vdatastoreBmgz.OBJECT.ICBMGZ_MDHY[vlRow]//获取″码段含义″
viMdCd=vdatastoreBmgz.OBJECT.ICBMGZ_MDCD[vlRow]//获取″码段长度″
vsMdKz=vdatastoreBmgz.OBJECT.ICBMGZ_MDKZ[vlRow]//获取″码段控制″字段
IF vsMdKz=’LSH’THEN//如果当前段为‘流水号’。
/*代码实现文字说明:处理过程,此处用文字说明更清晰易懂:
1、模糊查找除本流水号段外编号完全一致的物料编号,从这些物料编号中,找出流水号段最大的(如果没有,可给默认0值)
2、将该最大流水号加1后,即形成当前物料的流水号vsMaxLs
3、将流水号段连接到物料编号vsNewWlbh中
*/
CONTINUE;//码段控制为‘流水号’的,编码完毕
END IF
vsMdValue=vdatastoreBmgz.OBJECT.ICBMGZ_VALUE[vlRow]//获取码段的‘值/字段’内容,物料特征属性数据的来源,即是将要被转换成编码的物料特征属性,当控制字段为’固定值’时,该值就是编码,无需转换,当控制字段为’字段值’时,指示的是一个字段,需要间接从该指定字段中取数据。
IF vsMdKz=’GDZ’THEN//如果是固定值,则直接将vsMdValue作为当前段的编码
vsNewWlbh+=vsMdValue
CONTINUE//码段控制为‘固定值’的,编码完毕
END IF
//以下是处理码段控制为‘字段值’的部分
//首先,先从所指定字段vsMdValue中,将该字段中的数据取出来,存放到变量vsZdz(字段值)中!
vsZdz=pdw.GETITEMSTRING(plRow,vsMdValue)
vsSfJq=vdatastoreBmgz.OBJECT.ICBMGZ_SFJQ[vlRow]//获取码段″是否截取″
IF vsSfJq=’1’THEN//如果需要截取
vsJqFh=’’
vsJqFh=vdatastoreBmgz.OBJECT.ICBMGZ_JQFH[vlRow]//获取″截取符号″
viJqDh=vdatastoreBmgz.OBJECT.ICBMGZ_JQDH[vlRow]//获取″截取段号″
/*代码实现文字说明:
以符号vsJqFh为准,将字符串vsZdz进行分段,取第viJqDh段作为目标需求数据,并存放更新字符串vsZdz
*/
ENDIF
//是否需要二次截取--使用两次截取就足够了,如规格、型号中,可按段先截取,然后,在段内再进行明细数据的截取。如‘3*4*5;CCS-A’,段间统一用’;’,段内可用’*’或’-’
vsSfJq2=vdatastoreBmgz.OBJECT.ICBMGZ_SFJQ2[vlRow]//获取″是否需要二次截取″
IF vsSfJq2=’1’THEN//如果需要二次截取
vsJqFh2=vdatastoreBmgz.OBJECT.ICBMGZ_JQFH2[vlRow]//获取″二次截取符号″
viJqDh2=vdatastoreBmgz.OBJECT.ICBMGZ_JQDH2[vlRow]//获取″二次截取段号″
/*代码实现文字说明:
以符号vsJqFh2为准,将字符串vsZdz再次进行分段,取第viJqDh2段作为目标需求数据,并存放更新字符串vsZdz
*/
ENDIF
//小数右侧规格化:例,高度码段为5位,末尾一位固定表示为小数位,这样,对于16与15.5所对应的编码应该为00160与00155,而非00016与00155!
vsSfRPartGgh=vdatastoreBmgz.OBJECT.ICBMGZ_RPRTGGH[vlRow]//获取″小数右侧规格是否化″
IF vsSfRPartGgh=’1’THEN//小数右侧需要规格化
vsRPartFhyj=vdatastoreBmgz.OBJECT.ICBMGZ_RPRTFHYJ[vlRow]//获取″小数右侧规格化所需的符号依据″,通常为’.’
viRPartCd=vdatastoreBmgz.OBJECT.ICBMGZ_RPRTCD[vlRow]//获取″小数右侧规格化所需的长度信息″
vsRPartFillDir =vdatastoreBmgz.OBJECT.ICBMGZ_RPRTFILLDIREC[vlRow]//获取″小数右侧规格化所需的填充方向信息″
vsRPartFillChar =vdatastoreBmgz.OBJECT.ICBMGZ_RPRTFILLCHAR[vlRow]//获取″小数右侧规格化所需的填充字符信息″
/*代码实现文字说明:
1、以符号vsRPartFhyj为准,将vsZdz分成两部分
2、小数部分规格化:对于以符号vsRPartFhyj分割后的右侧小数部分,在该字段的vsRPartFillDir(左或右)方向,循环添加字符vsRPartFillChar,直到该字段长度达到viRPartCd
3、将以vsRPartFhyj分割后的左侧整数部分与规格化后的小数部分,重新连接在一起,更新并重新保存到变量vsZdz中
*/
END IF
//如果需要‘代替’,则将被替代符号全部替换成替代符号
vsSfTd=vdatastoreBmgz.OBJECT.ICBMGZ_SFTD[vlRow]//获取″是否替代″
IF vsSfTd=’1’THEN//如需替代
vsBTdfh=vdatastoreBmgz.OBJECT.ICBMGZ_BTDFH[vlRow]//获取″被替代符号″
vsDtfh=vdatastoreBmgz.OBJECT.ICBMGZ_DTFH[vlRow]//获取″替代符号″
IFISNULL(vsDtfh)THEN vsDtfh=”
vsZdz=f_ReplaceAll(vsZdz,vsBTdfh,vsDtfh)//将字符串vsZdz中所有的vsBTdfh用vsDtfh替换掉。例如,将小数点去掉。
END IF
//如果是使用对照表,则转换出对应的名称,并替换vsZdz值
vsSfsyDzb=vdatastoreBmgz.OBJECT.ICBMGZ_SFSYDZB[vlRow]//获取″是否使用对照表″
IF vsSfsyDzb=’1’THEN//如果需要从对照码表中获取对照码
vsTable=vdatastoreBmgz.OBJECT.ICBMGZ_TABLE[vlRow]//获取″对照表″
vsSql=″SELECT ″+vsTable+″_BH FROM ″+vsTable+″WHERE″+vsTable+″_MC=’″+vsZdz+″’″//从对照表vsTable中,将名称vsZdz所对应的对照码获取过来
/*代码实现文字说明:
1、使用以上SQL,将所获取的对照码取出来,更新并保存到vsZdz中
*/
END IF
//码段长度处理
viLen=LEN(vsZdz)
IF viMdCd=viLen THEN//如果当前所生成段编号vsZdz的长度viLen与码段设定长度viMdCd相等,则不再需要转换,直接使用该值vsZdz即可。
ELSEIF viMdCd<viLen THEN
//如果当前所生成段编号vsZdz的长度超过码段设定长度viMdCd,则程序提示编码规则设置错误并退出。
ELSE//如果长度不足,需补齐
vsFillDirec=vdatastoreBmgz.OBJECT.ICBMGZ_FILLDIREC[vlRow]//获取″码段规格化方向″
vsFillChar=vdatastoreBmgz.OBJECT.ICBMGZ_FILLCHAR[vlRow]//获取″码段规格化长度″
/*代码实现文字说明:
1、在字段vsZdz的vsFillDirec(左或右)方,循环添加字符vsFillChar,直到该字段长度达到viMdCd,更新并重新保存到变量vsZdz中
*/
END IF
vsNewWlbh+=vsZdz//vsZdz是本代码段中将‘字段值’最终转换出的段编号,将该段编号组合到物料编号中vsNewWlbh
NEXT
//所有段循环执行完毕,成功生成的物料编码vsNewWlbh!
Claims (3)
1.一种通用的可按自定义规则编码的物料编码方法,其特征在于:
所述物料编码由若干编码段构成,所述编码段,是对该物料进行一定描述的关键特征属性所对应的代号;
每一类物料,都可抽取出若干共同的特征属性,满足对每一物料的唯一性描述;
每一特征属性,都可制定转换成特定代码的规则;
每一物料,都可根据所提供的物料特征属性描述数据,确定该物料所属分类及适用编码规则,根据规则,将编码所需的各属性字段数据转换成对应的特征代码,组合生成该物料的编码。
2.根据权利要求1所述的通用的可按自定义规则编码的物料编码方法,其特征在于:
所述编码段的编码规则包括:码段号、码段含义、码段长度、码段控制、码段值/字段、是否截取、截取符号、截取段号、是否二次截取、二次截取符号、二次截取段号、小数右侧规格化、小数判断依据符号、小数部分长度、小数部分字符填充方向、小数部分填充字符、是否需要替代、被替代符号、代替符号、是否使用对照表、对照表、码段编号不足位填充方向、码段编号填充字符、示例/备注,通过以上规则中的各控制参数,可将‘码段值/字段’中所提供的物料特征属性数据,转换成所对应的特征代码,最终按码段号的顺序,将该物料的所有特征代号组合在一起,生成该物料的编码。
3.根据权利要求2所述的通用的可按自定义规则编码的物料编码方法,其特征在于:
所述码段控制包括分固定值、字段值及流水号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210030879.5A CN102609816B (zh) | 2012-02-13 | 2012-02-13 | 一种通用的可按自定义规则编码的物料编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210030879.5A CN102609816B (zh) | 2012-02-13 | 2012-02-13 | 一种通用的可按自定义规则编码的物料编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102609816A true CN102609816A (zh) | 2012-07-25 |
CN102609816B CN102609816B (zh) | 2017-02-08 |
Family
ID=46527168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210030879.5A Active CN102609816B (zh) | 2012-02-13 | 2012-02-13 | 一种通用的可按自定义规则编码的物料编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102609816B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182501A (zh) * | 2014-08-18 | 2014-12-03 | 曾蔚峰 | 远程预约门诊系统 |
CN106202182A (zh) * | 2016-06-27 | 2016-12-07 | 浪潮软件集团有限公司 | 一种生成证照编码的方法及装置 |
CN107247695A (zh) * | 2017-05-31 | 2017-10-13 | 深圳市长亮科技股份有限公司 | 编码规则生成方法、系统和存储设备 |
CN107784611A (zh) * | 2017-04-11 | 2018-03-09 | 平安医疗健康管理股份有限公司 | 药品编码方法及装置 |
CN108805425A (zh) * | 2018-05-28 | 2018-11-13 | 陕西优百信息技术有限公司 | 物料描述的处理方法、装置及存储介质 |
CN109412603A (zh) * | 2018-10-31 | 2019-03-01 | 金鑫宇电源(深圳)有限责任公司 | 一种自动编码系统 |
CN109409452A (zh) * | 2018-09-20 | 2019-03-01 | 摩尔元数(厦门)科技有限公司 | 通用标签解析及自动生成打印标签的方法和装置 |
CN109933591A (zh) * | 2019-03-20 | 2019-06-25 | 普元信息技术股份有限公司 | 大数据环境下基于多方式结合实现数据编码优化管理的系统及方法 |
CN110060174A (zh) * | 2019-04-24 | 2019-07-26 | 上海蔚来汽车有限公司 | 用于实现车辆动态配置与物料编码匹配的方法及其装置 |
CN110070162A (zh) * | 2019-03-11 | 2019-07-30 | 上海因致信息科技有限公司 | 条形码中待填充数据的编码方法及系统 |
CN110297956A (zh) * | 2019-06-27 | 2019-10-01 | Oppo(重庆)智能科技有限公司 | 生成产品识别码的方法及系统、计算机存储介质 |
CN111241785A (zh) * | 2019-12-31 | 2020-06-05 | 中华人民共和国天津海事局 | 基于要素变量动态编码的船舶数据模型 |
CN111241434A (zh) * | 2020-01-19 | 2020-06-05 | 深圳市赛易特信息技术有限公司 | 一种用于物料赋码的管理方法及系统 |
CN111291845A (zh) * | 2020-02-21 | 2020-06-16 | 北京众企联合资产管理有限公司 | 一种用于共享可移动资产的电子标签编码方法 |
CN111581914A (zh) * | 2020-04-29 | 2020-08-25 | 中通客车控股股份有限公司 | 一种直线型钢件编码传输系统及方法 |
CN111639475A (zh) * | 2020-05-31 | 2020-09-08 | 湖南行必达网联科技有限公司 | 产品编码的生成方法、装置及电子设备 |
CN111859861A (zh) * | 2020-07-30 | 2020-10-30 | 华中科技大学 | 一种可扩展的通用编码生成系统及方法 |
CN112181427A (zh) * | 2020-09-24 | 2021-01-05 | 乐思灯具(上海)有限公司 | 一种编码创建方法、装置、系统及存储介质 |
CN112464619A (zh) * | 2021-01-25 | 2021-03-09 | 平安国际智慧城市科技股份有限公司 | 大数据处理方法、装置、设备及计算机可读存储介质 |
CN115757413A (zh) * | 2022-11-23 | 2023-03-07 | 中电金信软件有限公司 | 一种数据编码的方法、装置、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101393625A (zh) * | 2008-11-13 | 2009-03-25 | 金蝶软件(中国)有限公司 | 一种实现特性配置的方法及装置 |
CN101430778A (zh) * | 2008-11-14 | 2009-05-13 | 金蝶软件(中国)有限公司 | 自动生成物料基础资料信息的方法和装置 |
CN102201089A (zh) * | 2011-06-10 | 2011-09-28 | 张宪 | 物资材料编码和管理方法 |
-
2012
- 2012-02-13 CN CN201210030879.5A patent/CN102609816B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101393625A (zh) * | 2008-11-13 | 2009-03-25 | 金蝶软件(中国)有限公司 | 一种实现特性配置的方法及装置 |
CN101430778A (zh) * | 2008-11-14 | 2009-05-13 | 金蝶软件(中国)有限公司 | 自动生成物料基础资料信息的方法和装置 |
CN102201089A (zh) * | 2011-06-10 | 2011-09-28 | 张宪 | 物资材料编码和管理方法 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182501A (zh) * | 2014-08-18 | 2014-12-03 | 曾蔚峰 | 远程预约门诊系统 |
CN106202182A (zh) * | 2016-06-27 | 2016-12-07 | 浪潮软件集团有限公司 | 一种生成证照编码的方法及装置 |
CN107784611B (zh) * | 2017-04-11 | 2021-03-23 | 平安医疗健康管理股份有限公司 | 药品编码方法及装置 |
CN107784611A (zh) * | 2017-04-11 | 2018-03-09 | 平安医疗健康管理股份有限公司 | 药品编码方法及装置 |
CN107247695A (zh) * | 2017-05-31 | 2017-10-13 | 深圳市长亮科技股份有限公司 | 编码规则生成方法、系统和存储设备 |
CN108805425A (zh) * | 2018-05-28 | 2018-11-13 | 陕西优百信息技术有限公司 | 物料描述的处理方法、装置及存储介质 |
CN109409452A (zh) * | 2018-09-20 | 2019-03-01 | 摩尔元数(厦门)科技有限公司 | 通用标签解析及自动生成打印标签的方法和装置 |
CN109409452B (zh) * | 2018-09-20 | 2021-12-31 | 摩尔元数(福建)科技有限公司 | 通用标签解析及自动生成打印标签的方法和装置 |
CN109412603A (zh) * | 2018-10-31 | 2019-03-01 | 金鑫宇电源(深圳)有限责任公司 | 一种自动编码系统 |
CN110070162A (zh) * | 2019-03-11 | 2019-07-30 | 上海因致信息科技有限公司 | 条形码中待填充数据的编码方法及系统 |
CN109933591A (zh) * | 2019-03-20 | 2019-06-25 | 普元信息技术股份有限公司 | 大数据环境下基于多方式结合实现数据编码优化管理的系统及方法 |
CN110060174A (zh) * | 2019-04-24 | 2019-07-26 | 上海蔚来汽车有限公司 | 用于实现车辆动态配置与物料编码匹配的方法及其装置 |
CN110297956A (zh) * | 2019-06-27 | 2019-10-01 | Oppo(重庆)智能科技有限公司 | 生成产品识别码的方法及系统、计算机存储介质 |
CN111241785A (zh) * | 2019-12-31 | 2020-06-05 | 中华人民共和国天津海事局 | 基于要素变量动态编码的船舶数据模型 |
CN111241434A (zh) * | 2020-01-19 | 2020-06-05 | 深圳市赛易特信息技术有限公司 | 一种用于物料赋码的管理方法及系统 |
CN111241434B (zh) * | 2020-01-19 | 2023-11-17 | 深圳市赛易特信息技术有限公司 | 一种用于物料赋码的管理方法及系统 |
CN111291845A (zh) * | 2020-02-21 | 2020-06-16 | 北京众企联合资产管理有限公司 | 一种用于共享可移动资产的电子标签编码方法 |
CN111581914A (zh) * | 2020-04-29 | 2020-08-25 | 中通客车控股股份有限公司 | 一种直线型钢件编码传输系统及方法 |
CN111581914B (zh) * | 2020-04-29 | 2023-07-14 | 中通客车股份有限公司 | 一种直线型钢件编码传输系统及方法 |
CN111639475A (zh) * | 2020-05-31 | 2020-09-08 | 湖南行必达网联科技有限公司 | 产品编码的生成方法、装置及电子设备 |
CN111639475B (zh) * | 2020-05-31 | 2024-04-05 | 湖南行必达网联科技有限公司 | 产品编码的生成方法、装置及电子设备 |
CN111859861A (zh) * | 2020-07-30 | 2020-10-30 | 华中科技大学 | 一种可扩展的通用编码生成系统及方法 |
CN112181427B (zh) * | 2020-09-24 | 2022-10-11 | 乐思灯具(上海)有限公司 | 一种编码创建方法、装置、系统及存储介质 |
CN112181427A (zh) * | 2020-09-24 | 2021-01-05 | 乐思灯具(上海)有限公司 | 一种编码创建方法、装置、系统及存储介质 |
CN112464619B (zh) * | 2021-01-25 | 2021-05-25 | 平安国际智慧城市科技股份有限公司 | 大数据处理方法、装置、设备及计算机可读存储介质 |
CN112464619A (zh) * | 2021-01-25 | 2021-03-09 | 平安国际智慧城市科技股份有限公司 | 大数据处理方法、装置、设备及计算机可读存储介质 |
CN115757413A (zh) * | 2022-11-23 | 2023-03-07 | 中电金信软件有限公司 | 一种数据编码的方法、装置、电子设备 |
CN115757413B (zh) * | 2022-11-23 | 2024-01-19 | 中电金信软件有限公司 | 一种数据编码的方法、装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102609816B (zh) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609816A (zh) | 一种通用的可按自定义规则编码的物料编码方法 | |
CN108090073B (zh) | 一种可配置物料清单的转换方法及装置 | |
CN101794280B (zh) | 一种基于表格模板集的表格自动生成方法及系统 | |
CN104391730B (zh) | 一种软件源码语言翻译系统及方法 | |
CN104899242B (zh) | 基于设计意图的机械产品设计二维知识推送方法 | |
US9355143B2 (en) | Systems and methods for providing a simplified application programming interface for converting from two-dimensional query languages into multi-dimensional query languages to query multi-dimensional data sources and MDX servers | |
CN101025805A (zh) | 基于产品的物料清单生成方法 | |
CN104778540A (zh) | 一种建材装备制造bom管理方法及管理系统 | |
CN102043657A (zh) | 物理建模语言Modelica的模型库文件序列化方法 | |
CN104035754A (zh) | 一种基于xml的自定义代码生成方法及生成器 | |
CN111144089B (zh) | 零部件明细表与设计软件的模型文件差异检查方法及设备 | |
CN104111998A (zh) | 一种企业异构数据分类编码集成交换与管理的方法及装置 | |
CN105808746A (zh) | 一种基于Hadoop体系的关系型大数据无缝接入方法及系统 | |
CN103164573B (zh) | Pdm管理设计系统 | |
CN105242538A (zh) | 基于图层的零件多加工工序mbd模型及实现方法 | |
CN110147361A (zh) | 大数据环境下实现主数据编码规则维护功能的系统及其方法 | |
CN106547729A (zh) | 一种数据报表的动态生成方法及系统 | |
CN104978411A (zh) | 一种高速列车的车型开发方法和装置 | |
CN104268247A (zh) | 一种基于模糊层次分析的主数据归集方法 | |
CN113312369A (zh) | 一种基于唯一标识码的多尺度地图数据库级联更新方法 | |
CN103425740A (zh) | 一种面向物联网的基于语义聚类的物资信息检索方法 | |
CN110502667A (zh) | 基于dom框架的odx文档解析和生成技术 | |
CN102855305A (zh) | 数据升级方法与装置 | |
CN105930174A (zh) | 一种图形化页面程序差异比较方法与系统 | |
CN106127863B (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 | ||
CB02 | Change of applicant information |
Address after: 250100 Ji'nan high tech Zone, Shandong, No. 1036 wave road Applicant after: Langchao General Software Co., Ltd Address before: 250101 Shandong Province, Ji'nan City hi tech Development Zone, Nga Road No. 1036 Applicant before: Langchao Group Shandong Universal Software Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |