そのALVでフィルタが使用されている場合に表示されるALVデータを簡単に取得する方法はありますか?ABAPのALVからフィルタリングされたデータを取得する
使用されるALVは、CL_GUI_ALV_GRIDのオブジェクトです。ユーザーに表示するときは、デフォルトでフィルタが配置されています。ユーザーには、ALV内のデータを処理するボタンもあります。ユーザーがALVに独自のフィルタを配置した場合でも、表示されるデータでのみプロセスが機能することを確認するにはどうすればよいですか?
例:10行のitabからALVが作成されますが、ALVに渡されるフィルタもあるため、8行しか表示されません。ボタンを押すと、私は現在、ユーザーに現在表示されている8行だけを扱いたいと思う。
私はこの目的のための汎用モジュールを見つけようとしましたが、ALV内の選択された行で動作するFMしか見つかりませんでした。
** EDIT:**さらに、get_filtered_entriesと呼ばれるメソッドがありますが、これは表示されないエントリだけを取得します。これを使用すると、表示されたエントリに翻訳するのにかなりの時間がかかります。 get_filtered_entries
ありがとうございます。
最も効率的なやり方は何でしょうか? itabに表示されていないすべてのエントリをロードし、ソースitabをコピーし、コピーをループして、表示されていないitabにも存在するエントリを削除しますか?私は他の機能に渡すことができる表示されたエントリのテーブルが必要です。 – Erik
@Erik元のテーブルをコピーして変更することは唯一の選択肢のようです。私は私の答えにいくつかのコードを追加しました。私はインデックスのテーブルで削除する別の方法も知らない。 –
@Erik 'APPEND'(' LINES OF ... FROM ... TO ... ')の中に興味深いオプションがいくつかある。私は後でこれをテストするつもりです –