zoukankan      html  css  js  c++  java
  • ALVのイベントを取得する方法

    概要

    表示されたALVをダブルクリックした時に別画面へ遷移する方法を説明しよう。
    下記サンプルのように標準トランザクションへ遷移したり、別のALVを表示したりする事が可能である。

    サンプルコード

    ABAP
    FORM call_alv.
     
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = sy-repid
          i_callback_user_command = 'USER_COMMAND'
          it_fieldcat             = it_fieldcat
        TABLES
          t_outtab                = it_data
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
     
    ENDFORM.
     
     
    FORM user_command USING ucomm    LIKE sy-ucomm
                            selfield TYPE slis_selfield.
     
      CASE ucomm.
    *   Double Click
        WHEN '&IC1'.
     
          READ TABLE it_data INTO wa_data
          INDEX 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には選択された列名が入ってるので選択列によって処理を変えたい場合はチェックしよう。

  • 相关阅读:
    MySQL的操作
    Centos7下MySQL的安装
    一键安装Tomcat
    Hola!
    eval
    初级版笔记(修改中)
    decode前先encode(python)
    不能scanf字符串
    第一次做题的一些问题c++
    DSY3163*Eden的新背包问题
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10605237.html
Copyright © 2011-2022 走看看