标签:表示 SY VG TYPE VARIANT ALV SAVE 方法
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
标签:表示,SY,VG,TYPE,VARIANT,ALV,SAVE,方法 来源: https://www.cnblogs.com/yjyongil/p/11964131.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。