审核成功触发,是一个比较典型的场景。需要用到update触发器,跟踪到审核状态的变化。

引用的源码《采购检验单审核后反写收料通知单》,其中采购检验单是BOS自定义单据。

if (object_id('bobang_tgr_check_update', 'TR') is not null)
drop trigger bobang_tgr_check_update
go
create trigger cl_tgr_check_update
on bobang_bos_check
after update
as
declare @FID int
declare @FMultiCheckStatus varchar(100)
declare @FAuxQtyPass float --合格数量
declare @FQtyPass float --基本单位合格数量
declare @FAuxNotPassQty float --不合格数量
declare @FNotPassQty float --基本单位不合格数量
declare @FAuxConPassQty float --让步接收数量
declare @FConPassQty float --基本单位让步接收数量
declare @FID_Src bigint --源单ID
declare @FEntryID_SRC bigint --源单FEntryID select @FID=FID,@FMultiCheckStatus=FMultiCheckStatus
from inserted --审核时
if update(FMultiCheckStatus) and @FMultiCheckStatus=16
begin
declare mycursor cursor for
select FAuxPassQty,FPassQty,FAuxUnPassQty,FUnPassQty,FAuxConcessQty,FConcessQty,FID_Src,FEntryID_Src
from bobang_bos_checkentry where FID=@FID
open mycursor
fetch next from mycursor
into @FAuxQtyPass,@FQtyPass,@FAuxNotPassQty,@FNotPassQty,@FAuxConPassQty,@FConPassQty,@FID_Src,@FEntryID_SRC
while (@@fetch_status=0)
begin
update t1
set t1.FAuxQtyPass=t1.FAuxQtyPass+isnull(@FAuxQtyPass,0),
t1.FQtyPass=t1.FQtyPass+isnull(@FQtyPass,0),
t1.FAuxNotPassQty=t1.FAuxNotPassQty+isnull(@FAuxNotPassQty,0),
t1.FNotPassQty=t1.FNotPassQty+isnull(@FNotPassQty,0),
t1.FAuxConPassQty=t1.FAuxConPassQty+isnull(@FAuxConPassQty,0),
t1.FConPassQty=t1.FConPassQty+isnull(@FConPassQty,0)
from POInStockEntry t1
left join POInStock t2 on t1.FInterID=t2.FInterID
where t1.FInterID=@FID_Src and t1.FEntryID=@FEntryID_SRC
and t2.FTranType=72
fetch next from mycursor
into @FAuxQtyPass,@FQtyPass,@FAuxNotPassQty,@FNotPassQty,@FAuxConPassQty,@FConPassQty,@FID_Src,@FEntryID_SRC
end
close mycursor
DEALLOCATE mycursor
end --驳回前检查
declare @isTuiLiao int
declare @isRuKu int
if update(FMultiCheckStatus) and @FMultiCheckStatus=4
begin
declare mycursor cursor for
select FAuxPassQty,FPassQty,FAuxUnPassQty,FUnPassQty,FAuxConcessQty,FConcessQty,FID_Src,FEntryID_Src
from bobang_bos_checkentry where FID=@FID
open mycursor
fetch next from mycursor
into @FAuxQtyPass,@FQtyPass,@FAuxNotPassQty,@FNotPassQty,@FAuxConPassQty,@FConPassQty,@FID_Src,@FEntryID_SRC
while (@@fetch_status=0)
begin
select @isTuiLiao=COUNT(*) from POInStockEntry
where FSourceTrantype=72 and FSourceInterId=@FID_Src and FSourceEntryID=@FEntryID_SRC
if @isTuiLiao>0
begin
raiserror ('已下推退料通知单,不能反审核!',16,1)
rollback tran
end select @isRuKu=COUNT(*) from ICStockBillEntry
where FSourceTrantype=72 and FSourceInterId=@FID_Src and FSourceEntryID=@FEntryID_SRC
if @isTuiLiao>0
begin
raiserror ('已下推外购入库单,不能反审核!',16,1)
rollback tran
end fetch next from mycursor
into @FAuxQtyPass,@FQtyPass,@FAuxNotPassQty,@FNotPassQty,@FAuxConPassQty,@FConPassQty,@FID_Src,@FEntryID_SRC
end
close mycursor
DEALLOCATE mycursor
end --驳回初始时
if update(FMultiCheckStatus) and @FMultiCheckStatus=2
begin
declare mycursor cursor for
select FAuxPassQty,FPassQty,FAuxUnPassQty,FUnPassQty,FAuxConcessQty,FConcessQty,FID_Src,FEntryID_Src
from bobang_bos_checkentry where FID=@FID
open mycursor
fetch next from mycursor
into @FAuxQtyPass,@FQtyPass,@FAuxNotPassQty,@FNotPassQty,@FAuxConPassQty,@FConPassQty,@FID_Src,@FEntryID_SRC
while (@@fetch_status=0)
begin
update t1
set t1.FAuxQtyPass=t1.FAuxQtyPass-isnull(@FAuxQtyPass,0),
t1.FQtyPass=t1.FQtyPass-isnull(@FQtyPass,0),
t1.FAuxNotPassQty=t1.FAuxNotPassQty-isnull(@FAuxNotPassQty,0),
t1.FNotPassQty=t1.FNotPassQty-isnull(@FNotPassQty,0),
t1.FAuxConPassQty=t1.FAuxConPassQty-isnull(@FAuxConPassQty,0),
t1.FConPassQty=t1.FConPassQty-isnull(@FConPassQty,0)
from POInStockEntry t1
left join POInStock t2 on t1.FInterID=t2.FInterID
where t1.FInterID=@FID_Src and t1.FEntryID=@FEntryID_SRC
and t2.FTranType=72
fetch next from mycursor
into @FAuxQtyPass,@FQtyPass,@FAuxNotPassQty,@FNotPassQty,@FAuxConPassQty,@FConPassQty,@FID_Src,@FEntryID_SRC
end
close mycursor
DEALLOCATE mycursor
end

