Acumatica PXUIFieldAttribute SetError给出错误

Acumatica PXUIFieldAttribute SetError给出错误,acumatica,Acumatica,我正在尝试验证输入到我的支持拆分表中的值,为什么我无法获取我的项目扩展名 受保护的无效atcProjectCostCenterTable\u CostCenterSplit\u字段验证(PXCache缓存、PXFieldVerifyingEventArgs e、PXFieldVerificationInvokeBaseHandler) { if(InvokeBaseHandler!=null) InvokeBaseHandler(缓存,e); 变量行=(atcProjectCostCenterT

我正在尝试验证输入到我的
支持拆分
表中的值,为什么我无法获取我的
项目扩展名

受保护的无效atcProjectCostCenterTable\u CostCenterSplit\u字段验证(PXCache缓存、PXFieldVerifyingEventArgs e、PXFieldVerificationInvokeBaseHandler)
{
if(InvokeBaseHandler!=null)
InvokeBaseHandler(缓存,e);
变量行=(atcProjectCostCenterTable)e.row;
如果(row.d>0)
{
十进制?hun=100;
PX.Objects.CT.ContractExt item=row.GetExtension();
如果(CostCenterSplit.Select().Count>=1)
{
如果(item.UsrCostCenterSum.Value!=hun)
{
SetError(缓存,行,“支持百分比必须等于100%”;
//抛出新的PXSetPropertyException(“成本中心百分比必须等于100%”,PXErrorLevel.Warning);
}
}
}
}
尼克,请更换

PX.Objects.CT.ContractExt item = row.GetExtension<PX.Objects.CT.ContractExt>();
PX.Objects.CT.ContractExt item=row.GetExtension();

PX.Objects.CT.ContractExt item=Base.Project.Current.GetExtension();

PX.Objects.CT.ContractExt item=Base.Project.Cache.GetExtension(Base.Project.Current);
当前代码无法工作,因为ContractExt扩展了Contract DAC,而不是atcProjectCostCenterTable。由于PMProject继承自合同,因此为合同DAC定义的DAC扩展也可用于PMProject实例。

Contract con=Base.Project.Current;
  Contract con = Base.Project.Current;
  PX.Objects.CT.ContractExt item = con.GetExtension<PX.Objects.CT.ContractExt>();
PX.Objects.CT.ContractExt item=con.GetExtension();
ContractExt真的是atcProjectCostCenterTable的扩展吗?请向我们提供这些类的定义是Contract的扩展,公共类ContractExt:PXCacheExtension{假设行是atcProjectCostCenterTable类型(当我们查看代码时应该是这样),类似于row.GetExtension()的调用;将显示此错误,因为ContractExt不是ATCProjectCostCenterTable的扩展。请参阅T300 DAC扩展部分(第185页)。最好在代码中包含一些上下文/解释,因为这使答案对OP和未来的读者更有用。
PX.Objects.CT.ContractExt item = Base.Project.Cache.GetExtension<PX.Objects.CT.ContractExt>(Base.Project.Current);
  Contract con = Base.Project.Current;
  PX.Objects.CT.ContractExt item = con.GetExtension<PX.Objects.CT.ContractExt>();