这是大约半年前写在QQ空间里的,现在转过来吧
SAP Business One的序列号添加实在是太恶心了,难用又麻烦,不知道为啥,我们公司这个实施顾问一口咬定b1不能做序列号自动添加的功能,我算是服了,求人不如求己,自己来呗。东找找,西找找,这个问问,那个问问,终于还是有点收获,今天又头痛的厉害,昏睡一天,下午起来,突然有了灵感,大概知道怎么做了,于是乎动手,写,调试,5点半下班的时候搞出来了。下楼去跟使用的人说了,结果人先给我来了一句,“怎么别人下班的时候你才上班啊?”晕一个。。。
恩,把东西记录在这里,没准有人看见了会有需要呢。。
格式化查询语句:
execute UtmpGetSNArr $[$43.5.1] ,$[$43.37.69]
存储过程:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go create PROCEDURE [dbo].[UtmpGetSNArr] @tItemCode nvarchar(30), @tNums int AS BEGIN declare @tmpTable table (col1 varchar(40)) declare @tSN as nvarchar(50) declare @fSN as nvarchar(50) declare @str as nvarchar(10) declare @tDate as nvarchar(50) declare @tcount int declare @i int Select @tDate=LEFT(Convert(varchar(20),getdate(),12),4) set @tSN=rtrim(@tItemCode)+rtrim(@tDate) if exists( select IntrSerial from OSRI where IntrSerial LIKE @tSN+'____' ) begin declare @tmp as nvarchar(20) select @tmp=right(max(IntrSerial),4)+1 from OSRI where IntrSerial LIKE @tSN+'____' set @str =right('0000'+rtrim(cast(@tmp as char)), 4) end ELSE set @str='0001' if(@tNums=1) begin set @fSN=rtrim(@tSN)+rtrim(@str) select @fSN end ELSE set @i=0 while @i<@tNums begin set @str =right('0000'+rtrim(cast(@str as char)), 4) set @fSN=rtrim(@tSN)+rtrim(@str) INSERT INTO @tmpTable VALUES(@fSN) set @i=@i+1 set @str=@str+1 end select col1 from @tmpTable END
在鼠标所在地方添加格式化搜索即可。
我这里序列号的规则是物料编号+4位年月+4位流水号,如果有其他的需求,修改那个存储过程即可。
自己还是比较满意的,最近学了不少东西,很有意思。不过我很不明白的就是,为什么很多人都喜欢私藏,其实这些代码并不难,怎么就有人总是不愿意给人分享,也不愿意告诉别人方法呢,这里我还得特别感谢群里的一个朋友,也是他开始给我的一些思路,才能完成这个东西。