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

  • 相关阅读:
    基于docker+reveal.js搭建一个属于自己的在线ppt网站
    Python3学习笔记
    SSL证书简介
    Centos7.4下用Docker-Compose部署WordPress(续)-服务器端用Nginx作为反向代理并添加SSL证书(阿里云免费DV证书)
    Centos7.4下用Docker-Compose部署WordPress
    Yii2+Swagger搭建RESTful风格的API项目
    CentOS 6(64-bit) + Nginx搭建静态文件服务器
    Ubuntu 14.04TLS和CentOS-6(64bit)上安装Nginx
    Ubuntu 14.04TLS Nginx搭建静态文件服务器
    Ubuntu 12.04 安装Redis并设置主从复制
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10605237.html
Copyright © 2011-2022 走看看