七、K3 WISE 开发插件《Update字段级更新触发器 - BOS单审核后反写源单》的更多相关文章

  1. 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》

    开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 =============================================== 目录 一 ...

  2. K3 WISE 开发插件《K3 WISE常用数据表整理》

    在后台数据库ICClassType表中,字段FID<0的是老单,FID>0的是新单. ----------------系统设置------------------------ FStatu ...

  3. 一、K3 WISE 开发插件《K3 WISE常用数据表整理》

    在后台数据库ICClassType表中,字段FID<0的是老单,FID>0的是新单. ----------------系统设置------------------------FStatus ...

  4. 六、K3 WISE 开发插件《直接SQL报表开发新手指导 - BOM成本报表》

    ======================== 目录: 1.直接SQL报表 ======================== 1.直接SQL报表 以BOM成本报表为例,在销售模块部署,需要购买[金蝶 ...

  5. 十、K3 WISE 开发插件《SQL Profiler跟踪单据操作时产生的SQL语句》

    =================================== 目录: 1.查询帐套的数据库DBID 2.配置需要跟踪数据库的DBID 3.配置跟踪参数 4.跟踪进行 5.分析跟踪语句 === ...

  6. 三、K3 WISE 开发插件《K3 WISE开发手册》

    1.VB插件工程的命名.命名空间和生成的DLL命名要一致,否则导致注册不成功! 2.主控台的查询分析工具,添加sql直接报表,代码用到临时表,提示“在对应所需名称或序数的集合中未找到项目” 解决:在代 ...

  7. 二、K3 WISE 开发插件《 工业单据老单客户端插件事件、属性、方法》

    ===================== 目录: 1.插件事件说明如下 2.插件属性说明如下 3.插件方法说明如下 ===================== 1.插件事件说明如下:  序号 事   ...

  8. 十二、K3 WISE 开发插件《工业单据老单与自己添加的窗体 - 互相传值传参》

    ===================================== 目录: 1.演示效果--[销售订单]传值给[自定义窗体] 2.演示效果--[自定义窗体]传值给[销售订单] 3.附源码 4. ...

  9. 十一、K3 WISE 开发插件《VB插件开发如何代码调试 - 步骤讲解》

    =================================== 目录: 1.配置代码调试启动程序kdmain.exe 2.设置断点 3.触发调试 4.变量跟踪 ================ ...

随机推荐

  1. 使用Git之后出现android library引用失败

    今天在做android项目的使用,因为使用了git做代码托管,我的工作空间是在F盘,而git仓库是在E盘,现在E盘的项目要用到F盘上的的android library项目.但是无论我怎么引用都报错误. ...

  2. 系统中hosts文件有哪些作用

    hosts文件位于系统盘C:\Windows\System32\drivers\etc中,hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库 ...

  3. C# winform右击导入手机号码

    private void 导入手机号ToolStripMenuItem_Click(object sender, EventArgs e) { using (OpenFileDialog Openfi ...

  4. Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(转)

    Dubbo与Zookeeper.Spring整合使用 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spri ...

  5. 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 

    8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 什么是shell? shell是一个命令解释器,提供用户和及其之间的交互 致辞特定语法,比如逻 ...

  6. pi4j,Netbeans中togglebutton跟Jbutton的区别

    一组togglebutton中会始终有一个是按下去的状态 一组commandbutton就全部都始终都是弹起的状态

  7. Thinkphp5 Route用法

    域名路由:domain 1.application/router.php 文件位置,吧一下代码放进去就可以了 use think\Route; Route::domain('app.tp5a.com' ...

  8. 【主成份分析】PCA推导

    ### 主成份分析(Pricipal components analysis PCA) 假设空间$R^{n}$中有m个点{$x^{1},......,x^{n}$},希望压缩,对每个$x^{i}$都有 ...

  9. nvm安装node和npm,个人踩坑记录

    我采用nvm-setup安装windows版本的nvm nvm安装node出现的问题: 1.node成功了,npm没成功 解决:在nvm 安装了node之后,输入npm找不到该命令,当时安装报错如下: ...

  10. 安全检测:2013 Top 10 List

    转自:https://www.owasp.org/index.php/Top_10_2013-Top_10   Risk 2013 Table of Contents 2013 Top 10 List ...