PXProjection Select中的OrderBy不起作用

时间:2018-03-15 14:03:26

标签: acumatica

你们有没有在Acumatica中遇到过这个问题? 在PXProjection属性中将OrderBy添加到Select2无效。 我在Request Profiler中检查了SQL查询,数据按DAC的关键字段排序。

2 个答案:

答案 0 :(得分:0)

尝试将OrderBy添加到使用PXProjection制作的DAC的PXSelect。请注意,默认情况下,记录按DAC键排序。

答案 1 :(得分:0)

几乎在所有情况下,Acumatica都会先按键字段进行排序,因此,如果您希望数据的排序与OrderBy<>中的数据完全相同那么这个标准就不行了。您可以做什么而不是直接在视图委托中覆盖订单,如下所示:

PXView select = new PXView(Base, true, this.myView.View.BqlSelect);
select.OrderByNew<OrderBy<Desc<MyDac.myField1, Desc<MyDac.myField2>>>>();
//<rest logic to select from the view>

这将始终用您的自定义排序顺序替换订单。如果您只想在用户未更改网格中的排序顺序时执行此操作,则可以添加以下条件:

if (PXView.SortColumns.Length == this.myView.Cache.Keys.Length)
{
    // apply custom default sort order
    select.OrderByNew<OrderBy<Desc<MyDac.myField1, Desc<MyDac.myField2>>>>();
}