我需要在任务列表屏幕 EP404000 上重命名名为“日期”的列。
我已经查看了似乎可以做到这一点的先前问题的以下答案:
但是,当我单击自定义属性时,我收到以下错误消息:
'Underlieng 字段是代理项,不支持此字段的覆盖属性'
我需要在任务列表屏幕 EP404000 上重命名名为“日期”的列。
我已经查看了似乎可以做到这一点的先前问题的以下答案:
但是,当我单击自定义属性时,我收到以下错误消息:
'Underlieng 字段是代理项,不支持此字段的覆盖属性'
您可以进行编码以全局重命名列,但是有一个不涉及任何编程的替代解决方案 - 您可以使用 Acumatica 中的本地化功能来更改整个应用程序中的标签、标题和消息。它旨在允许您将应用程序翻译成另一种语言,但没有什么能阻止您修改英文字符串。
我建议您查看帮助文件中的“翻译过程”文章,并查看系统语言环境 (SM.20.05.50) 和翻译词典 (SM.20.05.40) 屏幕。
我建议您在图形扩展中使用 _CacheAttached。CacheAttached 将允许您将日期标题修改为其他标题。在我的示例标题中,“日期”更改为“日期 1”:
public class EPTaskEnqExt:PXGraphExtension<EPTaskEnq>
{
[PXFormula(typeof (TimeZoneNow))]
[PXUIField(DisplayName = "Start Date")]
[EPStartDate(DisplayName = "Start Date",
DisplayNameDate = "Date1",
DisplayNameTime = "Start Time")]
public virtual void EPActivity_StartDate_CacheAttached
{
}
}
在这种情况下,我通常会发现在一个屏幕中重命名列的请求开始时会变成“太好了,我们可以在任何地方重命名它吗”。
在这种情况下,我通常会创建一个 DAC 扩展来全局覆盖它。
为了扩展上面的答案,等效的 DAC 扩展看起来像这样:
using PX.Data;
using PX.Objects.CR;
using PX.Objects.CS;
using PX.Objects.EP;
using System;
namespace MyCustomization.DAC
{
public class EPActivityExtension : PXCacheExtension<EPActivity>
{
[EPStartDate(DisplayName = "Start Date", DisplayNameDate = "Date1", DisplayNameTime = "Start Time")]
[PXFormula(typeof(TimeZoneNow))]
[PXUIField(DisplayName = "Date1")]
public virtual DateTime? StartDate { get; set; }
}
}