ALVのイベントを取得する方法
概要
表示されたALVをダブルクリックした時に別畫面へ遷移する方法を説明しよう。
下記サンプルのように標準トランザクションへ遷移したり、別のALVを表示したりする事が可能である。
サンプルコード
ABAP FORM call_alv.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program = sy-repidi_callback_user_command = 'USER_COMMAND'it_fieldcat = it_fieldcatTABLESt_outtab = it_dataEXCEPTIONSprogram_error = 1OTHERS = 2.ENDFORM.FORM user_command USING ucomm LIKE sy-ucommselfield TYPE slis_selfield.CASE ucomm. * Double ClickWHEN '&IC1'.READ TABLE it_data INTO wa_dataINDEX selfield-tabindex.IF selfield-fieldname = 'BANFN'.SET PARAMETER ID 'BAN' FIELD wa_data-banfn.CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.ELSEIF selfield-fieldname = 'EBELN'.SET PARAMETER ID 'BES' FIELD wa_data-ebeln.CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.ENDIF.ENDIF.ENDCASE.ENDFORM.
説明
汎用モジュール:REUSE_ALV_GRID_DISPLAYを使用する際に、i_callback_programとi_callback_user_commandを設定しよう。
一般的なのALVレポートであればi_callback_programには自身のプログラム名、i_callback_user_commandには実行したいFORM名を指定しよう。
この例では、ALVをダブルクリックした時にFORM:USER_COMMANDが実行される。引き數のucommをチェックし’&IC1′(ダブルクリック)の時だけ
処理が実行されるようにしよう。シングルクリックではFORM:USER_COMMANDが実行されなかったが念の為確認しておく事をお勧めする。
次にselfield-tabindexには選択した行番號が入っているので、その値を使用してALVに渡した內部テーブルから値を取得しよう。
ソートやフィルタされている場合でも、INDEXをチェックするだけで問題はない。
selfield-fieldnameには選択された列名が入ってるので選択列によって処理を変えたい場合はチェックしよう。
轉載于:https://www.cnblogs.com/yjyongil/p/10605237.html
總結
以上是生活随笔為你收集整理的ALVのイベントを取得する方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请问太师椅是只能太师坐的吗?就像太妃糖一
- 下一篇: 前端请求接口出现的跨域问题