1

我需要在任务列表屏幕 EP404000 上重命名名为“日期”的列。

我已经查看了似乎可以做到这一点的先前问题的以下答案:

如何重命名 Acumatica 客户屏幕上的列名称?

但是,当我单击自定义属性时,我收到以下错误消息:

'Underlieng 字段是代理项,不支持此字段的覆盖属性'

4

3 回答 3

3

您可以进行编码以全局重命名列,但是有一个不涉及任何编程的替代解决方案 - 您可以使用 Acumatica 中的本地化功能来更改整个应用程序中的标签、标题和消息。它旨在允许您将应用程序翻译成另一种语言,但没有什么能阻止您修改英文字符串。

我建议您查看帮助文件中的“翻译过程”文章,并查看系统语言环境 (SM.20.05.50) 和翻译词典 (SM.20.05.40) 屏幕。

于 2015-04-16T21:58:38.707 回答
1

我建议您在图形扩展中使用 _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
            {     
            }
 }
于 2015-04-16T09:00:39.537 回答
0

在这种情况下,我通常会发现在一个屏幕中重命名列的请求开始时会变成“太好了,我们可以在任何地方重命名它吗”。

在这种情况下,我通常会创建一个 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; }
    }
}
于 2015-04-16T12:51:03.270 回答