如何访问自定义字段,该字段在构造功能包-Acumatica中定义

问题描述 投票:0回答:1

通过阅读我的问题,您可能会认为这很容易,但是我要求所有人尝试访问构造功能包中定义的自定义字段。要求是我想访问“项目”屏幕的“任务”选项卡中的“类型”字段,详细信息

enter image description here

UsrType是在Construction features包中定义的自定义字段。在该程序包中,文件已转换为dll。我尝试像通常在定制中那样访问该字段。看照片enter image description here

但是我收到错误消息“找不到类型或命名空间“ PMTaskExt””]

甚至我也尝试过此

enter image description here

我收到此错误“ PMTask中不存在UsrType”

APTran中的UsrSubcontractNbr字段也存在相同的问题。不仅这些字段,还有许多此类字段可供访问。我们如何访问这些字段?

我要求acumatica开发人员或acumatica爱好者向我提出解决方案。

acumatica
1个回答
0
投票

[通过查看PX.Objects.CN.dll,它将在PX.Objects.CN.ProjectAccounting.PM.CacheExtensions命名空间中显示为PmTaskExt

从dll反编译:

using PX.Data;
using PX.Data.BQL;
using PX.Objects.CN.ProjectAccounting.PM.Descriptor;
using PX.Objects.CS;
using PX.Objects.PM;

namespace PX.Objects.CN.ProjectAccounting.PM.CacheExtensions
{
  public sealed class PmTaskExt : PXCacheExtension<PMTask>
  {
    [PXDBString(30)]
    [PXDefault]
    [PXUIField(DisplayName = "Type", Required = true)]
    [ProjectTaskType.List]
    public string UsrType { get; set; }

    public static bool IsActive()
    {
      return PXAccess.FeatureInstalled<FeaturesSet.construction>();
    }

    public abstract class usrType : BqlType<IBqlString, string>.Field<PmTaskExt.usrType>
    {
    }
  }
}

类似这样的方法应该起作用:

var cnExt = PXCache<PX.Objects.PM.PMTask>.GetExtension<PX.Objects.CN.ProjectAccounting.PM.CacheExtensions.PmTaskExt>((PX.Objects.PM.PMTask)e.Row);
© www.soinside.com 2019 - 2024. All rights reserved.