七、K3 WISE 开发插件《Update字段级更新触发器 - BOS单审核后反写源单》
审核成功触发,是一个比较典型的场景。需要用到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单审核后反写源单》的更多相关文章
- 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》
开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 =============================================== 目录 一 ...
- K3 WISE 开发插件《K3 WISE常用数据表整理》
在后台数据库ICClassType表中,字段FID<0的是老单,FID>0的是新单. ----------------系统设置------------------------ FStatu ...
- 一、K3 WISE 开发插件《K3 WISE常用数据表整理》
在后台数据库ICClassType表中,字段FID<0的是老单,FID>0的是新单. ----------------系统设置------------------------FStatus ...
- 六、K3 WISE 开发插件《直接SQL报表开发新手指导 - BOM成本报表》
======================== 目录: 1.直接SQL报表 ======================== 1.直接SQL报表 以BOM成本报表为例,在销售模块部署,需要购买[金蝶 ...
- 十、K3 WISE 开发插件《SQL Profiler跟踪单据操作时产生的SQL语句》
=================================== 目录: 1.查询帐套的数据库DBID 2.配置需要跟踪数据库的DBID 3.配置跟踪参数 4.跟踪进行 5.分析跟踪语句 === ...
- 三、K3 WISE 开发插件《K3 WISE开发手册》
1.VB插件工程的命名.命名空间和生成的DLL命名要一致,否则导致注册不成功! 2.主控台的查询分析工具,添加sql直接报表,代码用到临时表,提示“在对应所需名称或序数的集合中未找到项目” 解决:在代 ...
- 二、K3 WISE 开发插件《 工业单据老单客户端插件事件、属性、方法》
===================== 目录: 1.插件事件说明如下 2.插件属性说明如下 3.插件方法说明如下 ===================== 1.插件事件说明如下: 序号 事 ...
- 十二、K3 WISE 开发插件《工业单据老单与自己添加的窗体 - 互相传值传参》
===================================== 目录: 1.演示效果--[销售订单]传值给[自定义窗体] 2.演示效果--[自定义窗体]传值给[销售订单] 3.附源码 4. ...
- 十一、K3 WISE 开发插件《VB插件开发如何代码调试 - 步骤讲解》
=================================== 目录: 1.配置代码调试启动程序kdmain.exe 2.设置断点 3.触发调试 4.变量跟踪 ================ ...
随机推荐
- 使用Git之后出现android library引用失败
今天在做android项目的使用,因为使用了git做代码托管,我的工作空间是在F盘,而git仓库是在E盘,现在E盘的项目要用到F盘上的的android library项目.但是无论我怎么引用都报错误. ...
- 系统中hosts文件有哪些作用
hosts文件位于系统盘C:\Windows\System32\drivers\etc中,hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库 ...
- C# winform右击导入手机号码
private void 导入手机号ToolStripMenuItem_Click(object sender, EventArgs e) { using (OpenFileDialog Openfi ...
- Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(转)
Dubbo与Zookeeper.Spring整合使用 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spri ...
- 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向
8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 什么是shell? shell是一个命令解释器,提供用户和及其之间的交互 致辞特定语法,比如逻 ...
- pi4j,Netbeans中togglebutton跟Jbutton的区别
一组togglebutton中会始终有一个是按下去的状态 一组commandbutton就全部都始终都是弹起的状态
- Thinkphp5 Route用法
域名路由:domain 1.application/router.php 文件位置,吧一下代码放进去就可以了 use think\Route; Route::domain('app.tp5a.com' ...
- 【主成份分析】PCA推导
### 主成份分析(Pricipal components analysis PCA) 假设空间$R^{n}$中有m个点{$x^{1},......,x^{n}$},希望压缩,对每个$x^{i}$都有 ...
- nvm安装node和npm,个人踩坑记录
我采用nvm-setup安装windows版本的nvm nvm安装node出现的问题: 1.node成功了,npm没成功 解决:在nvm 安装了node之后,输入npm找不到该命令,当时安装报错如下: ...
- 安全检测:2013 Top 10 List
转自:https://www.owasp.org/index.php/Top_10_2013-Top_10 Risk 2013 Table of Contents 2013 Top 10 List ...