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には選択された列名が入ってるので選択列によって処理を変えたい場合はチェックしよう。

  • 相关阅读:
    每日一招:个股五种见底特征
    中国互联网或将被世界淘汰 !
    了解这23种设计模式
    用Nikto探测一个网站所用到的技术
    javax.crypto.BadPaddingException: Given final block not properly padded
    java.net.UnknownHostException: promote.cache-dns.local: unknown error
    CentOS 7 Rescure
    最小化安装的CentOS7挂载ntfs格式的U盘
    CentOS 7 最小化安装的无线网络配置
    Mysql Specified key was too long; max key length is 767 bytes
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10605237.html
Copyright © 2011-2022 走看看