我正在尝试将一个Employees选择器添加到日志事务屏幕(GL301000)中,特别是在网格中 . 我使用GLTran DAC作为基础创建了DAC扩展代码 . 这是我的代码:
using PX.Common;
using PX.Data.ReferentialIntegrity.Attributes;
using PX.Data;
using PX.Objects.AP;
using PX.Objects.CM;
using PX.Objects.CR;
using PX.Objects.CS;
using PX.Objects.EP;
using PX.Objects.GL;
using PX.Objects.IN;
using PX.Objects.PM;
using PX.Objects.TX;
using PX.Objects;
using System.Collections.Generic;
using System;
namespace PX.Objects.GL
{
public class GLTranExt : PXCacheExtension<PX.Objects.GL.GLTran>
{
#region Resource
public class emp: PX.Data.Constant<string>
{
public emp() : base("EMPHOUR") { }
}
public abstract class resource: PX.Data.IBqlField
{
}
protected int? _Resource;
[PXDBInt]
[PXDefault()]
[PXUIField(DisplayName="Resource")]
[PXSelector(typeof(Search2<BAccount.bAccountID,
InnerJoin<Vendor,
On<Vendor.bAccountID,
Equal<BAccount.bAccountID>>>,
Where<Vendor.vendorClassID,
Equal<emp>>>),
SubstituteKey = typeof(BAccount.acctName))]
public virtual int? Resource
{
get
{
return this._Resource;
}
set
{
this._Resource = value;
}
}
#endregion
}
}
我尝试将字段添加到网格时收到错误,这是我的错误:
Error: An invalid selector column has been provided.
Parameter name: fieldList
谁能指出我正确的方向?我知道要显示正确的Employee名称,您必须在Vendor表和BAccount表中使用where或join . 然而,当我尝试使用LeftJoin方法时,我收到一条错误,指出无法绑定多部分标识符 .
1 回答
我找到了解决方案 .
我需要向PXDefault添加持久检查,并将CommitChanges属性更改为true .
以下是正确的代码:
还要记住创建一个DB Script以将Resource字段添加到值INT的GLTran表中 .