销售发货单增加审核日期
本帖最后由 xrdg123 于 2009-2-18 23:00 编辑具体思路:
取表头的日期自定义项,
改名为审核日期
用触发器来实现
当单据审核时,审核日期更新为软件的登录日期(或电脑右下角的日期)
当单据弃审时,审核日期更新为空
求可用的脚本,
备注:精算版标准版 暂时没有 我半你看看 以下这个是U6更新审核日期,希望对你有帮助吧!
CREATE TRIGGER [自动更新发货单及委托代销发货单的备注和审核日期ins] ON dbo.DispatchList
FOR insert,update
AS
DECLARE @cdefine14 varchar(120)
DECLARE @cmemo varchar(120)
DECLARE @dlid varchar(100)
DECLARE @审核标志 varchar(120)
DECLARE @自定义4 datetime
set @dlid=(select dlid from Inserted)
set @cdefine14=(select cdefine14 from Inserted where dlid=@dlid)
set @cmemo=(select cmemo from Inserted where dlid=@dlid)
SET @审核标志=(select cverifier from DispatchList where DispatchList.dlid=@DLid)
IF (@审核标志 is not null)
BEGIN
set @自定义4=convert(varchar(10),getdate(),20)
UPDATE DispatchList SET DispatchList.cDefine4=@自定义4 where DispatchList.dlid=@DLid
end
IF (@审核标志 isnull)
BEGIN
UPDATE DispatchList SET DispatchList.cDefine4= null where DispatchList.dlid=@DLid
end
BEGIN
UPDATE dispatchlist set cmemo=@cdefine14where dlid=@dlid
END CREATE TRIGGER [自动更新发货单及委托代销发货单的备注和审核日期ins] ON dbo.DispatchList
FOR insert,update
AS
DECLARE @cdefine14 varchar(120)
DECLARE @cmemo varchar(120)
DECLARE @dlid varchar(100)
DECLARE @审核标志 varchar(120)
DECLARE @自定义4 datetime
set @dlid=(select dlid from Inserted)
set @cdefine14=(select cdefine14 from Inserted where dlid=@dlid)
set @cmemo=(select cmemo from Inserted where dlid=@dlid)
SET @审核标志=(select cverifier from DispatchList where DispatchList.dlid=@DLid)
IF (@审核标志 is not null)
BEGIN
set @自定义4=convert(varchar(10),getdate(),20)
UPDATE DispatchList SET DispatchList.cDefine4=@自定义4 where DispatchList.dlid=@DLid
end
IF (@审核标志 isnull)
BEGIN
UPDATE DispatchList SET DispatchList.cDefine4= null where DispatchList.dlid=@DLid
end
BEGIN
UPDATE dispatchlist set cmemo=@cdefine14where dlid=@dlid
END 学习下。。。 谢谢 :handshake:victory: 恩,人家连代码都贴出来了
只要搞清楚字段和触发条件,这个触发器就就改出来了
create 触发器 for update
if(审核操作),update
if(弃审擦做),update 牛!!顶一下 本帖最后由 naojin 于 2009-11-7 13:32 编辑
/*
当单据审核时,审核日期更新为软件的登录日期
当单据弃审时,审核日期更新为空
*/
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'DoVerifyDate' AND type = 'TR')
DROP TRIGGER DoVerifyDate
GO
CREATE TRIGGER DoVerifyDate ON DispatchList
FOR update/*仅仅是在更新时触发,因为审核或弃审只是修改字段标识*/
AS
--审核人
declare @cVerifier varchar(20)
--如果是更新到审核人就表示是做审核或弃审操作
if update(cVerifier) begin
select @cVerifier=cVerifier from Inserted
if @cVerifier is not null
UPDATEDispatchList SET DispatchList.cDefine4= GETDATE()
FROMInserted,DispatchList
WHERE Inserted.dlid=DispatchList.dlid
else
UPDATEDispatchList SET DispatchList.cDefine4= null
FROMInserted,DispatchList
WHEREInserted.dlid=DispatchList.dlid
end Deleted =旧的一条记录
Inserted=新的一条记录
一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后往DispatchList里写入新纪录。 学习中~~~~~~~~~~ 版主的语句写的严谨,学习 只得学习下~ 现在看不懂,先收下了 好多高手,来学习一下。
页:
[1]
2