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