二开资产卡片使用分配页签,去除唯一性校验,将自定义字段携带到折旧分配页签指南原创
金蝶云社区-H4
H4
4人赞赏了该文章 405次浏览 未经作者许可,禁止转载编辑于2019年05月22日 10:43:53

背景:最近两次客户支持中,发现存在一种特殊客户需求,卡片使用分配页签,去除标准产品的唯一性校验,只有自定义字段不同,希望能自动携带到折旧调整单使用分配页签。


测试数据和结果如下:

image.png

image.png


通用二开方案:(记得一定要在测试环境测试通过后,才可以在正式环境做相同配置,正式环境配置前记得备份表(T_FA_Allocation))

  1.扩展单据-资产卡片,去除资产编码+使用部门+使用人+费用项目的唯一性校验

image.png

2.在资产卡片使用分配页签,添加一个基础资料字段,另外再添加自定字段(一个或多个均可),本文以添加一个辅助基础资料作为例子

image.png

3.修改并隐藏原来的使用人字段

image.png

4.配置测试用的辅助基础资料字段(基础资料,文本等,都可以)

image.png

5.扩展折旧调整单同样添加一个基础资料字段,并添加相同的扩展字段

image.png

6.隐藏原来的使用人字段,配置和卡片稍有区别

image.png

7.扩展字段相同配置即可。

8.最重要的一步,也是最后一步,执行脚本,为卡片使用分配添加自增列,配置完成后。

sql环境:执行以下脚本:


UPDATE T_FA_ALLOCATION SET FUSERID1=FUSERID WHERE FUSERID>0;
ALTER TABLE T_FA_ALLOCATION DROP DF__T_FA_ALLO__FUSER__751B966C
ALTER TABLE T_FA_ALLOCATION DROP COLUMN FUSERID
ALTER TABLE T_FA_ALLOCATION ADD FUSERID INT IDENTITY(1,1)


oracle环境:执行以下脚本:

UPDATE T_FA_ALLOCATION SET FUSERID1=FUSERID WHERE FUSERID>0;
CREATE SEQUENCE Z_FA_USERID
MINVALUE 1 
START WITH 1
INCREMENT BY 1
NOCACHE;

CREATE OR REPLACE TRIGGER TRI_ALLOCATION_USERID
  BEFORE INSERT ON T_FA_ALLOCATION   
  FOR EACH ROW
DECLARE
  NEXTID NUMBER;
BEGIN
  IF :NEW.FUSERID IS NULL OR :NEW.FUSERID=0 THEN 
    SELECT Z_FA_USERID.NEXTVAL 
    INTO NEXTID
    FROM SYS.DUAL;
    :NEW.FUSERID:=NEXTID;
  END IF;
END TRI_ALLOCATION_USERID;

UPDATE T_FA_ALLOCATION SET FUSERID=-FID WHERE FUSERID=0;


赞 4