zoukankan      html  css  js  c++  java
  • 金蝶触发器,生成条码信息

    业务内容:通过新增生产任务单,自动产品条码信息    (解决方式:在金蝶生产任务单的数据库表上:ICMO里新增三个触发器:Insert触发器、Update触发器、Delete触发器)

    业务类型:生产一批产品,一批产品装入各自的箱中,每一箱一个条码,且条码末三位要求对应一箱内产品的个数

    例如:企业生产1000个产品,每箱装20个,就需要50箱,也需要50个条码

    难点:企业一次也可能生产103个产品,那么最后一箱数量就是3个,而不是20个,最后的三位不是020,而是003

    注意点:条码号必须保证决不能有相同出现,可以设置唯一键约束

    第一步:需要新建一张条码表

     1 create trigger [dbo].[xt_AddBarCode] on [dbo].[ICMO] for insert as            --创建触发器
     2 begin
     3 
     4 declare @fid int set @fid=(select finterid from inserted)        --单据内码
     5 declare @fmat int set @fmat=(select fitemid from inserted)        --物料内码
     6 declare @qty float set @qty=(select FHeadSelfJ01110 from inserted)        --装箱数量
     7 declare @prodate datetime set @prodate=(select FHeadSelfJ01111 from inserted)
     8 declare @pro float set @pro=(select FWorkShop from inserted)        --生产车间内码
     9 declare @CreateT datetime set @CreateT=(select FPlanCommitDate from inserted)    --计划生产日期
    10 declare @proNum float set @proNum=(select FAuxQty from inserted)                --计划生产数量
    11 declare @Num int set @Num=1        --计次
    12 declare @barid varchar(20) 
    13 declare @quyu float
    14 
    15 delete from xt_CodeInfo where billID=@fid            --插入时,删除一切与该生产任务单有关的条码,全部重新生产
    16 
    17 while(@Num*@qty<@proNum+@qty)                        --循环,判断需要生成条码数量
    18 begin
    19 
    20 if(@Num*@qty>@proNum-@qty and @Num*@qty<@proNum)
    21 set @quyu=@proNum-@Num*@qty
    22 else
    23 set @quyu=@qty
    24 
    25 set @barid=isnull((select cast(max(cast(substring(barCode,7,6) as int))+1 as varchar(20)) from xt_CodeInfo),0)
    26 
    27 set @barid=left('000000',6-len(@barid))+@barid
    28 
    29 set @barid=left('000000',6-len(@fmat))+CAST(@fmat as varchar(10))+@barid+LEFT('000',3-LEN(@quyu))+CAST(@quyu as varchar(50))
    30 
    31 insert into xt_CodeInfo (barcode,materialID,billType,billID,packing,qty,ProductID,CreateDate,printlabel,prodate,flag) values (@barid,@fmat,1,@fid,@qty,@quyu,@pro,@CreateT,0,@prodate,1)
    32 
    33 
    34 set @num=@num+1
    35 end
    36 
    37 end
  • 相关阅读:
    Samba 4.0 RC3 发布
    SymmetricDS 3.1.7 发布,数据同步和复制
    Express.js 3.0 发布,Node.js 的高性能封装
    GIFLIB 5.0.1 发布,C语言的GIF处理库
    jQuery UI 1.9.1 发布
    SVN Access Manager 0.5.5.14 发布 SVN 管理工具
    DynamicReports 3.0.3 发布 Java 报表工具
    HttpComponents HttpClient 4.2.2 GA 发布
    AppCan 2.0 正式发布,推移动应用云服务
    Ruby 2.0 的新功能已经冻结
  • 原文地址:https://www.cnblogs.com/erph/p/6992365.html
Copyright © 2011-2022 走看看