Acumatica - 获取最后显示的记录

时间:2017-12-20 18:07:31

标签: acumatica

是否有一种雄辩的方式,或多或少,在Acumatica的网格中获得最后显示的记录?让我们说即使他们进行了所有排序和重新排列,例如当按下网格上的按钮以获取最后一条记录时,有没有办法?基本上,我想将该记录复制为新记录。

1 个答案:

答案 0 :(得分:3)

为您的按钮创建PXAction。 在PXAction内部迭代数据视图,直到最后一条记录。 例如,如果绑定到网格的数据视图的名称是YzLines,并且网格线(DAC)中的对象类型是Yz,那么它可以是:

Yz lastLine;
foreach (Yz line in YzLines.Select()) 
   lastLine = line;

要访问最后一条记录,您还可以使用.Last()或.LastOrDefault()。

如果你需要根据客户端排序的最后一条记录,你应该实现一个数据视图委托,它看起来像这样:

protected virtual IEnumerable yzLines()
{
    PXSelectBase<Yz> cmd =
        new PXSelectJoinGroupBy<Yz, ...>(this);

    int startRow = PXView.StartRow; //Get starting row of the current page
    int totalRows = 0;

    foreach (PXResult<Yz> res in
                            cmd.View.Select(null, null,
                            PXView.Searches,
                            ARDocumentList.View.GetExternalSorts(),//Get sorting fields
                            ARDocumentList.View.GetExternalDescendings(),//Get sorting direction
                            ARDocumentList.View.GetExternalFilters(),//Get filters
                            ref startRow,
                            PXView.MaximumRows, //Get count of records in the page
                            ref totalRows))
    {
        //processing of records
    }

    PXView.StartRow = 0;//Reset starting row
}