【发布时间】:2018-04-04 14:32:20
【问题描述】:
我有一个曾在项目中自定义的 Usr 字段。由于它已被编译成 .dll,所以我没有原始文件来更改此 Usr 字段。当我单击该字段并转到自定义属性时,找不到它,因为它是一个用户字段,而不是在数据访问中。如果在数据访问中找不到此用户字段的下拉列表中的项目,有没有办法可以更改它?我试图通过 PXStringList 更改覆盖屏幕级别,但这没有用。
如果我需要更多详细信息,请告诉我。
【问题讨论】:
我有一个曾在项目中自定义的 Usr 字段。由于它已被编译成 .dll,所以我没有原始文件来更改此 Usr 字段。当我单击该字段并转到自定义属性时,找不到它,因为它是一个用户字段,而不是在数据访问中。如果在数据访问中找不到此用户字段的下拉列表中的项目,有没有办法可以更改它?我试图通过 PXStringList 更改覆盖屏幕级别,但这没有用。
如果我需要更多详细信息,请告诉我。
【问题讨论】:
您可以通过以下方式之一进行操作:
DAC 创建CacheExtension,并使用Attributes 覆盖该属性。Graph 中创建CacheAttached 事件并覆盖Attributes。PXStringListAttribute.SetList<DAC.field>(cache, row, allowedValues, allowedLabels) 方法更改值和标签列表。以下是如何使用CacheAttached事件更改字段属性的示例:
[PXDBString(3, IsFixed = true, IsUnicode = true, InputMask = "")]
[PXStringList(new string[] {"comp1", "comp2", "comp3", "comp4", "comp5", "comp6", "comp7"}, new string[] {"comp1", "comp2", "comp3", "comp4", "comp5", "comp6", "comp7"})]
[PXUIField(DisplayName = "Company")]
protected virtual void ARInvoice_UsrDivision_CacheAttached(PXCache cache){}
【讨论】:
UsrDivision 字段是在ARRegister 的扩展 中定义的,而不是在ARRegister 中定义的尝试编写CacheAttached 事件或使用@ 更改列表987654333@
PXOverride 属性,因为它用于覆盖操作而不是属性或方法。