前几个月买了一个通用的ERP软件,很多数据自动生成商业智能没有,流程或是不符,报表缺失等.
反映给软件开发商,不是说这个功能不打算改,就是要等下一个版本,或是先报价收费后再定制.到了几乎无法推行下去的地步!买之前没有具体运作起流程很多问题发现不了折.所以准备上ERP时一定要把后期的服务谈清楚,免得买过来用不了.
还好,最好发现SQL2005的触发器能自已不修改主程序而完成大部分功能:
一,重要数据修改自动记录
二,禁止修改与删除
三,定时自动统计更新
四,生成自已想要的表格
五,增加字段保存想要的商业智能
下面是触发器的一个简单例子
USE [XingJianV45]GO/****** 对象: Trigger [dbo].[TRIGGER_JIXIAO] 脚本日期: 02/12/2011 21:00:50 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER TRIGGER [dbo].[TRIGGER_JIXIAO] ON [dbo].[Sale_Order] AFTER UPDATEAS BEGIN declare @xs as nvarchar(50) declare @bcje as money--本次金额(含上次金额,绝对值输入) declare @dzsj as datetime-- 到账时间 declare @yfje as money--应付金额 declare @yfsj as datetime--应付时间 declare @yifuje as money --已付金额,之前到账金额
IF UPDATE(daojinge) BEGIN select @xs=Sale_Order_SerialNO, @yifuje=daojinge, @yfje=sale_order_money, @yfsj=sale_order_signdate from deleted select @dzsj=daotime,@bcje=daojinge from INSERTED--计算绩效工资,拖款费用,提醒催款 if @bcje>=@yfje begin update sale_order set wancheng=1 where Sale_Order_SerialNO=@xs end else begin update sale_order set wancheng=0 where Sale_Order_SerialNO=@xs end--分期付款的要在未到账前计算,或是把到的一部分先记录 if datediff(day,@yfsj,@dzsj)>7 begin update sale_order set weiyuetime=datediff(day,@yfsj,@dzsj), weiyuejing=weiyuejing+ datediff(day,@yfsj,@dzsj)*(@bcje-@yifuje)*0.0004 where Sale_Order_SerialNO=@xs end else begin update sale_order set weiyuetime=0 , weiyuejing=0 where Sale_Order_SerialNO=@xs end--计算提成要根据不同的客户,业务,付款时间
END declare @SH as BIT select @SH=Sale_Order_Review from deleted IF UPDATE(Sale_Order_Review) AND @SH='True' BEGIN
ROLLBACK TRAN END
END