新增触发器,总是按照系统提示错误,没有按照自己新增的提示?
系统版本852,环境SQL2000,帐套999演示帐套。现需求:在开具销售专用发票或者普通发票时,根据与客户档案自定义项(这里设置了自定义项2,档案内容为“增值”和“小额”)比较,如果要开具的是增值发票,这时客户档案带出的也是增值,那么可以保存。否则不能保存。
触发器代码如下:
use ufdata_999_2003
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'tr_salebill_vouchtype' AND type = 'TR')
DROP TRIGGER tr_salebill_vouchtype
GO
create trigger tr_salebill_vouchtype on salebillvouch
for insert,update,delete
as
--功能:开具销售发票时,要验证客户档案中的发票类型和要开具的发票类型是否相符,这样可以防止开票员开票错误
--描述系统发票带出来的发票类型,26代表增值发票,27代表普通发票
declare @vouchtype varchar(20)
--描述客户档案中的自定义项
declare @cusdefine varchar(20)
--先取出客户档案中
select @cusdefine=ccusdefine2 from insertedinner join customer on inserted.ccuscode=customer.ccuscode
--从生成的销售出库单号取得出库单时间,即发货单审核时间
select @vouchtype=cvouchtype from inserted
--如果发票类型和客户档案中的自定义项不相符,这里包含了客户自定义项档案为空的情况
if ((@cusdefine<>'增值')and (@vouchtype=26) )
begin
RAISERROR ('开票类型不相符,不能保存',16,1)
ROLLBACK TRANSACTION
end
if ( (@cusdefine<>'小额') and (@vouchtype=27))--and @cusdefine is not null))
begin
RAISERROR ('开票类型不相符,不能保存',16,1)
ROLLBACK TRANSACTION
end
go
出现问题是,系统能够根据不同客户带出的自定义项进行比较,并决定是否保存,但是总是系统提示的错误“本单据已被他人修改或修改不成功或网络冲突”,而不是自己设置的“开票类型不相符,不能保存'”,请教大家。
这个应该没有办法,软件里面捕捉错误的时候统一显示为““本单据已被他人修改或修改不成功或网络冲突” 这个问题我也遇到过,给存货档案加触发器时,也是不按我的提示来,这东西用友写死了,没办法,但存货档案修改时就按我的提示显示了 学习了~~~~~~~~~~ 恩,用友有些东西写太死,不灵活 。 两个条件分两个触发器试下 hangbing5530 发表于 2013-10-9 10:30
两个条件分两个触发器试下
思路挺好,回去试下 路过,学习了各种大神啊 我是也是遇到这种情况。好像在销售管理中都不行。有些模块又可以。
页:
[1]