zoukankan      html  css  js  c++  java
  • 【転載】表示レイアウト実装方法

    ALVを出力する前に、選択画面でユーザにALVの出力レイアウトを指定してもらう場面があります。
    このトピックでは、購買組織を元に出力レイアウト選択機能を追加する例を取り上げて説明します。

     

    変数の定義を追加

    DATA: g_variant TYPE disvariant. 
    DATA:  VG_SAVE       TYPE CHAR1, 
               VG_EXIT       TYPE CHAR1, 
               VG_VARIANT    TYPE DISVARIANT, 
               VG_VARIANT_EX TYPE DISVARIANT.
    

    選択パラメータを追加

    PARAMETERS:     P_LAYOUT TYPE DISVARIANT-VARIANT. 
    

    初期化処理を追加

    初期化処理で、デフォルトのバリアント値を取得して自動提案します。

    INITIALIZATION. 
      VG_SAVE = 'A'.   "ユーザ定義レイアウトとグローバルレイアウトの両方を保存できます。 
      VG_VARIANT-REPORT = SY-REPID. 
      VG_VARIANT_EX = VG_VARIANT. 
       
    * バリアントの初期化 
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET' 
        EXPORTING 
          I_SAVE        =  VG_SAVE 
        CHANGING 
          CS_VARIANT    =  VG_VARIANT_EX 
        EXCEPTIONS 
          WRONG_INPUT   = 1 
          NOT_FOUND     = 2 
          PROGRAM_ERROR = 3 
          OTHERS        = 4. 
      IF SY-SUBRC = 0. 
        P_LAYOUT = VG_VARIANT_EX-VARIANT. 
      ENDIF. 
    

    検索ヘルプ実装

    * AT SELECTION-SCREEN  選択画面:レイアウトのヘルプ設定 
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LAYOUT . 
    * レイアウトのヘルプ設定 
    
    
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4' 
        EXPORTING 
          IS_VARIANT    = VG_VARIANT 
          I_SAVE        =  VG_SAVE 
        IMPORTING 
          E_EXIT        = VG_EXIT 
          ES_VARIANT    = VG_VARIANT_EX 
        EXCEPTIONS 
          NOT_FOUND     = 1 
          PROGRAM_ERROR = 2. 
    
      IF SY-SUBRC <> 0. 
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
      ELSE. 
        IF VG_EXIT = SPACE. 
          P_LAYOUT = VG_VARIANT_EX-VARIANT. 
        ELSE. 
        ENDIF. 
      ENDIF. 
    

    入力チェックを追加

    入力チェック処理で、入力されたレイアウトバリアント値が存在するかどうかをチェックします。

    AT SELECTION-SCREEN. 
    * バリアント存在チェック 
      IF P_LAYOUT IS NOT INITIAL. 
        VG_VARIANT-VARIANT = P_LAYOUT. 
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE' 
          EXPORTING 
            I_SAVE        = VG_SAVE 
          CHANGING 
            CS_VARIANT    = VG_VARIANT 
          EXCEPTIONS 
            WRONG_INPUT   = 1 
            NOT_FOUND     = 2 
            PROGRAM_ERROR = 3. 
        IF SY-SUBRC <> 0. 
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
        ENDIF. 
      ENDIF. 
    

    レイアウト選択値を反映

    汎用モジュールを呼び出してALV一覧出力を行う時、汎用モジュールの入力パラメータとしてレイアウトの選択値を受け渡します。

     CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' 
        EXPORTING 
    *       i_callback_pf_status_set = 'PF_STATUS_SIMP' 
         it_fieldcat        = gtbl_fieldcat 
    *      i_structure_name = 'YLWF_AL' 
    *     is_layout          = g_layout 
          IS_VARIANT    = VG_VARIANT 
          i_save             = VG_SAVE 
       TABLES 
          t_outtab           = gtbl_account_doc 
        EXCEPTIONS 
    *      program_error      = 0 
         OTHERS             = 0 
    

      

    本文はhttp://sapecc.insidekb.jp/doku.php/96/36/46/38

  • 相关阅读:
    php操作mysql数据库
    Java获得某目录下文件总大小
    Flex Air 主窗口和多个子窗口从属显示 拂晓风起
    actionscript AES 加密 解密 拂晓风起
    Flex 可以拖出窗口的panel 拖动panel变为窗口 拂晓风起
    Flash builder打包as actionscript代码,发布swc 拂晓风起
    网站安全登录 web应用安全登录 密码 防截获 拂晓风起
    Flex透明窗体做法 spark的Window加Skin 拂晓风起
    PHP开发环境搭建 (XAMPP+Xdebug+netbeans,配置调试) 拂晓风起
    SSH 项目过程中遇到的问题和解决方法汇总 struts2 spring hibernate 拂晓风起
  • 原文地址:https://www.cnblogs.com/yjyongil/p/11964131.html
Copyright © 2011-2022 走看看