通过阅读我的问题,您可能会认为这很容易,但是我要求所有人尝试访问构造功能包中定义的自定义字段。要求是我想访问“项目”屏幕的“任务”选项卡中的“类型”字段,详细信息
UsrType是在Construction features包中定义的自定义字段。在该程序包中,文件已转换为dll。我尝试像通常在定制中那样访问该字段。看照片
但是我收到错误消息“找不到类型或命名空间“ PMTaskExt””]
甚至我也尝试过此
我收到此错误“ PMTask中不存在UsrType”
APTran中的UsrSubcontractNbr字段也存在相同的问题。不仅这些字段,还有许多此类字段可供访问。我们如何访问这些字段?
我要求acumatica开发人员或acumatica爱好者向我提出解决方案。
[通过查看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);