从 API 使用时如何启用字段

How to Enable Fields when used from API

如何在 API 中将字段设置为可更新,但在屏幕上为只读?

我有一个在 Graph 扩展中定义了自定义 table 的视图。我正在使用 (ViewName).AllowUpdate = false;在主 DAC 的 RowSelected 事件上。这可以很好地使视图中的所有字段在屏幕上禁用,但是我无法更新 API 中的字段。有什么方法可以检测 API 与屏幕中使用的图表吗?

TIA!

你可以做的是在行选择事件中,而不是影响缓存级别的限制,正如你所说,这也会影响 API,你可以使用 PXUIFieldAttribute 来实现相同的场景而不影响API.

例如:PXUIFieldAttribute.SetReadOnly([ViewName].Cache, null, [Condition or just set as true])

这会将视图中的所有字段设置为只读,而无需为屏幕中当前的所有字段重复该行。

我有类似的要求,只允许通过 API 而不是通过 UI 编辑装运图表中的自定义字段。

您可以使用 Graph.IsContractBasedAPI 方法 returns 如果请求是通过基于合同的 API 为真,如下所示:

PXUIFieldAttribute.SetEnabled<SOShipLineExt.usrBOLQty>(cache, e.Row, Base.IsContractBasedAPI);