我正在尝试将选择器添加到DAC扩展(PMChangeOrder)上的字段,我需要从基本记录中获取一个值,以将其放在PXSelector搜索中的where语句中。选择器将使用户能够基于当前项目ID来输入新值或从先前输入的值中进行选择。我是否使用Current <>?是否覆盖附加的缓存?我似乎无法通过projectID的当前值来选择选择器。
public abstract class usrPCONo : PX.Data.BQL.BqlInt.Field<usrPCONo> { }
[PXDBInt()]
[PXUIField(DisplayName = "PCO No.", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(typeof(Search4<usrPCONo, Where<PMChangeOrder.projectID, Equal<Current<PMChangeOrder.projectID>>>,
Aggregate<GroupBy<usrPCONo>>>), typeof(usrPCONo), typeof(PMChangeOrder.description), ValidateValue = false )]
public virtual int? UsrPCONo
{
get;
set;
}
谢谢
您在问题中提供的代码似乎正常工作。确保在aspx文件中将AutoRefresh设置为true。这样可以使您在打开选择器弹出窗口时自动刷新选择器中的记录,以反映用户选择的当前ProjectID。否则,如果用户打开选择器弹出窗口,更改ProjectID,然后重新打开选择器弹出窗口,则除非用户在弹出窗口中手动按下刷新按钮,否则记录仍将反映旧值。我的猜测是,这就是您所遇到的。
<px:PXSelector runat="server" ID="edUsrPCONo" DataField="UsrPCONo" AutoRefresh="True" CommitChanges="True" />