值集设置好之后,如果有单据引用了就不允许修改了,测试后台进行修改可行,特此记录
以朗圣应收单头的私有段15发票别为例,一开始设置的ST014为自定义值集值
旧的值集值

新增一个要替换的新的值集(记住值集编码)
例如这里我想改成实体值集,编码为ST019

数据库执行以下语句
n.Code要等于新的值集编码'ST019',old.Code就是要修改的值集编码'ST014'
sql语句中的old.xxx=n.xxx左右两边保持一致,这里只是展示了实体值集可能需要用到的字段复制
如果需要复制别的字段值过来,在查询方案的栏目中找到对应字段,然后复制一个赋值的语句(包括前面的,号),把左右两边的字段名更改为你要复制值得字段名即可
UPDATE old
SET old.ValidateType=n.ValidateType
,old.ValueType=n.ValueType
,old.EntityType=n.EntityType
,old.IDAttribute=n.IDAttribute
,old.CodeAttribute=n.CodeAttribute
,old.NameAttribute=n.NameAttribute
,old.Condition=n.Condition
,old.ConditionDisplayName=n.ConditionDisplayName
,old.OQL=n.OQL
,old.SQL=n.SQL
,old.DependantAttribute=n.DependantAttribute
,old.IsDependant=n.IsDependant
,old.DependantValueSet=n.DependantValueSet
,old.DependantDefaultValue=n.DependantDefaultValue
FROM Base_ValueSetDef AS old
INNER JOIN Base_ValueSetDef AS n ON n.Code = 'ST019' -- 新的值集,覆盖完之后删除
WHERE old.Code = 'ST014'; -- 要覆盖的值集
执行SQL后的ST014

检查引用单据能正确选择与保存
应收单可以正确弹出选择,并且保存成功

删除临时新增的值集
值集'ST019'仅仅是为了能够取值覆盖到'ST014',用完检查引用单据无操作异常即可删除
评论 (0)