楼主: becher

BOM多階報表

[复制链接]
论坛徽章:
1
NBA常规赛纪念章
日期:2007-04-19 15:06:35
11#
发表于 2004-9-24 15:26 | 只看该作者

我已写过两家公司的,针对BOM的应用

其实很简单,在大学里学到的数据结构这门课很有用

用到[B]堆栈[/B] 先进后出的原理,
一直向下层查找,
查不到时再用同一层的物料向下找,
这样渐进式查完,只用到两个循环就可以了.



以前我也是觉得很简单的事,直到写时才发现不好动手,后面想了一晚上才想到这个好办法.


如果还不能明白话,我再给你们ASP写的源程序

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2004-9-24 18:25 | 只看该作者

使用道具 举报

回复
论坛徽章:
0
13#
发表于 2004-9-27 22:28 | 只看该作者
bom 中关键的是父编号和子编号
通过对这两个编码的递归来获取完整的结构。

需要三个临时表。表#T1和#T2,#T3,临时表最少三个字段,父编码、子编码、父含子数

#T3保存最后完整的递归信息。

1、首先应该知道顶,也就是最上边的那条。首先选择出这一条,存在#T1表中
   同时插入到#T3
2、以#T1表为子查询条件查出它的下级数据。 存在临时表#T2中。查询的条件为
    父编码 IN (select 子编码  from #T1)
   将#T2同时插入到#T3
3、删除临时表#T1
4、将临时表#T2的数据导入#T1,删除T2
5、从2过程重复 -进行循环递归。
6、结束条件为临时表#T1的数据为0

除了数据记录为0之外,建议增加循环深度控制,防止出现循环引用,当在那里。

除了关键的3个字段外可以增加其他字段,或者在最后输出进行直接的join

使用道具 举报

回复
论坛徽章:
164
技术图书徽章
日期:2018-12-26 10:01:29指数菠菜纪念章
日期:2013-06-28 17:41:29蛋疼蛋
日期:2013-04-03 16:29:52指数菠菜纪念章
日期:2013-04-01 15:26:282013年新春福章
日期:2013-02-25 14:51:24指数菠菜纪念章
日期:2013-01-04 11:30:40指数菠菜纪念章
日期:2012-09-29 10:28:42版主6段
日期:2012-05-15 15:24:11指数菠菜纪念章
日期:2012-03-31 14:04:28茶鸡蛋
日期:2012-03-12 16:56:15
14#
发表于 2004-9-28 16:22 | 只看该作者
请问楼主,有搞定了吗?

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:狗
日期:2009-03-10 21:24:29
15#
发表于 2004-10-7 16:41 | 只看该作者
最初由 james_gzpy 发布
[B]需要用到遍历树的概念
select
  from
  where
  start with
  connect by [/B]

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2004-10-10 12:09 | 只看该作者

大家好!我新来的!我很希望能与大家讨论有关BOM的话题!因为我现在就在一家电子公司

大家好!我新来的!我很希望能与大家讨论有关BOM的话题!因为我现在就在一家电子公司做BOM文员!

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2004-10-10 12:12 | 只看该作者
Harry_shan
跟着ORACLE走
你好啊!我们能聊聊吗?

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2004-10-12 11:50 | 只看该作者
waitting

使用道具 举报

回复
论坛徽章:
0
19#
发表于 2004-10-14 13:46 | 只看该作者
用这个:

select parent_item,child_item,qty_per,lpad(' ',2*(level-1))|| child_item
   from (select c.segment1 as parent_item,d.segment1 as child_item,
       b.component_quantity as qty_per
from bom_bill_of_materials a,bom_inventory_components b,
     mtl_system_items_b c,mtl_system_items_b d
where a.bill_sequence_id = b.bill_sequence_id
  and a.assembly_item_id = c.inventory_item_id
  and c.organization_id = ??
  and b.component_item_id = d.inventory_item_id
  and d.organization_id = ??)
   start with parent_item = item
   connect by prior child_item = parent_item

使用道具 举报

回复
论坛徽章:
2
ERP板块每日发贴之星
日期:2005-04-09 01:01:37ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
20#
发表于 2004-10-15 13:21 | 只看该作者

here is a example

i write a package to expand all the bom into one temporary table, then use the report to get data from the table.

2004-10-15 to itpub bom.rar

13.96 KB, 下载次数: 185

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表