xrdg123 发表于 2009-2-18 22:59:13

销售发货单增加审核日期

本帖最后由 xrdg123 于 2009-2-18 23:00 编辑

具体思路:
取表头的日期自定义项,
改名为审核日期
用触发器来实现
当单据审核时,审核日期更新为软件的登录日期(或电脑右下角的日期)
当单据弃审时,审核日期更新为空

求可用的脚本,
备注:精算版标准版

liuyan5688 发表于 2009-2-19 10:05:10

暂时没有 我半你看看

lyj123 发表于 2009-2-22 22:24:01

以下这个是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

zhangshuicai 发表于 2009-2-23 10:07:52

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

dnvgogfcu 发表于 2009-9-28 23:11:15

学习下。。。 谢谢

qqww1111 发表于 2009-11-1 11:24:45

:handshake:victory:

shinpaul 发表于 2009-11-3 16:18:10

恩,人家连代码都贴出来了
只要搞清楚字段和触发条件,这个触发器就就改出来了

create 触发器 for update
   if(审核操作),update
   if(弃审擦做),update

jzzhangshuai 发表于 2009-11-3 16:28:43

牛!!顶一下

naojin 发表于 2009-11-7 13:17:30

本帖最后由 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

naojin 发表于 2009-11-7 13:32:48

Deleted =旧的一条记录
Inserted=新的一条记录
一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后往DispatchList里写入新纪录。

cdwlove 发表于 2009-11-17 08:30:13

学习中~~~~~~~~~~

风帆刘工 发表于 2010-1-25 10:20:42

版主的语句写的严谨,学习

linshiyang 发表于 2010-2-3 09:28:16

只得学习下~

happy2540 发表于 2010-2-3 14:03:21

现在看不懂,先收下了

shizhiliuyu 发表于 2010-2-3 16:18:01

好多高手,来学习一下。
页: [1] 2
查看完整版本: 销售发货单增加审核日期