2017-12-20 28 views
0

Acumaticaのグリッドに最後に表示されたレコードを取得するには、多かれ少なかれ雄弁な方法がありますか?たとえば、並べ替えや並べ替えを行っても、グリッドのボタンを押して最後のレコードを取得する方法があるとしましょう。基本的に、私はそのレコードを新しいものとしてコピーしたいと思います。Acumatica - 最後に表示されたレコードを取得します

答えて

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 
} 
+0

ます:

あなたはソートのクライアントに応じて、最後のレコードが必要な場合は、データビューのデリゲートを実装する必要があり、それはこのようになりますか?私は、OPは最後のレコードがソートとページングを考慮したかったと思った。 View delegateのようなもの:Select(PXView.Currents、PXView.Parameters、 PXView.Searches、PXView.SortColumns、PXView.Descendings、 PXView.Filters、ref startrow、PXView.MaximumRows、ref totalrow) –

+0

そうでなければ、YzLines.Select ().LastOrDefault()がそれを行います。 –

+0

Ilya、投稿した例はうまくいかないでしょう。列を並べ替えたり移動したりする場合は考慮されません。 @HB_ACUMATICAにはPXViewの例がありますか?あなたはこのシナリオのためにそれを持っていますか? –

関連する問題