CN102479203B - 物料清单的展示方法及系统 - Google Patents
物料清单的展示方法及系统 Download PDFInfo
- Publication number
- CN102479203B CN102479203B CN201010562161.1A CN201010562161A CN102479203B CN 102479203 B CN102479203 B CN 102479203B CN 201010562161 A CN201010562161 A CN 201010562161A CN 102479203 B CN102479203 B CN 102479203B
- Authority
- CN
- China
- Prior art keywords
- bom
- current layer
- layer
- initialization
- bill
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种物料清单的展示方法,包括以下步骤:创建存储物料清单展开的每层数据的临时表,为所述临时表增设排序字段;获取初始化条件及所述物料清单每层的层次号;根据所述物料清单的层次号及初始化条件逐层设置所述排序字段的值;对设置后的所述排序字段的值进行排序;根据排序结果展示所述物料清单。此外,还提供一种物料清单的展示系统。上述物料清单的展示方法及系统,采用临时表存储物料清单展开的每层数据,并增设一个排序字段,记录物料清单每层的层次号,根据物料清单的层次号及初始化条件设置排序字段的值,并对排序字段的值进行排序,根据排序结果展示物料清单,实现根据不同字段进行排序展开物料清单,展示的方式多样,满足不同的展示需求。
Description
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种物料清单的展示方法及系统。
【背景技术】
物料清单(Bill Of Materials,简称BOM)是所有进入主产品组装的零部件、原材料、半成品等的清单,该清单标明进行组装所需要的每一个部件,形式上像一棵倒立的树。在ERP(Enterprise Resource Planning,企业资源计划)软件系统中,数据库一般是通过单层BOM进行数据存储的,即每个BOM只存储父项物料及其直接子项物料的关系清单。一般可以分两个物理表存储,一个存储父项物料信息,另一个存储各直接子项物料信息,两者通过内码关联。
传统的物料清单,BOM展开一般是通过先根遍历算法,采用递归的方法进行逐层展开并显示到界面上,且一般只能按照BOM的自然顺序展开,即BOM维护时子项物料的先后顺序,在数据库中一般用行号标识,不能按照任意需要的字段排序进行展开,展开方式单一。
【发明内容】
基于此,有必要提供一种物料清单的展示方法,能够灵活的按照任意字段排序进行展开。
一种物料清单的展示方法,包括以下步骤:
创建存储物料清单展开的每层数据的临时表,为所述临时表增设排序字段;
获取初始化条件及所述物料清单每层的层次号;
根据所述物料清单的层次号及初始化条件逐层设置所述排序字段的值;
对设置后的所述排序字段的值进行排序;
根据排序结果展示所述物料清单。
优选地,所述根据物料清单的层次号及所述初始化条件逐层设置所述排序字段的值的具体步骤包括:
获取总层数,初始化当前层数;
判断所述当前层数是否小于等于所述总层数,若是,则设置所述当前层的排序字段的值,并将所述当前层数累加1作为新的当前层数,返回到判断所述新的当前层数是否小于等于所述总层数,若否,则结束。
优选地,所述获取初始化条件具体包括:获取进行排序的指定字段、初始化所述相邻两层之间的间隔符、初始化每层的顺序号及初始化每层字符串长度的位数。
优选地,所述设置当前层的排序字段的值的步骤具体为:设置所述当前层的排序字段的值为该当前层的上一层的排序字段的值、初始化的间隔符及当前层的顺序号的依次组合。
优选地,所述方法还包括:所述初始化当前层的层次号及预设相邻两层的层次号的等差值,计算新的当前层数与初始化当前层数之差,再计算所述差与预设相邻两层的层次号的等差值的乘积的步骤;所述新的当前层的层次号为初始化当前层的层次号与所述乘积之和。
此外,还有必要提供一种物料清单的展示系统,能够灵活的按照任意字段排序进行展开。
一种物料清单的展示系统,包括:
创建模块,用于创建存储物料清单展开的每层数据的临时表,所述临时表增设排序字段,记录所述物料清单每层的层次号;
初始化模块,用于获取初始化条件及所述物料清单每层的层次号;
更新模块,用于根据所述物料清单的层次号及初始化条件逐层设置所述排序字段的值;
排序模块,用于对设置后的排序字段的值进行排序;
展示模块,用于根据排序结果展示所述物料清单。
优选地,所述更新模块包括判断子模块和设置子模块,所述初始化模块还用于获取总层数,初始化当前层数;
所述判断子模块判断所述当前层数是否小于等于所述总层数,若是,则所述设置子模块设置所述当前层的排序字段的值,并将所述当前层数值累加1作为新的当前层,所述判断子模块返回到判断所述新的当前层数是否小于等于所述总层数,若否,则结束。
优选地,所述初始化模块进一步获取进行排序的指定字段、初始化所述相连两层之间的间隔符、初始化每层的顺序号及每层字符串长度的位数。
优选地,所述设置子模块还用于设置所述当前层的排序字段的值为该当前层的上一层的排序字段的值、初始化的间隔符再加上当前层的顺序号的依次组合。
优选地,所述初始化模块初始化当前层的层次号及预设相邻两层的层次号的等差值,计算新的当前层数与初始化当前层数之差,再计算得出所述差与预设相邻两层的层次号的等差值的乘积;所述新的当前层的层次号为初始化当前层的层次号与所述乘积之和。
上述物料清单的展示方法及系统,采用临时表存储物料清单展开的每层数据,并增设一个排序字段,记录物料清单每层的层次号,根据物料清单的层次号及初始化条件设置排序字段的值,并对排序字段的值进行排序,根据排序结果展示物料清单,可实现根据不同的字段进行排序展开物料清单,展示的方式多样,满足不同的展示需求。
【附图说明】
图1为一个实施例中物料清单的展示方法流程图;
图2为物料清单的每层数据按照递归方法展开的方法流程图;
图3为一个实施例中设置排序字段值的方法流程图;
图4为一个实施例中物料清单的展示系统的结构示意图;
图5为图4中更新模块的结构示意图。
【具体实施方式】
下面结合具体的实施例及附图对本发明的技术方案进行详细描述。
如图1所示,一种物料清单的展示方法,包括以下步骤:
S10,创建存储物料清单展开的每层数据的临时表,该临时表增设排序字段。
步骤S10中,将物料清单的每层数据可按照递归方法进行逐层展开。如图2所示,该物料清单按递归方法具体展开的步骤包括:
步骤S100,将需要展开的父项物料和对应的物料清单的内码放入展开的临时表,并标记未展开,初始化当前层数,获取总层数;
步骤S110,判断当前层数是否小于等于总层数,若是,则执行步骤S120,若否,则结束。
步骤S120,展开临时表中当前层未展开的物料集合,获取对应的物料清单中的子项物料存入展开临时表中作为新的父项物料,同时获取对应的物料清单的内码,当前层数累加1作为新的当前层数,并标记当前层的物料集合为已展开,返回步骤S110。
展示的物料清单的各层的初始数据如临时表1所示。
表1
序号 | 顺序号 | 父项物料 | 子项物料 | 层数 | 排序字段 |
1 | 1 | A0 | 0 | ||
2 | 1 | A0 | A1 | 1 | |
3 | 2 | A0 | A2 | 1 | |
4 | 3 | A0 | A3 | 1 | |
5 | 1 | A1 | A11 | 2 | |
6 | 2 | A1 | A12 | 2 | |
7 | 3 | A1 | A13 | 2 | |
8 | 1 | A2 | A21 | 2 | |
9 | 2 | A2 | A22 | 2 | |
10 | 3 | A2 | A23 | 2 | |
11 | 1 | A3 | A31 | 2 | |
12 | 2 | A3 | A32 | 2 | |
13 | 3 | A3 | A33 | 2 |
此时,可以从展开的临时表中获取每层数据。该临时表中记录了物料清单每层的层次号和预设的需要展示的字段等信息。其中,预设的需要展示的字段是指在临时表展示中需要显示的字段,由用户或开发人员设定。在该临时表中还增设排序字段。
步骤S20,获取初始化条件及该物料清单每层的层次号。
步骤S20中,对临时表进行初始化,获取预先设定的条件,该获取的初始化条件包括获取进行排序的指定字段(如层次号、物料代码和发料仓库等任意字段)、初始化相邻两层之间的间隔符(如竖线“|”或“$”等)、初始化每层的顺序号(第一层的第一个数据为0001号,第二个数据为0002号等)及初始化每层字符串长度的位数(如4位或8位)。另外,每层字符串长度不足初始化位数时,则高位采用预设字符补充,如采用“0”或“$”等补充,即实际长度不够时,前面补0或$。初始化每层的层次号的具体步骤为:初始化当前层的层次号及预设相邻两层的层次号的等差值,计算新的当前层数与初始化当前层数之差,再计算该差与预设相邻两层的层次号的等差值的乘积,新的当前层的层次号初始化当前层的层次号与该乘积之和。如当前层数为第1层初始化当前层的层次号为0001,相邻两层的层次号的等差值为1,新的当前层数为3层,则新的当前层的层次号为0001+(3-1)×1=0003。
步骤S30,根据该物料清单的层次号及初始化条件逐层设置该排序字段的值。
步骤S30中,在临时表中增设了排序字段,将临时表中存储的每层数据,从最顶层开始逐层更新排序字段的值。如图3所示,步骤S30具体包括如下步骤:
步骤S300,获取总层数,初始化当前层数。获取到整个物料清单的总层数。初始化当前层数,如可将当前层数设为第0层。
步骤S310,判断当前层数是否小于等于该总层数,若是,则转入步骤S320,若否,则结束。
步骤S320,设置该当前层的排序字段的值,并将该当前层数累加1作为新的当前层数,再转入步骤S310。设置当前层的排序字段的值具体步骤为:设置该当前层的排序字段的值为该当前层的上一层的排序字段的值、初始化的间隔符及当前层的顺序号的依次组合。其中,顺序号为每一层的多个数据的排序号。
一个实施例中,排序字段采用FSort表示,预设的每层字符串长度的位数为4位,不足的位数采用“0”补充,预设间隔符为“|”为例说明。
以物料清单自然顺序展开(即每层层次号展开),第0层,设置FSort=“0”,第一层的第一个子项物料,设置FSort=“0|0001”,第一层的第二个子项物料,设置FSort=“0|0002”,如此按照层次序号设置,则第5层第8个子项物料,如假设均在第一分支,则设置FSort=“0|0001|0001|0001|0001|0008”。这样设置完每层,然后将排序字段FSort由小到大进行排序或由大到小进行排序得出相应的结果。
以物料顺序排序展开,物料清单中的每层物料,第0层,FSort=A0,第一层子项物料A1,FSort=“A0|00A1”,第一层子项物料A2,FSort=“A0|00A2”,如此进行设置,则第二层子项物料A32,FSort=“A0|00A3|0A32”。依次对所有的物料进行设置。在按照排序字段指进行排序得出相应的排序结展示。
步骤S40,对设置后的排序字段的值进行排序。对设置了的排序字段的值进行排序得出相应的排序结果。排序后的结果如临时表2所示。
表2
步骤S50,根据排序结果展示该物料清单。根据排序结果将物料清单的每层数据进行展示。
如图4所示,在一个实施例中,一种物料清单的展示系统,包括创建模块10、初始化模块20、更新模块30、排序模块40和展示模块50。其中,创建模块10用于创建存储物料清单展开的,每层数据的临时表,该临时表增设排序字段,记录该物料清单每层的层次号。将物料清单的每层数据可按照递归方法进行逐层展开。该物料清单按递归方法具体展开的过程包括:
(1)将需要展开的父项物料和对应的物料清单的内码放入展开的临时表,并标记未展开,初始化当前层数,获取总层数;
(2)判断当前层数是否小于等于总层数,若是,则执行(3),若否,则结束。
(3)展开临时表中当前层未展开的物料集合,获取对应的物料清单中的子项物料存入展开临时表中作为新的父项物料,同时获取对应的物料清单的内码,当前层数累加1作为新的当前层数,并标记当前层的物料集合为已展开,返回(2)。
此时,可以从展开的临时表中获取每层数据。该临时表中记录了物料清单每层的层次号和预设的需要展示的字段等信息。其中,预设的需要展示的字段是指在临时表展示中需要显示的字段,由用户或开发人员设定。在该临时表中还增设排序字段。
初始化模块20用于获取初始化条件及该物料清单每层的层次号。初始化模块20对临时表进行初始化,获取预先设定的条件,该获取的初始化条件包括获取进行排序的指定字段(如层次号、物料代码和发料仓库等任意字段)、初始化相邻两层之间的间隔符(如竖线“|”或“$”等)、初始化每层的顺序号(第一层的第一个数据为0001号,第二个数据为0002号等)及初始化每层字符串长度的位数(如4位或8位)。另外,每层字符串长度不足初始化位数时,则高位采用预设字符补充,如采用“0”或“$”等补充,即实际长度不够时,前面补0或$。
初始化模块20进一步用于初始化当前层的层次号及预设相邻两层的层次号的等差值,计算新的当前层数与初始化当前层数之差,再计算该差与预设相邻两层的层次号的等差值的乘积,新的当前层的层次号初始化当前层的层次号与该乘积之和。如当前层数为第1层初始化当前层的层次号为0001,相邻两层的层次号的等差值为1,新的当前层数为3层,则新的当前层的层次号为0001+(3-1)×1=0003。
更新模块30用于根据该物料清单的层次号及预设规则逐层设置该排序字段的值。
如图5所示,在一个实施例中,更新模块30包括判断子模块310和设置子模块320。
初始化模块20用于获取总层数,初始化当前层数。初始化模块20获取到整个物料清单的总层数。初始化当前层数,如可将当前层数设为第0层。
判断子模块310判断当前层数是否小于等于该总层数,若是,设置子模块320设置该当前层的排序字段的值,并将该当前层数累加1作为新的当前层数,判断子模块310再判断新的当前层数是否小于等于该总层数。若否,则结束。设置子模块320设置当前层的排序字段的值具体为:设置子模块320设置该当前层的排序字段的值为该当前层的上一层的排序字段的值、初始化的间隔符及当前层的顺序号的依次组合。其中,顺序号为每一层的多个数据的排序号。
上述物料清单的展示方法及系统,采用临时表存储物料清单展开的每层数据,并增设一个排序字段,记录物料清单每层的层次号,根据物料清单的层次号及初始化条件设置排序字段的值,并对排序字段的值进行排序,根据排序结果展示物料清单,可实现根据不同的字段进行排序展开物料清单,展示的方式多样,满足不同的展示需求。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种物料清单的展示方法,包括以下步骤:
创建存储物料清单展开的每层数据的临时表,为所述临时表增设排序字段;
获取初始化条件及所述物料清单每层的层次号;
所述获取初始化条件具体包括:获取进行排序的指定字段、初始化相邻两层之间的间隔符、初始化每层的顺序号及初始化每层字符串长度的位数;
根据所述物料清单每层的层次号及初始化条件逐层设置所述排序字段的值;
对设置后的所述排序字段的值按从小到大或从大到小进行排序;
根据排序结果展示所述物料清单;
获取所述物料清单每层的层次号的步骤包括:
初始化当前层的层次号及预设相邻两层的层次号的等差值,计算新的当前层数与初始化当前层数之差,再计算所述差与预设相邻两层的层次号的等差值的乘积;新的当前层的层次号为初始化当前层的层次号与所述乘积之和。
2.根据权利要求1所述的物料清单的展示方法,其特征在于,所述根据物料清单每层的层次号及所述初始化条件逐层设置所述排序字段的值的具体步骤包括:
获取总层数,初始化当前层数;
判断所述当前层数是否小于等于所述总层数,若是,则设置所述当前层的排序字段的值,并将所述当前层数累加1作为新的当前层数,返回到判断所述新的当前层数是否小于等于所述总层数,若否,则结束。
3.根据权利要求2所述的物料清单的展示方法,其特征在于,所述设置当前层的排序字段的值的步骤具体为:设置所述当前层的排序字段的值为该当前层的上一层的排序字段的值、初始化的间隔符及当前层的顺序号的组合。
4.一种物料清单的展示系统,其特征在于,包括:
创建模块,用于创建存储物料清单展开的每层数据的临时表,所述临时表增设排序字段,记录所述物料清单每层的层次号;
初始化模块,用于获取初始化条件及所述物料清单每层的层次号,获取进行排序的指定字段、初始化相邻两层之间的间隔符、初始化每层的顺序号及每层字符串长度的位数;所述初始化模块初始化当前层的层次号及预设相邻两层的层次号的等差值,计算新的当前层数与初始化当前层数之差,再计算得出所述差与预设相邻两层的层次号的等差值的乘积;新的当前层的层次号为初始化当前层的层次号与所述乘积之和;
更新模块,用于根据所述物料清单每层的层次号及初始化条件逐层设置所述排序字段的值;
排序模块,用于对设置后的排序字段的值进行按从小到大或从大到小排序;
展示模块,用于根据排序结果展示所述物料清单。
5.根据权利要求4所述的物料清单的展示系统,其特征在于,所述更新模块包括判断子模块和设置子模块,所述初始化模块还用于获取总层数,初始化当前层数;
所述判断子模块判断所述当前层数是否小于等于所述总层数,若是,则所述设置子模块设置所述当前层的排序字段的值,并将所述当前层数值累加1作为新的当前层,所述判断子模块返回到判断所述新的当前层数是否小于等于所述总层数,若否,则结束。
6.根据权利要求5所述的物料清单的展示系统,其特征在于,所述设置子模块还用于设置所述当前层的排序字段的值为该当前层的上一层的排序字段的值、初始化的间隔符再加上当前层的顺序号的组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010562161.1A CN102479203B (zh) | 2010-11-26 | 2010-11-26 | 物料清单的展示方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010562161.1A CN102479203B (zh) | 2010-11-26 | 2010-11-26 | 物料清单的展示方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102479203A CN102479203A (zh) | 2012-05-30 |
CN102479203B true CN102479203B (zh) | 2014-05-28 |
Family
ID=46091851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010562161.1A Active CN102479203B (zh) | 2010-11-26 | 2010-11-26 | 物料清单的展示方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102479203B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488476B (zh) * | 2013-09-02 | 2017-05-03 | 用友网络科技股份有限公司 | 关联数据处理系统和关联数据处理方法 |
CN106126559A (zh) * | 2016-06-16 | 2016-11-16 | 天脉聚源(北京)传媒科技有限公司 | 一种数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003042780A3 (en) * | 2001-11-09 | 2003-08-28 | Gene Logic Inc | System and method for storage and analysis of gene expression data |
CN101025805A (zh) * | 2007-01-24 | 2007-08-29 | 上海理工大学 | 基于产品的物料清单生成方法 |
CN101208665A (zh) * | 2005-04-14 | 2008-06-25 | Emc公司 | 以可重复方式遍历数据 |
JP2008146271A (ja) * | 2006-12-08 | 2008-06-26 | Hitachi Ltd | 需要変動・部品重要度考慮型推奨部品構成表生成方法およびシステム |
-
2010
- 2010-11-26 CN CN201010562161.1A patent/CN102479203B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003042780A3 (en) * | 2001-11-09 | 2003-08-28 | Gene Logic Inc | System and method for storage and analysis of gene expression data |
CN101208665A (zh) * | 2005-04-14 | 2008-06-25 | Emc公司 | 以可重复方式遍历数据 |
JP2008146271A (ja) * | 2006-12-08 | 2008-06-26 | Hitachi Ltd | 需要変動・部品重要度考慮型推奨部品構成表生成方法およびシステム |
CN101025805A (zh) * | 2007-01-24 | 2007-08-29 | 上海理工大学 | 基于产品的物料清单生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102479203A (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678494B (zh) | 客户端同步服务端数据的方法及装置 | |
CN102726002B (zh) | 数据配置及其回退方法和设备 | |
CN101404009B (zh) | 一种数据分类过滤方法、系统及设备 | |
CN101025805A (zh) | 基于产品的物料清单生成方法 | |
CN105849725A (zh) | 构造用于针对多维数据结构执行的查询 | |
WO2000008632A1 (en) | Method for determining actionable patterns in a database | |
CN101887464B (zh) | 显示数据库中的数据的方法、装置 | |
WO2005057377A3 (en) | Method and system for computer-assisted test construction performing specification matching during test item selection | |
CN109800936A (zh) | 基于树状搜寻的调度方法与使用该方法的电子装置 | |
CN105930390A (zh) | 关系型数据库扩展方法及关系型数据库扩展系统 | |
CN102479203B (zh) | 物料清单的展示方法及系统 | |
CN104657081A (zh) | 移动终端及其图片的处理方法 | |
CN108920353A (zh) | 一种测试方法、装置及电子设备 | |
US20240070331A1 (en) | Filtering components compatible with a computer-modeled structure | |
CN102043669B (zh) | 一种工作流并发模式的控制方法及装置 | |
CN107066271B (zh) | 一种显示对象的层级管理方法及系统 | |
CN113344673A (zh) | 产品推送方法、装置、电子设备及存储介质 | |
CN105654401A (zh) | 酒店报价自动化系统及其实现方法 | |
CN102323956B (zh) | 数据管理装置和数据管理方法 | |
CN102411731A (zh) | 低位码自动计算方法及装置 | |
CN110232063A (zh) | 层级数据查询方法、装置、计算机设备和存储介质 | |
CN103677827A (zh) | 一种芯片配置方法及装置 | |
CN103064831B (zh) | 产品结构表的展开方法及系统 | |
CN105069174A (zh) | 一种可配置的a+b模式的记录导航方法 | |
CN107832089B (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 |