IN407010界面自定义usr字段只读,添加数据列无法编辑的技术求助
IN407010界面自定义USR字段只读无法编辑,RowSelected事件设置无效
问题详情
在IN407010界面添加自定义usrConvtonne字段后,该字段始终处于只读状态无法输入。已尝试在TurnoverCalcItem_RowSelected事件中添加代码开启编辑权限,但问题仍未解决:
protected void TurnoverCalcItem_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { var row = (TurnoverCalcItem)e.Row; if (row==null) return; PXUIFieldAttribute.SetEnabled<TurnoverCalcItemExt.usrConvtonne>(cache, row, true); Base.TurnoverCalcItems.AllowUpdate = true; Base.TurnoverCalcItems.Cache.AllowUpdate = true; Base.TurnoverCalcItems.AllowSelect = true; Base.TurnoverCalcItems.Cache.AllowSelect= true; }
界面截图:
解决建议
检查DAC字段定义:确认自定义字段在DAC扩展中未标记
ReadOnly属性,且PXUIField的Enabled设为true:public class TurnoverCalcItemExt : PXCacheExtension<TurnoverCalcItem> { [PXDBDecimal] [PXUIField(DisplayName = "转换为吨", Enabled = true)] public decimal? UsrConvtonne { get; set; } public abstract class usrConvtonne : PX.Data.BQL.BqlDecimal.Field<usrConvtonne> { } }改用SetReadOnly方法:替换
SetEnabled为SetReadOnly明确设置字段可编辑,避免界面其他逻辑干扰:PXUIFieldAttribute.SetReadOnly<TurnoverCalcItemExt.usrConvtonne>(cache, row, false);检查容器权限:确认IN407010页面中
TurnoverCalcItems对应的Grid容器已设置AllowUpdate="True",容器只读会直接限制字段编辑。排查用户权限组:在系统权限设置中,确认当前用户权限组已授予该自定义字段的更新权限。
检查其他事件冲突:排查是否有
RowUpdated、FieldUpdated等其他事件或业务逻辑,在后续流程中重置了字段的只读状态。
内容的提问来源于stack exchange,提问作者Xavier LARTEM
相关产品推荐
相关产品推荐

