BOM展开的中间函数给大家
原创
©著作权归作者所有:来自51CTO博客作者johnsuny的原创作品,请联系作者获取转载授权,否则将追究法律责任
最近一直在搞BOM展开的工作,其实在生产制造企业都是最需要的. 这里放BOM展开的中间函数,提供给需要展开BOM写存储的一些思路.
BOM展开存储过程中间函数,其他的存储过程展开都需要调用此存储过程函数
执行:Exec BOMCOMMONRpt @Code,@Sort,@ItemCode,@Quantity,@Level out
需要传入变量Code:需要展开的物料代码
Sort:排序
ItemCode:第一层的源物料
Quantity:父物料数量
Level :层级
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[BOMCOMMONRpt]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
Drop Procedure [dbo].[BOMCOMMONRpt]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
Create Procedure [dbo].[BOMCOMMONRpt]
(
@ItemCode nvarchar(40),
@Sort int,
@Source nvarchar(50),
@Quantity1 int,
@Level int out
)
--With encryption
as
declare @LevCount int --LevelCount
declare @strSQL nvarchar(4000)
declare @strSQL1 nvarchar(4000)
declare @Father nvarchar(50)
declare @Code nvarchar(50)
declare @Quantity2 int
Set @strSQL = ''
Set @strSQL1 = ''
set @LevCount=@Level
Begin
--创建存储表
-- Create Table W_Temp1
-- (
-- IDNo int identity(1,1), --No
-- Father nvarchar(30) , --AcctCode
-- Code nvarchar(200) , --AcctName
-- Quantity int,
-- BOMLevel int,
-- SortID int,
-- Source nvarchar(50),
-- BOMQnty int
--
-- )
--alter table W_Temp1 add BOMQnty int
Declare @MyPrc Cursor
Set @MyPrc = Cursor FOR
Select Father,Code,Quantity from itt1
where Father =@ItemCode
Open @MyPrc
Fetch next from @MyPrc Into @Father,@Code,@Quantity2
While @@FETCH_STATUS = 0
Begin
--插入所有子件
insert into W_Temp1 ( Father,Code,Quantity,BOMLevel,SortID,Source,BOMQnty) values (@Father,@Code,@Quantity2*@Quantity1,@LevCount,@Sort,@Source,@Quantity2)
Fetch next from @MyPrc Into @Father,@Code,@Quantity2
End
Close @MyPrc
Deallocate @MyPrc
set @Level=@Level+1
End
上一篇:怎样面对"忽悠"
下一篇:我所从事的ERP(一)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Access的BOM开发(3)BOM展开
hi,大家好呀,手机边亲爱的你还好吗!今天我们接着来讲一下BOM。我们在经历了几周的等待后,
access vba bom 树控件 物料清单 -
C++——求展开式问题
求展开式问题 关于展开式的问题,要
展开式 do-while语句 while语句 循环语句 递推公式 -
C++ | C++模板
C++ | C++模板模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型
c++ Stack #include 数据类型