ERP基础档案管理模块中实现多级分类档案ID号自动编码技术(V1.0)

            ERP基础档案管理模块中实现多级分类档案ID号自动编码技术(V1.0)

 

    本存储过程实现了多级分类档案ID号自动编码技术,本版本(V1.0)现在只实现每级3位的编码,

本版本的特点是:
  
    可以根据不同的数据库表产生不同的编码,达到通用化

    调用时通过指定iIsSubNode要产生的节点编码是否是子结点还是兄弟节点来生成对应编码

进行调用本存储过程时需要注意的是需要传递节点的层次(或是叫节点的深度)

另外下一个版本(V2.0)将根据用户自定义每级长度来实现更灵活的自动编码技术。

 

CREATE procedure prcIDAutoGen

@vSourceID varchar(30),

@iDepth int,

@iIsSubNode int,

@Table varchar(20),

@vIncrement varchar(30) output

as

begin

declare @iLen int

declare @vTempID varchar(30)

declare @SQLString nvarchar(500)

if @iIsSubNode =1

begin

 set @iDepth=@iDepth+1

 set @iLen=@iDepth*3

 set @SQLString=N"select vID from "+@Table +" where vID = """+ltrim(rtrim(@vSourceID))+""""

 exec(@SQLString)

 if @@rowcount > 0

 begin

  select @vSourceID as vID into #t

  set @SQLString=N"insert #t select vID from "+@Table +" where vParentID in (select vID from #t)  and vID not in (select vID from #t) and iDepth=@iDepth"

  exec sp_executesql @SQLString,N"@iDepth int",@iDepth

  if @@rowcount > 0

  begin

   set @SQLString=N"select @vTempID =isnull(max(vID),""0"") from #t"

   exec sp_executesql @SQLString,N"@vTempID varchar(30) output",@vTempID  output      

   set @SQLString="select @vIncrement=right(""000""+cast((cast(substring(@vTempID,1,@iLen) as
decimal(30,0))+1)as varchar),@iLen)"

   exec sp_executesql @SQLString,N"@vIncrement varchar(30) output,@vTempID varchar(30),@iLen int",@vIncrement out,@vTempID,@iLen

  end

  else

  begin

   select          @vIncrement=ltrim(rtrim(@vSourceID))+"001"

  end

 end

 else

 begin

  select @vIncrement="001"

 end

end

else

begin

 set @iLen=len(ltrim(rtrim(@vSourceID)))

 set @SQLString=N"select vID from "+@Table +" where vID = """+ltrim(rtrim(@vSourceID))+""""

 exec(@SQLString)

 if @@rowcount > 0

 begin

   set @SQLString=N"select  @vTempID =isnull(max(vID),""0"") from "+@Table+" where vID in (select vID from "+@Table+" where iDepth=@iDepth)"

   exec sp_executesql @SQLString,N"@vTempID varchar(30) output,@iDepth int",@vTempID  output,@iDepth    

   set @SQLString="select @vIncrement=right(""000""+cast((cast(substring(@vTempID,1,@iLen) as decimal(30,0))+1)as varchar),@iLen)"

   exec sp_executesql @SQLString,N"@vIncrement varchar(30) output,@vTempID varchar(30),@iLen int",@vIncrement out,@vTempID,@iLen

 end

 else

 begin

   select @vIncrement="001"

 end

end

end

 

用户创建基础档案时可以按以下类似表格式创建:

create table CustomerClass(

vID    varchar(30) constraint pkCustomerClass primary key ,

vCustomerClassName varchar(40) NOT NULL,

vRemarks         varchar(80) NULL,

vParentID varchar(30) NULL,

iDepth       Int NOT NULL

)

 

另外用户如果要在SQL查询分析器进行测试时可用如下方法进行测试:

declare @value varchar(30)

exec prcIDAutoGen "",0,1,"CustomerClass",@vIncrement=@value output

select @value

 

insert customerclass values("001","a","a",null,1)

 

declare @value varchar(30)

exec prcIDAutoGen "001",1,1,"CustomerClass",@vIncrement=@value output

select @value

 

insert customerclass values("001001","b","b","001",2)

 

declare @value varchar(30)

exec prcIDAutoGen "001",1,1,"CustomerClass",@vIncrement=@value output

select @value

 

declare @value varchar(30)

exec prcIDAutoGen "001001",2,0,"CustomerClass",@vIncrement=@value output

select @value

 

依次类推,在此不举(注意执行时三个语句一起执行)


人机对抗ERP电子沙盘 V2.0 软件说明: 破解说明,运行ERPChess_Creak.exe,生动生成当前系统的注册码。 “人机对抗ERP电子沙盘 V2.0”跟目前各个高校使用的用友ERP沙盘和金蝶工业ERP沙盘原理完全相同,规则一致,只是将手工要分成6组以上的团队进行企业经营模拟对抗的课程完全搬到了电脑上,电脑操作者为一个小组,电脑里虚拟了五个小组,从沙盘软件系统进行6个小组间的对抗,经营6年后会通过一个综合成绩进行组间排名,评比出优胜者,同时该综合成绩可以作为沙盘实验课程的结课成绩。 软件使用对象: 本科、高职和职院校经济管理类专业的实验实训课,如电子商务、会计、财务管理、物流、企业管理、工商管理、市场营销等;工商企业内训、ERP软件公司员工培训等都很适合。 软件使用: 提供可以使用1年的演示版网上下载,如需要完整经营6年,需要申请注册。软件可以安装在手工ERP沙盘实验室学生桌上的电脑和老师桌电脑里,一个小组通过分角色,指定一个人员操作一台电脑,完成沙盘对抗;另外软件也可以安装在一个有数十台电脑的机房里,人手一台电脑,每个学生像玩单机版的拱猪电脑游戏一样,是人与电脑里随机出现5个机器人在对抗。 软件注册与费用: 软件注册可发邮件或加qq:1227960881@qq.com 先来介绍下创业型,此为2.0版。通过开始菜单或者桌面快捷方式进入到ERP沙盘模拟人机对抗系统,首先看到的是登录系统(图1)。输入公司名称和决策者名称,点击进入,将进入到系统主界面(图2)。主界面上面为工具栏,提供各种查看功能和常用操作,及帮助信息。工具栏下面的左边显示的是系统信息、财务信息、生产资格、市场准入、ISO认证等信息;界面右侧是我们所熟悉的CEO运营执行区。该界面简洁明了,操作简单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值