Alter procedure createbom
@billno varchar(30),@sprc varchar(300),@mcode varchar(30)
as
declare @db varchar(300),@firstpart varchar(20),@firstzm varchar(20),@firstnum varchar(20),@firstnum_up varchar(20),@firstup varchar(20),
@secondpart varchar(20),@secondnum_up varchar(20),@final_up varchar(20),@secondpartnum varchar(20),@minuse int,@A numeric(4,2),@B numeric(4,2),
@E numeric(4,2),@F numeric(4,2),@S numeric(4,2),@thirdpart varchar(20),@thirdpart_s varchar(20),@thirdpartnum varchar(30),@fourthpart varchar(20),@part_a varchar(20),
@fivepart varchar(20),@part_B varchar(20),@part_F varchar(20),@part_E varchar(20),@part_S varchar(20),@i int,@number varchar(30),@nodeup varchar(30),@bomupdate varchar(30),@bomtypeno varchar(30)
declare @fourpart1 varchar(20),@fourpart1_up varchar(20),@fourpart1_up_num varchar(20),@fivepart1 varchar(20),@fivepart1_up varchar(20),@fivepart1_up_num varchar(20),@sixpart1 varchar(20),@sixpart1_up varchar(20),@sixpart1_up_num varchar(20),
@sevenpart1 varchar(20),@sevenpart1_up varchar(20),@sevenpart1_up_num varchar(20),@eightpart1 varchar(20),@eightpart1_up varchar(20),@eightpart1_up_num varchar(20),
@ninepart1 varchar(20),@ninepart1_up varchar(20),@ninepart1_up_num varchar(20),@tenpart1 varchar(20),@tenpart1_up varchar(20),@tenpart1_up_num varchar(20),
@elvpart1 varchar(20),@elvpart1_up varchar(20),@elvpart1_up_num varchar(20),@tlepart1 varchar(20),@tlepart1_up varchar(20),@tlepart1_up_num varchar(20),
@threetenpart1 varchar(20),@threetenpart1_up varchar(20),@threetenpart1_up_num varchar(20)
declare @onebomup varchar(30),@twobomup varchar(30),@threebomup varchar(30),@fourbomup varchar(30),@fivebomup varchar(30)
declare @one varchar(30),@two varchar(30),@three varchar(30),@four varchar(30),@five varchar(30),@isqz varchar(15),@isjg varchar(15),@isfj varchar(30),@wherefj int,@where_bom_num int,@where_sprc_num int,@zxqty int,@gdxdsl int,@qzxdsl varchar(20),@wc int, @typeno varchar(20)
declare @M int,@N int
declare @j varchar(30)
declare @typestr varchar(300),@astr varchar(300)
----------------------------------------------------
if exists(select * from tempdb..sysobjects where id=object_id('tempdb..##createbom2'))
begin
drop table ##createbom2
end
-----------------------------------------------------
---------------------------------------------------------------------------------------------------------
set @i=1
--先取得类别
set @typestr=@sprc set @astr=''
while @i<=3
begin
if charindex('-',@typestr)>0
begin
if @astr=''
set @astr=left(@typestr,charindex('-',@typestr)-1)
else
set @astr=@astr+'-'+left(@typestr,charindex('-',@typestr)-1)
set @typestr=right(@typestr,len(@typestr)-charindex('-',@typestr))--截断已检索字符
end
else
begin
if @astr=''
set @astr=@typestr
else
set @astr=@astr+'-'+@typestr
set @typestr=''
end
--如果找到就终止,否则就继续
if exists(select * from pd_autocreatebom with(nolock) where @astr=sprccode)
set @i=4
else
set @i=@i+1
end
-- print 'a_'+ @typestr
----------------------------------------------------------------------------------------------------------
set @i=''
--set @sprc=1
--select @sprc
--set @sprc=(select sprc from ##needbom where billno=@billno and autoid=@autoid) --SAD01-D6-L20-E...-F...-M...
--set @mcode=(select mcode from ##needbom where billno=@billno and autoid=@autoid)
--select @sprc
--第一级
set @db=left(@sprc,3) --SAD
set @firstpart=left(@sprc,charindex('-',@sprc)-1) --SAD01
set @firstnum=right(@firstpart,2) --01
set @secondpart=substring(@sprc,7,len(@sprc)-6) -- D6-L20-...-... D...
--第二级
if charindex('-',@secondpart)<>''
begin
set @secondnum_up=substring(@secondpart,1,charindex('-',@secondpart)-1) --D6
set @secondpartnum=substring(@secondnum_up,2,len(@secondnum_up)-1) --6
set @thirdpart=substring(@secondpart,charindex('-',@secondpart)+1,len(@secondpart)-charindex('-',@secondpart)) -- L20-...-... 或者-- L20
end
else
begin
set @i=''
set @i=2
end
--业务id:99215
--第三级
if charindex('-',@thirdpart)<>'' -- L20-...
BEGIN
set @thirdpart_s=substring(@thirdpart,1,charindex('-',@thirdpart)-1) -- L20
set @thirdpartnum=substring(@thirdpart_s,2,len(@thirdpart_s)-1) -- 20
set @fourpart1=substring(@thirdpart,charindex('-',@thirdpart)+1,len(@thirdpart)-charindex('-',@thirdpart)) --E...-F...-M... 或者E..
end
else -- L20
begin
set @i=''
--set @thirdpartnum=substring(@thirdpart_s,2,len(@thirdpart_s)-1) --20
set @i=3
end
--第四级
if @i=''
begin
if charindex('-',@fourpart1)<>'' --E...-F...-M...
begin
set @fourpart1_up=substring(@fourpart1,1,charindex('-',@fourpart1)-1) --E...
set @fourpart1_up_num=substring(@fourpart1_up,2,len(@fourpart1_up)-1) --...
set @fivepart1=substring(@fourpart1,charindex('-',@fourpart1)+1,len(@fourpart1)-charindex('-',@fourpart1)) --F...-M... 或者F..
end
else -- E...
begin
set @i=''
--set @fourpart1_up_num=substring(@fourpart1,2,len(@fourpart1)-1) --E的数字
set @i=4
end
end
--第五级
if @i=''
begin
if charindex('-',@fivepart1)<>'' --F...-M... 或者F..
begin
set @fivepart1_up=substring(@fivepart1,1,charindex('-',@fivepart1)-1) --F...
set @fivepart1_up_num =substring(@fivepart1_up,2,len(@fivepart1_up)-1) --F的数字
set @sixpart1=substring(@fivepart1,charindex('-',@fivepart1)+1,len(@fivepart1)-charindex('-',@fivepart1)) --F...-M... 或者F..
end
else -- F...
begin
set @i=''
--set @fivepart1_up_num=substring(@fivepart1,2,len(@fivepart1)-1) --F的数字
set @i=5
end
end
--第六级
if @i=''
begin
if charindex('-',@sixpart1)<>''
begin
set @sixpart1_up=substring(@sixpart1,1,charindex('-',@sixpart1)-1)
set @sixpart1_up_num =substring(@sixpart1_up,2,len(@sixpart1_up)-1)
set @sevenpart1=substring(@sixpart1,charindex('-',@sixpart1)+1,len(@sixpart1)-charindex('-',@sixpart1))
end
else -- F...
begin
set @i=''
--set @sixpart1_up_num=substring(@sixpart1,2,len(@sixpart1)-1)
set @i=6
end
end
--第七级
if @i=''
begin
if charindex('-',@sevenpart1)<>''
begin
set @sevenpart1_up=substring(@sevenpart1,1,charindex('-',@sevenpart1)-1)
set @sevenpart1_up_num =substring(@sevenpart1_up,2,len(@sevenpart1_up)-1)
set @eightpart1=substring(@sevenpart1,charindex('-',@sevenpart1)+1,len(@sevenpart1)-charindex('-',@sevenpart1))
end
else -- F...
begin
set @i=''
--set @sevenpart1_up_num=substring(@sevenpart1,2,len(@sevenpart1)-1)
set @i=7
end
end
--第八级
if @i=''
begin
if charindex('-',@eightpart1)<>''
begin
set @eightpart1_up=substring(@eightpart1,1,charindex('-',@eightpart1)-1)
set @eightpart1_up_num =substring(@eightpart1_up,2,len(@eightpart1_up)-1)
set @ninepart1=substring(@eightpart1,charindex('-',@eightpart1)+1,len(@eightpart1)-charindex('-',@eightpart1))
end
else -- F...
begin
set @i=''
--set @eightpart1_up_num=substring(@eightpart1,2,len(@eightpart1)-1)
set @i=8
end
end
--第九级
if @i=''
begin
if charindex('-',@ninepart1)<>''
begin
set @ninepart1_up=substring(@ninepart1,1,charindex('-',@ninepart1)-1)
set @ninepart1_up_num =substring(@ninepart1_up,2,len(@ninepart1_up)-1)
set @tenpart1=substring(@ninepart1,charindex('-',@ninepart1)+1,len(@ninepart1)-charindex('-',@ninepart1))
end
else -- F...
begin
set @i=''
--set @ninepart1_up_num=substring(@ninepart1,2,len(@ninepart1)-1)
set @i=9
end
end
--第十级
if @i=''
begin
if charindex('-',@tenpart1)<>''
begin
set @tenpart1_up=substring(@tenpart1,1,charindex('-',@tenpart1)-1)
set @tenpart1_up_num =substring(@tenpart1_up,2,len(@tenpart1_up)-1)
set @elvpart1=substring(@tenpart1,charindex('-',@tenpart1)+1,len(@tenpart1)-charindex('-',@tenpart1))
end
else -- F...
begin
set @i=''
--set @tenpart1_up_num=substring(@tenpart1,2,len(@tenpart1)-1)
set @i=10
end
end
--业务id:99215
--第十一级
if @i=''
begin
if charindex('-',@elvpart1)<>''
begin
set @elvpart1_up=substring(@elvpart1,1,charindex('-',@elvpart1)-1)
set @elvpart1_up_num =substring(@elvpart1_up,2,len(@elvpart1_up)-1)
set @tlepart1=substring(@elvpart1,charindex('-',@elvpart1)+1,len(@elvpart1)-charindex('-',@elvpart1))
end
else -- F...
begin
set @i=''
--set @elvpart1_up_num=substring(@elvpart1,2,len(@elvpart1)-1)
set @i=11
end
end
--第十二级
if @i=''
begin
if charindex('-',@tlepart1)<>''
begin
set @tlepart1_up=substring(@tlepart1,1,charindex('-',@tlepart1)-1)
set @tlepart1_up_num =substring(@tlepart1_up,2,len(@tlepart1_up)-1)
set @threetenpart1=substring(@tlepart1,charindex('-',@tlepart1)+1,len(@tlepart1)-charindex('-',@tlepart1))
end
else -- F...
begin
set @i=''
--set @tlepart1_up_num=substring(@tlepart1,2,len(@tlepart1)-1)
set @i=12
end
end
实现自动建表的功能1
最新推荐文章于 2024-04-15 11:22:26 发布