风帆刘工 发表于 2013-8-7 11:20:41

新增触发器,总是按照系统提示错误,没有按照自己新增的提示?

系统版本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


出现问题是,系统能够根据不同客户带出的自定义项进行比较,并决定是否保存,但是总是系统提示的错误“本单据已被他人修改或修改不成功或网络冲突”,而不是自己设置的“开票类型不相符,不能保存'”,请教大家。


绿色毛毛虫 发表于 2013-8-13 16:37:12

这个应该没有办法,软件里面捕捉错误的时候统一显示为““本单据已被他人修改或修改不成功或网络冲突”

dongzuorun 发表于 2013-8-14 14:29:16

这个问题我也遇到过,给存货档案加触发器时,也是不按我的提示来,这东西用友写死了,没办法,但存货档案修改时就按我的提示显示了

mfkipso 发表于 2013-8-29 09:09:55

学习了~~~~~~~~~~

sh_lwx 发表于 2013-9-2 08:23:06

恩,用友有些东西写太死,不灵活 。

hangbing5530 发表于 2013-10-9 10:30:29

两个条件分两个触发器试下

风帆刘工 发表于 2013-10-9 14:03:03

hangbing5530 发表于 2013-10-9 10:30
两个条件分两个触发器试下

思路挺好,回去试下

htdqjzz 发表于 2014-1-3 21:20:03

路过,学习了各种大神啊

w02108 发表于 2014-1-14 15:38:28

我是也是遇到这种情况。好像在销售管理中都不行。有些模块又可以。
页: [1]
查看完整版本: 新增触发器,总是按照系统提示错误,没有按照自己新增的提示?