0
Acumaticaのグリッドに最後に表示されたレコードを取得するには、多かれ少なかれ雄弁な方法がありますか?たとえば、並べ替えや並べ替えを行っても、グリッドのボタンを押して最後のレコードを取得する方法があるとしましょう。基本的に、私はそのレコードを新しいものとしてコピーしたいと思います。Acumatica - 最後に表示されたレコードを取得します
Acumaticaのグリッドに最後に表示されたレコードを取得するには、多かれ少なかれ雄弁な方法がありますか?たとえば、並べ替えや並べ替えを行っても、グリッドのボタンを押して最後のレコードを取得する方法があるとしましょう。基本的に、私はそのレコードを新しいものとしてコピーしたいと思います。Acumatica - 最後に表示されたレコードを取得します
ボタンの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
}
ます:
あなたはソートのクライアントに応じて、最後のレコードが必要な場合は、データビューのデリゲートを実装する必要があり、それはこのようになりますか?私は、OPは最後のレコードがソートとページングを考慮したかったと思った。 View delegateのようなもの:Select(PXView.Currents、PXView.Parameters、 PXView.Searches、PXView.SortColumns、PXView.Descendings、 PXView.Filters、ref startrow、PXView.MaximumRows、ref totalrow) –
そうでなければ、YzLines.Select ().LastOrDefault()がそれを行います。 –
Ilya、投稿した例はうまくいかないでしょう。列を並べ替えたり移動したりする場合は考慮されません。 @HB_ACUMATICAにはPXViewの例がありますか?あなたはこのシナリオのためにそれを持っていますか? –