Last active
April 12, 2024 12:00
-
-
Save alezhu/612a7c5ee46989e9779741211de17a68 to your computer and use it in GitHub Desktop.
Enhancement for generate wide maintenance view screen
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"1 | |
"Add Implicit Enhancement at the end of form CREATE_DYNP_HEADER (INCLUDE MSVIMF21) | |
"Put this code inside created enhancement: | |
PERFORM post_create_dynp_header in PROGRAM ZBC_MAINTANCE_VIEW_EXITS if FOUND | |
USING p_dyname p_gencb p_detail dropdown_length_tcrl max_dynp_fieldlen CHANGING p_header. | |
"2 | |
"Add Implicit Enhancement at the begin of form CREATE_DYNP_FIELDLIST (INCLUDE MSVIMF21) | |
"Put this code inside created enhancement: | |
PERFORM pre_create_dynp_fieldlist IN PROGRAM ZBC_MAINTANCE_VIEW_EXITS IF FOUND | |
USING p_make_detail p_skip_fields p_flds_to_cont CHANGING p_dfies_tab. | |
"3 | |
"Add Implicit Enhancement at the end of form CREATE_DYNP_CONT (INCLUDE MSVIMF21) | |
"Put this code inside created enhancement: | |
IF p_mode = '11' and <w_cont> is ASSIGNED. | |
PERFORM post_create_dynp_cont in PROGRAM ZBC_MAINTANCE_VIEW_EXITS if FOUND | |
CHANGING <w_cont>. | |
ENDIF. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*&---------------------------------------------------------------------* | |
*& Subroutinenpool ZBC_MAINTANCE_VIEW_EXITS | |
*& | |
*&---------------------------------------------------------------------* | |
PROGRAM zbc_maintance_view_exits. | |
TYPES: | |
BEGIN OF ts_dynpid, | |
prog LIKE d020s-prog, | |
dnum LIKE d020s-dnum, | |
END OF ts_dynpid. | |
TYPES tt_dfies TYPE STANDARD TABLE OF dfies WITH KEY tabname fieldname langu position. | |
TYPES tt_flds_to_cont_type TYPE STANDARD TABLE OF rpy_dyfatc WITH DEFAULT KEY. | |
DATA gps_header TYPE REF TO rpy_dyhead. | |
DATA gpt_fields TYPE REF TO tt_flds_to_cont_type. | |
FORM post_create_dynp_header | |
USING is_dyname TYPE ts_dynpid | |
is_gencb TYPE vimgencb | |
iv_detail TYPE xfeld | |
iv_dropdown_length_tcrl TYPE scrndeflg | |
iv_max_dynp_fieldlen TYPE scrnvislg | |
CHANGING cs_header TYPE rpy_dyhead. | |
CLEAR gps_header. | |
CLEAR gpt_fields. | |
CHECK iv_detail IS INITIAL. | |
"Add some check of enabling this functionality if you need. Something like it: | |
"SELECT SINGLE @abap_true FROM tvarvc WHERE name = 'ZDISABLE_WIDE_VIEW_MAINT_GEN' INTO @DATA(lv_disable). | |
"CHECK lv_disable IS INITIAL. | |
gps_header = REF #( cs_header ). | |
ENDFORM. | |
FORM pre_create_dynp_fieldlist USING iv_make_detail TYPE xfeld | |
iv_skip_fields TYPE xfeld | |
it_flds_to_cont TYPE tt_flds_to_cont_type | |
CHANGING ct_dfies TYPE tt_dfies. | |
DATA lt_dfies_txt TYPE tt_dfies. | |
IF iv_make_detail = abap_true OR ct_dfies[] IS INITIAL OR gps_header IS NOT BOUND. | |
RETURN. | |
ENDIF. | |
gpt_fields = REF #( it_flds_to_cont ). | |
*"Move text table fields to end | |
DATA(lv_tabname) = ct_dfies[ 1 ]-tabname. | |
LOOP AT ct_dfies REFERENCE INTO DATA(lps_dfies) | |
WHERE tabname <> lv_tabname. | |
APPEND lps_dfies->* TO lt_dfies_txt. | |
ENDLOOP. | |
IF sy-subrc = 0. | |
DELETE ct_dfies WHERE tabname <> lv_tabname. | |
APPEND LINES OF lt_dfies_txt TO ct_dfies. | |
ENDIF. | |
ENDFORM. | |
FORM post_create_dynp_cont CHANGING cs_cont TYPE rpy_dycatt. | |
DATA lps_field TYPE REF TO rpy_dyfatc. | |
CHECK gps_header IS BOUND AND gpt_fields IS BOUND. | |
DATA(lv_size) = 0. | |
LOOP AT gpt_fields->* REFERENCE INTO lps_field | |
WHERE tc_heading IS INITIAL AND tc_title IS INITIAL. | |
ADD lps_field->vislength TO lv_size. | |
ENDLOOP. | |
lv_size = nmin( val1 = lv_size val2 = 255 ). | |
IF lv_size > gps_header->columns. | |
gps_header->columns = lv_size. | |
ENDIF. | |
IF lv_size > cs_cont-length. | |
cs_cont-length = lv_size. | |
ENDIF. | |
CLEAR gps_header. | |
CLEAR gpt_fields. | |
ENDFORM. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment