ABAP Code:How to Display variant F4 on screen Report

ABAP How to Display variant F4 on screen Report

ABAP How to Display variant F4 on screen Report

โดยส่วนมาก ถ้า Report เป็นประเภท Report ALV จะต้องสามารถ ทำให้บันทึก Layout ของ ALV ได้ และเมื่อบันทึกได้ ก็ต้องสามารถสั่งเลือกได้ ผ่านทางหน้า Screen ก่อนรัน Report เพื่อความสะดวกและรวดเร็วในการใช้งาน Report

Step 0. กำหนดตัวแปรที่ต้องใช้งาน 

DATA: gd_repid LIKE sy-repid,
g_save TYPE c VALUE 'X',
g_variant TYPE disvariant,
gx_variant TYPE disvariant,
g_exit TYPE c.

Step 1. ประกาศพารามิเตอร์ p_vari สำหรับ Display variant

PARAMETERS: p_vari TYPE disvariant-variant.

Step 2. ระบุ Code เริ่มต้นที่ INITIALIZATION.

gx_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.

Step 3. ระบุ Code ภายใต้ AT SELECTION-SCREEN.

** F4 Help for Varient
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
**-- Display all existing variants
g_variant-report = sy-repid.
* Utilizing the name of the report, this function module will search for a list of
* variants and will fetch the selected one into the parameter field for variants
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.

Step 4. ระบุ Code ภายใต้ START-OF-SELECTION. 

PERFORM check_variant.

FORM check_variant .
g_variant-variant = p_vari.
g_variant-report = sy-repid.
CALL FUNCTION 'LVC_VARIANT_EXISTENCE_CHECK' "Check for display variant
EXPORTING
i_save = space "Variants Can be Saved
CHANGING
cs_variant = g_variant "Variant information
EXCEPTIONS
wrong_input = 1 "Inconsistent input parameters
not_found = 2 "Variant not found
program_error = 3 "Program Errors
. " LVC_VARIANT_EXISTENCE_CHECK
IF sy-subrc = 2.
MESSAGE 'Display Variant Not Found, Displaying Default Variant'
TYPE 'S'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
ENDFORM. "CHECK_VARIANT

หลังจากระบุ Code เสร็จ จะได้หน้าตาการทำงานดังนี้

ABAP How to Display variant F4 on screen Report

ABAP How to Display variant F4 on screen Report

 

ABAP How to Display variant F4 on screen Report

ABAP How to Display variant F4 on screen Report