如何过滤 ProcessOrders 流程屏幕中的记录
How can I filter the records in the ProcessOrders process screen
我需要向“流程订单”屏幕网格添加一个过滤器,这样只有未付余额为 0 的订单才会显示,这取决于被选中的名为 'Must Have Payment' 的过滤器区域的附加复选框。我以为我可以通过在订单视图中添加一个 where 子句来实现它,但这没有用。
[PXFilterable]
public PXFilteredProcessing<SOOrder, SOOrderFilter,
Where<SOOrder.unpaidBalance, NotEqual<Zero>,
Or<Current<SOOrderFilterExt.mustHavePayment>, Equal<False>>>> Orders;
我确定我做错了,因为所有订单都显示了,而不仅仅是我添加此更改之前的 'Open' 个订单。我想覆盖视图委托并修改它以将我的过滤器/条件添加到返回的行,但我无法覆盖此方法 - 至少我可以告诉。
将此自定义过滤器限制放入该网格的 select 的最佳方法是什么?
非常感谢...
在这种特定情况下,覆盖数据视图委托可能不是最好的主意。
我注意到 AddCommonFilters() 方法不是私有的(在数据视图委托中使用),所以我认为您可以尝试覆盖此方法,调用 Base 方法,然后注入您的自定义代码以将您的查询过滤器包含在其中for each 上使用的主要查询。
也许这是您可以用来实现过滤的东西,请参见下面的代码片段:
public class SOCreateShipment_Extension : PXGraphExtension<SOCreateShipment>
{
#region Event Handlers
public delegate void AddCommonFiltersDelegate(SOOrderFilter filter,
PXSelectBase<SOOrder> cmd);
[PXOverride]
public void AddCommonFilters(SOOrderFilter filter, PXSelectBase<SOOrder> cmd, AddCommonFiltersDelegate baseMethod)
{
baseMethod(filter,cmd);
//Add your custom code here
if (Yourcondition)
{
cmd.WhereAnd<Where<YOURFILTERINGCondition>>>>();
}
}
........................
如果需要,还请查看 AlterFilters() 方法。
我需要向“流程订单”屏幕网格添加一个过滤器,这样只有未付余额为 0 的订单才会显示,这取决于被选中的名为 'Must Have Payment' 的过滤器区域的附加复选框。我以为我可以通过在订单视图中添加一个 where 子句来实现它,但这没有用。
[PXFilterable]
public PXFilteredProcessing<SOOrder, SOOrderFilter,
Where<SOOrder.unpaidBalance, NotEqual<Zero>,
Or<Current<SOOrderFilterExt.mustHavePayment>, Equal<False>>>> Orders;
我确定我做错了,因为所有订单都显示了,而不仅仅是我添加此更改之前的 'Open' 个订单。我想覆盖视图委托并修改它以将我的过滤器/条件添加到返回的行,但我无法覆盖此方法 - 至少我可以告诉。
将此自定义过滤器限制放入该网格的 select 的最佳方法是什么?
非常感谢...
在这种特定情况下,覆盖数据视图委托可能不是最好的主意。
我注意到 AddCommonFilters() 方法不是私有的(在数据视图委托中使用),所以我认为您可以尝试覆盖此方法,调用 Base 方法,然后注入您的自定义代码以将您的查询过滤器包含在其中for each 上使用的主要查询。
也许这是您可以用来实现过滤的东西,请参见下面的代码片段:
public class SOCreateShipment_Extension : PXGraphExtension<SOCreateShipment>
{
#region Event Handlers
public delegate void AddCommonFiltersDelegate(SOOrderFilter filter,
PXSelectBase<SOOrder> cmd);
[PXOverride]
public void AddCommonFilters(SOOrderFilter filter, PXSelectBase<SOOrder> cmd, AddCommonFiltersDelegate baseMethod)
{
baseMethod(filter,cmd);
//Add your custom code here
if (Yourcondition)
{
cmd.WhereAnd<Where<YOURFILTERINGCondition>>>>();
}
}
........................
如果需要,还请查看 AlterFilters() 方法。