Hello Friends,
I am having some issue i have created a library for ALV GRID which will bind field catalog and other.
When ever i bind this error occured on my screen GETWA_NOT_ASSIGNED.
I know there is something wrong in my field catalog but i have now bind only 1 field on my field catalog but still having this issue.
--Start Here
* Build ALV Layout
clear d_alv_layout.
perform f_alv_build_layout using :
'ZEBRA' 'X',
'LIGHTS_FIELDNAME' 'LIGHTS',
'LIGHTS_TABNAME' 'T_UPLOAD',
'LIGHTS_CONDENSE' 'X',
'BOX_FIELDNAME' 'BOX',
'BOX_TABNAME' 'T_UPLOAD'.
DATA: lv_fctlg TYPE slis_fieldcat_alv.
lv_fctlg-tabname = 'T_UPLOAD'.
lv_fctlg-seltext_s = 'TAX CODE'.
lv_fctlg-seltext_m = 'TAX CODE'.
lv_fctlg-seltext_l = 'TAX CODE'.
lv_fctlg-fieldname = 'MSWKZ2'.
lv_fctlg-ref_tabname = 'BKPF'.
lv_fctlg-ref_fieldname = 'IBLAR'.
lv_fctlg-col_pos = 0.
APPEND lv_fctlg TO t_alv_fctlg.
PERFORM f_alv_list_display TABLES t_upload USING 'T_UPLOAD' d_alv_save.
--End Here
========================
ZABPXIN_ALV
========================
--------------------------------------------------------------------
TYPE-POOLS: slis.
*---------------------------------------------------------------------*
* Data object declaration
*---------------------------------------------------------------------*
DATA: t_alv_fctlg TYPE slis_t_fieldcat_alv,
t_alv_event TYPE slis_t_event WITH HEADER LINE,
t_alv_isort TYPE slis_t_sortinfo_alv WITH HEADER LINE,
t_alv_extab TYPE slis_t_extab WITH HEADER LINE,
t_alv_filtr TYPE slis_t_filter_alv WITH HEADER LINE,
t_header TYPE slis_t_listheader,
d_alv_isort TYPE slis_sortinfo_alv,
d_alv_varnt TYPE disvariant,
d_alv_lscrl TYPE slis_list_scroll,
d_alv_sort_postn TYPE i,
d_alv_save(1) TYPE c,
d_alv_varnm LIKE disvariant-variant,
d_alv_qinfo TYPE slis_keyinfo_alv,
d_alv_fctlg TYPE slis_fieldcat_alv,
d_alv_stats TYPE slis_formname,
d_alv_ucomm TYPE slis_formname,
d_alv_print TYPE slis_print_alv,
d_alv_repid LIKE sy-repid,
d_alv_top_of_page TYPE slis_formname,
d_alv_tabix LIKE sy-tabix,
d_alv_subrc LIKE sy-subrc,
d_alv_bg_id LIKE bapibds01-objkey VALUE 'ALV_BACKGROUND',
d_alv_screen_start_column TYPE i,
d_alv_screen_start_line TYPE i,
d_alv_screen_end_column TYPE i,
d_alv_screen_end_line TYPE i,
d_alv_layout TYPE slis_layout_alv.
CONSTANTS : c_top_of_page TYPE slis_formname VALUE 'F_TOP_OF_PAGE',
c_end_of_page TYPE slis_formname VALUE 'F_END_OF_PAGE',
c_user_command TYPE slis_formname VALUE 'F_USER_COMMAND'.
* Variant
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-v01.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK 0.
DEFINE macro_alv_disp_options.
selection-screen begin of block 1 with frame title text-v02.
parameters: p_grid radiobutton group rg01 default 'X',
p_list radiobutton group rg01.
selection-screen end of block 1.
END-OF-DEFINITION.
* Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f_alv_variant_f4 CHANGING d_alv_varnt-variant.
*AT SELECTION-SCREEN.
* PERFORM f_alv_selscr_input.
*&---------------------------------------------------------------------*
*& FORM F_ALV_INIT
*&---------------------------------------------------------------------*
* Initialize ALV variables
*----------------------------------------------------------------------*
FORM f_alv_init.
d_alv_repid = sy-repid.
d_alv_save = 'A'.
d_alv_varnt-report = sy-repid.
PERFORM f_alv_get_default_variant.
ENDFORM. " f_alv_init
*&--------------------------------------------------------------------*
*& Form F_ALV_GET_DEFAULT_VARIANT
*&--------------------------------------------------------------------*
* Get ALV Default Variant
*---------------------------------------------------------------------*
FORM f_alv_get_default_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = d_alv_save
CHANGING
cs_variant = d_alv_varnt
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = d_alv_varnt-variant.
ENDIF.
ENDFORM. "F_ALV_GET_DEFAULT_VARIANT
*---------------------------------------------------------------------*
* FORM F_ALV_BUILD_COMMENT *
*---------------------------------------------------------------------*
* Build ALV Header *
*---------------------------------------------------------------------*
FORM f_alv_build_comment TABLES ft_top_of_page TYPE slis_t_listheader
USING fu_typ fu_key fu_info.
* fu_typ = H, S, or A.
* H = Header (big), S = Selection (reg) , A = Action (small)
ft_top_of_page-typ = fu_typ.
ft_top_of_page-key = fu_key.
ft_top_of_page-info = fu_info.
APPEND ft_top_of_page.
ENDFORM. "f_alv_build_comment
*---------------------------------------------------------------------*
* FORM F_ALV_TOP_OF_PAGE *
*---------------------------------------------------------------------*
* Display ALV TOP-OF-PAGE *
*---------------------------------------------------------------------*
FORM f_alv_top_of_page USING fu_logo.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = fu_logo
it_list_commentary = t_header.
ENDFORM. "F_ALV_TOP_OF_PAGE
*---------------------------------------------------------------------*
* FORM F_ALV_END_OF_PAGE *
*---------------------------------------------------------------------*
* Display ALV END-OF-PAGE *
*---------------------------------------------------------------------*
FORM f_alv_end_of_page.
ENDFORM. "F_ALV_END_OF_PAGE
*&---------------------------------------------------------------------*
*& Form F_ALV_BUILD_EVENT
*&---------------------------------------------------------------------*
* Build ALV events (TOP-OF-PAGE, END-OF-PAGE, etc)
*----------------------------------------------------------------------*
FORM f_alv_build_event USING fu_pname fu_pform.
CLEAR t_alv_event.
t_alv_event-name = fu_pname.
t_alv_event-form = fu_pform.
APPEND t_alv_event.
ENDFORM. " F_BUILD_EVENT
*---------------------------------------------------------------------*
* FORM F_ALV_BUILD_EXTAB *
*---------------------------------------------------------------------*
* Exclude ALV GUI status *
*---------------------------------------------------------------------*
FORM f_alv_build_extab USING fu_fcode LIKE rsmpe-func.
t_alv_extab-fcode = fu_fcode.
APPEND t_alv_extab.
ENDFORM. "f_alv_build_extab
*---------------------------------------------------------------------*
* FORM F_ALV_SET_PF_STAT *
*---------------------------------------------------------------------*
* Set ALV PF Status *
*---------------------------------------------------------------------*
FORM f_alv_set_pf_stat USING value(fu_ucomm) TYPE slis_formname.
CLEAR d_alv_stats.
d_alv_stats = fu_ucomm.
ENDFORM. "f_alv_set_pf_stat
*---------------------------------------------------------------------*
* FORM F_ALV_SET_UCOMM *
*---------------------------------------------------------------------*
* Set ALV user callback command *
*---------------------------------------------------------------------*
FORM f_alv_set_ucomm USING value(fu_ucomm) TYPE slis_formname.
CLEAR d_alv_ucomm.
d_alv_ucomm = fu_ucomm.
ENDFORM. "f_alv_set_ucomm
*&---------------------------------------------------------------------*
*& Form F_ALV_BUILD_LAYOUT
*&---------------------------------------------------------------------*
* Build ALV layout
*----------------------------------------------------------------------*
FORM f_alv_build_layout USING fu_field fu_value.
DATA: ld_field(60).
FIELD-SYMBOLS : <fs>.
CONCATENATE 'D_ALV_LAYOUT-' fu_field INTO ld_field.
ASSIGN (ld_field) TO <fs>.
CHECK sy-subrc = 0.
<fs> = fu_value.
ENDFORM. " F_ALV_BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form F_ALV_SORT
*&---------------------------------------------------------------------*
* Sort ALV catalog
*----------------------------------------------------------------------*
FORM f_alv_sort USING fu_table fu_field fu_ascnd fu_subtot.
DATA: ld_isort TYPE slis_sortinfo_alv.
d_alv_sort_postn = d_alv_sort_postn + 1.
ld_isort-tabname = fu_table.
ld_isort-fieldname = fu_field.
IF fu_ascnd = 'X'.
ld_isort-up = 'X'.
ELSE.
ld_isort-down = 'X'.
ENDIF.
ld_isort-spos = d_alv_sort_postn.
ld_isort-subtot = fu_subtot.
APPEND ld_isort TO t_alv_isort.
ENDFORM. " F_ALV_SORT
*&---------------------------------------------------------------------*
*& FORM F_ALV_BUILD_KEY_INFO
*&---------------------------------------------------------------------*
* Build ALV Relationships in ALV Hierarchical Display
*----------------------------------------------------------------------*
FORM f_alv_build_key_info USING fu_header01 TYPE slis_fieldname
fu_item01 TYPE slis_fieldname
fu_header02 TYPE slis_fieldname
fu_item02 TYPE slis_fieldname
fu_header03 TYPE slis_fieldname
fu_item03 TYPE slis_fieldname
fu_header04 TYPE slis_fieldname
fu_item04 TYPE slis_fieldname
fu_header05 TYPE slis_fieldname
fu_item05 TYPE slis_fieldname.
d_alv_qinfo-header01 = fu_header01.
d_alv_qinfo-item01 = fu_item01.
d_alv_qinfo-header02 = fu_header02.
d_alv_qinfo-item02 = fu_item02.
d_alv_qinfo-header03 = fu_header03.
d_alv_qinfo-item03 = fu_item03.
d_alv_qinfo-header04 = fu_header04.
d_alv_qinfo-item04 = fu_item04.
d_alv_qinfo-header05 = fu_header05.
d_alv_qinfo-item05 = fu_item05.
ENDFORM. "f_alv_build_key_info
*&---------------------------------------------------------------------*
*& Form F_ALV_BUILD_CATALOG
*&---------------------------------------------------------------------*
* Build ALV Field Catalog
*----------------------------------------------------------------------*
FORM f_alv_build_catalog USING ft_fctlg TYPE slis_t_fieldcat_alv
fu_tbnam fu_fname fu_dscrp
fu_reftb fu_refld
fu_noout fu_outln fu_hotsp fu_jstfy
fu_dosum.
DATA: lv_fctlg TYPE slis_fieldcat_alv.
lv_fctlg-seltext_s = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
lv_fctlg-seltext_l = fu_dscrp.
lv_fctlg-reptext_ddic = fu_dscrp.
lv_fctlg-tabname = fu_tbnam.
lv_fctlg-fieldname = fu_fname.
lv_fctlg-ref_tabname = fu_reftb.
lv_fctlg-ref_fieldname = fu_refld.
lv_fctlg-no_out = fu_noout.
lv_fctlg-outputlen = fu_outln.
lv_fctlg-hotspot = fu_hotsp.
lv_fctlg-just = fu_jstfy.
lv_fctlg-do_sum = fu_dosum.
APPEND lv_fctlg TO ft_fctlg.
ENDFORM. " F_ALV_BUILD_CATALOG
*&---------------------------------------------------------------------*
*& Form F_ALV_MODIFY_CATALOG
*&---------------------------------------------------------------------*
* Modify ALV Field Catalag
*----------------------------------------------------------------------*
FORM f_alv_modify_catalog USING ft_fctlg TYPE slis_t_fieldcat_alv
fu_tbnam fu_catfield fu_catval fu_fname.
DATA: lv_fctlg TYPE slis_fieldcat_alv.
DATA: ld_catfield(30).
DATA: ld_tabix LIKE sy-tabix.
FIELD-SYMBOLS : <fs>.
READ TABLE ft_fctlg INTO lv_fctlg WITH KEY tabname = fu_tbnam
fieldname = fu_fname.
CHECK sy-subrc = 0.
ld_tabix = sy-tabix.
CONCATENATE 'LV_FCTLG-' fu_catfield INTO ld_catfield.
ASSIGN (ld_catfield) TO <fs>.
<fs> = fu_catval.
MODIFY ft_fctlg INDEX ld_tabix FROM lv_fctlg.
ENDFORM. " F_ALV_MODIFY_CATALOG
*&---------------------------------------------------------------------*
*& Form F_ALV_BUILD_CATALOG_CRNCY
*&---------------------------------------------------------------------*
* Build ALV Field Catalog for Currency Unit
*----------------------------------------------------------------------*
FORM f_alv_build_catalog_crncy USING ft_fctlg TYPE slis_t_fieldcat_alv
fu_tbnam fu_fname fu_dscrp
fu_reftb fu_refld fu_outln fu_dosum
fu_curky fu_cfild fu_ctbnm fu_jstfy.
DATA: lv_fctlg TYPE slis_fieldcat_alv,
ld_lngth TYPE i.
ld_lngth = STRLEN( fu_dscrp ).
IF ld_lngth > 25.
lv_fctlg-seltext_l = fu_dscrp.
ELSEIF ld_lngth > 10.
lv_fctlg-seltext_l = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
ELSE.
lv_fctlg-seltext_s = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
lv_fctlg-seltext_l = fu_dscrp.
ENDIF.
lv_fctlg-tabname = fu_tbnam.
lv_fctlg-fieldname = fu_fname.
lv_fctlg-ctabname = fu_reftb.
lv_fctlg-cfieldname = fu_refld.
lv_fctlg-outputlen = fu_outln.
lv_fctlg-do_sum = fu_dosum.
lv_fctlg-just = fu_jstfy.
lv_fctlg-currency = fu_curky.
lv_fctlg-cfieldname = fu_cfild.
lv_fctlg-ctabname = fu_ctbnm.
lv_fctlg-datatype = 'CURR'.
APPEND lv_fctlg TO ft_fctlg.
ENDFORM. " F_ALV_BUILD_CATALOG_CRNCY
*&---------------------------------------------------------------------*
*& Form F_ALV_CATALOG_EXPNT
*&---------------------------------------------------------------------*
* Build ALV Field Catalog for Exponential Unit
*----------------------------------------------------------------------*
FORM f_alv_catalog_expnt USING ft_fctlg TYPE slis_t_fieldcat_alv
fu_tbnam fu_fname fu_dscrp
fu_reftb fu_refld
fu_outln fu_decml fu_expnt fu_jstfy.
DATA: lv_fctlg TYPE slis_fieldcat_alv,
ld_lngth TYPE i.
ld_lngth = STRLEN( fu_dscrp ).
IF ld_lngth > 25.
lv_fctlg-seltext_l = fu_dscrp.
ELSEIF ld_lngth > 10.
lv_fctlg-seltext_l = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
ELSE.
lv_fctlg-seltext_s = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
lv_fctlg-seltext_l = fu_dscrp.
ENDIF.
lv_fctlg-tabname = fu_tbnam.
lv_fctlg-fieldname = fu_fname.
lv_fctlg-ref_tabname = fu_reftb.
lv_fctlg-ref_fieldname = fu_refld.
lv_fctlg-outputlen = fu_outln.
lv_fctlg-decimals_out = fu_decml.
lv_fctlg-exponent = fu_expnt.
lv_fctlg-datatype = 'FLTP'.
lv_fctlg-just = fu_jstfy.
APPEND lv_fctlg TO ft_fctlg.
ENDFORM. " F_ALV_CATALOG_EXPNT
*&---------------------------------------------------------------------*
*& Form F_ALV_BUILD_CATALOG_QTY
*&---------------------------------------------------------------------*
* Build ALV Field Catalog for quantity unit
*----------------------------------------------------------------------*
FORM f_alv_build_catalog_qty USING ft_fctlg TYPE slis_t_fieldcat_alv
fu_tbnam fu_fname fu_dscrp
fu_reftb fu_refld fu_noout
fu_outln fu_dosum fu_jstfy
fu_meins fu_qfild fu_qtbnm.
DATA: lv_fctlg TYPE slis_fieldcat_alv.
lv_fctlg-seltext_s = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
lv_fctlg-seltext_l = fu_dscrp.
lv_fctlg-reptext_ddic = fu_dscrp.
lv_fctlg-tabname = fu_tbnam.
lv_fctlg-fieldname = fu_fname.
lv_fctlg-ref_tabname = fu_reftb.
lv_fctlg-ref_fieldname = fu_refld.
lv_fctlg-no_out = fu_noout.
lv_fctlg-outputlen = fu_outln.
lv_fctlg-do_sum = fu_dosum.
lv_fctlg-just = fu_jstfy.
lv_fctlg-quantity = fu_meins.
lv_fctlg-qfieldname = fu_qfild.
lv_fctlg-qtabname = fu_qtbnm.
APPEND lv_fctlg TO ft_fctlg.
ENDFORM. " F_ALV_BUILD_CATALOG_QTY
*&---------------------------------------------------------------------*
*& Form F_GET_CATALOG
*&---------------------------------------------------------------------*
* @FT_FCTLG = internal table to store field catalog result
* @FU_TABLE = internal table name
* @FU_STRCT = Table/Structure name
* description: Purpose to get field attribute from data dictionary
* (Table/Structure) and save as ALV field catalog
FORM f_alv_get_catalog TABLES ft_fctlg TYPE slis_t_fieldcat_alv
USING fu_table
fu_strct.
DATA: ld_table TYPE slis_tabname,
ld_strct LIKE dd02l-tabname,
ld_fctlg TYPE slis_fieldcat_alv,
lt_fctlg TYPE slis_t_fieldcat_alv.
ld_table = fu_table.
ld_strct = fu_strct.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_internal_tabname = ld_table
i_structure_name = ld_strct
i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = lt_fctlg
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
ld_fctlg-currency = 'IDR'.
MODIFY lt_fctlg FROM ld_fctlg TRANSPORTING currency
WHERE datatype EQ 'CURR'.
APPEND LINES OF lt_fctlg TO ft_fctlg.
ENDFORM. " F_GET_CATALOG
*&---------------------------------------------------------------------*
*& Form F_ALV_LIST_DISPLAY
*&---------------------------------------------------------------------*
* Generate ALV classic display
*----------------------------------------------------------------------*
FORM f_alv_list_display TABLES ft_table
USING fu_table TYPE slis_tabname
fu_fsave.
d_alv_varnt-report = d_alv_repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = d_alv_repid
i_callback_pf_status_set = d_alv_stats
i_callback_user_command = d_alv_ucomm
* I_STRUCTURE_NAME =
is_layout = d_alv_layout
it_fieldcat = t_alv_fctlg
it_excluding = t_alv_extab[]
it_sort = t_alv_isort[]
i_default = 'X'
i_save = fu_fsave
is_variant = d_alv_varnt
it_events = t_alv_event[]
is_print = d_alv_print
i_screen_start_column = d_alv_screen_start_column
i_screen_start_line = d_alv_screen_start_line
i_screen_end_column = d_alv_screen_end_column
i_screen_end_line = d_alv_screen_end_line
TABLES
t_outtab = ft_table[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " F_ALV_LIST_DISPLAY
*---------------------------------------------------------------------*
* FORM F_ALV_GRID_DISPLAY *
*---------------------------------------------------------------------*
* Generate ALV grid display *
*---------------------------------------------------------------------*
FORM f_alv_grid_display TABLES ft_table.
d_alv_varnt-report = d_alv_repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = d_alv_repid
i_callback_pf_status_set = d_alv_stats
i_callback_user_command = d_alv_ucomm
i_callback_top_of_page = d_alv_top_of_page
i_background_id = d_alv_bg_id
is_layout = d_alv_layout
it_fieldcat = t_alv_fctlg
it_excluding = t_alv_extab[]
it_sort = t_alv_isort[]
i_default = 'X'
i_save = d_alv_save
is_variant = d_alv_varnt
it_events = t_alv_event[]
is_print = d_alv_print
i_screen_start_column = d_alv_screen_start_column
i_screen_start_line = d_alv_screen_start_line
i_screen_end_column = d_alv_screen_end_column
i_screen_end_line = d_alv_screen_end_line
TABLES
t_outtab = ft_table
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " F_ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
*& Form F_ALV_HIER_DISPLAY
*&---------------------------------------------------------------------*
* Generate ALV hierarchical display (header & item level)
*----------------------------------------------------------------------*
FORM f_alv_hier_display TABLES ft_headr
ft_items
USING fu_headr TYPE slis_tabname
fu_items TYPE slis_tabname
fu_fsave.
d_alv_varnt-report = d_alv_repid.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = d_alv_repid
i_callback_pf_status_set = d_alv_stats
i_callback_user_command = d_alv_ucomm
is_layout = d_alv_layout
i_save = fu_fsave
it_fieldcat = t_alv_fctlg
it_excluding = t_alv_extab[]
it_sort = t_alv_isort[]
it_events = t_alv_event[]
is_variant = d_alv_varnt
i_tabname_header = fu_headr
i_tabname_item = fu_items
is_keyinfo = d_alv_qinfo
is_print = d_alv_print
i_screen_start_column = d_alv_screen_start_column
i_screen_start_line = d_alv_screen_start_line
i_screen_end_column = d_alv_screen_end_column
i_screen_end_line = d_alv_screen_end_line
TABLES
t_outtab_header = ft_headr
t_outtab_item = ft_items
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " F_ALV_HIER_DISPLAY
*&---------------------------------------------------------------------*
*& Form F_GET_TABLES2
*&---------------------------------------------------------------------*
FORM f_alv_get_tables2 TABLES ft_headr ft_items.
CALL FUNCTION 'REUSE_ALV_HS_TABLES_GET'
TABLES
et_outtab_master = ft_headr
et_outtab_detail = ft_items
EXCEPTIONS
no_infos = 1
OTHERS = 2.
ENDFORM. " F_GET_TABLES
*---------------------------------------------------------------------*
* FORM F_ALV_GET_TABLES *
*---------------------------------------------------------------------*
FORM f_alv_get_tables1 TABLES ft_table.
CALL FUNCTION 'REUSE_ALV_TABLES_GET'
TABLES
et_outtab = ft_table
EXCEPTIONS
no_infos = 1
OTHERS = 2.
ENDFORM. " F_GET_TABLES
*&---------------------------------------------------------------------*
*& Form F_ALV_VARIANT_F4
*&---------------------------------------------------------------------*
FORM f_alv_variant_f4 CHANGING fc_varnt.
DATA: rs_variant LIKE disvariant.
rs_variant-report = d_alv_repid.
rs_variant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = rs_variant
i_save = 'A'
IMPORTING
es_variant = rs_variant
EXCEPTIONS
OTHERS = 1.
IF sy-subrc = 0.
fc_varnt = rs_variant-variant.
p_vari = rs_variant-variant.
ENDIF.
ENDFORM. " ALV_VARIANT_F4
*&---------------------------------------------------------------------*
*& Form f_alv_selscr_input
*&---------------------------------------------------------------------*
* PAI of ALV selection screen
*----------------------------------------------------------------------*
FORM f_alv_selscr_input.
DATA : rs_variant LIKE disvariant.
IF NOT p_vari IS INITIAL.
MOVE d_alv_varnt TO rs_variant.
MOVE p_vari TO rs_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = d_alv_save
CHANGING
cs_variant = rs_variant.
d_alv_varnt = rs_variant.
ELSE.
CLEAR d_alv_varnt.
d_alv_varnt = d_alv_repid.
ENDIF.
ENDFORM. " f_alv_selscr_input
*&---------------------------------------------------------------------*
*& Form F_ALV_BUILD_PRINT_OPT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_alv_build_print_opt USING fu_field fu_value.
DATA: ld_field(60).
FIELD-SYMBOLS : <fs>.
CONCATENATE 'D_ALV_PRINT-' fu_field INTO ld_field.
ASSIGN (ld_field) TO <fs>.
CHECK sy-subrc = 0.
<fs> = fu_value.
ENDFORM. " F_ALV_BUILD_PRINT_OPT
*&---------------------------------------------------------------------*
*& Form F_ALV_BUILD_CATALOG_LINE
*&---------------------------------------------------------------------*
* Build ALV Field Catalog with multiple lines
*----------------------------------------------------------------------*
FORM f_alv_build_catalog_line USING ft_fctlg TYPE slis_t_fieldcat_alv
fu_tbnam fu_fname fu_dscrp
fu_reftb fu_refld
fu_noout fu_outln fu_hotsp fu_jstfy
fu_dosum fu_row fu_col.
DATA: lv_fctlg TYPE slis_fieldcat_alv.
lv_fctlg-seltext_s = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
lv_fctlg-seltext_l = fu_dscrp.
lv_fctlg-reptext_ddic = fu_dscrp.
lv_fctlg-tabname = fu_tbnam.
lv_fctlg-fieldname = fu_fname.
lv_fctlg-ref_tabname = fu_reftb.
lv_fctlg-ref_fieldname = fu_refld.
lv_fctlg-no_out = fu_noout.
lv_fctlg-outputlen = fu_outln.
lv_fctlg-hotspot = fu_hotsp.
lv_fctlg-just = fu_jstfy.
lv_fctlg-do_sum = fu_dosum.
lv_fctlg-row_pos = fu_row.
lv_fctlg-col_pos = fu_col.
APPEND lv_fctlg TO ft_fctlg.
ENDFORM. " F_ALV_BUILD_CATALOG_LINE
*&---------------------------------------------------------------------*
*& Form F_ALV_BUILD_CATALOG_CRNCY_LINE
*&---------------------------------------------------------------------*
* Build ALV Field Catalog for Currency Unit multiple line
*----------------------------------------------------------------------*
FORM f_alv_build_catalog_crncy_line USING ft_fctlg TYPE
slis_t_fieldcat_alv
fu_tbnam fu_fname fu_dscrp
fu_reftb fu_refld fu_outln fu_dosum
fu_curky fu_cfild fu_ctbnm fu_jstfy
fu_row fu_col.
DATA: lv_fctlg TYPE slis_fieldcat_alv,
ld_lngth TYPE i.
ld_lngth = STRLEN( fu_dscrp ).
IF ld_lngth > 25.
lv_fctlg-seltext_l = fu_dscrp.
ELSEIF ld_lngth > 10.
lv_fctlg-seltext_l = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
ELSE.
lv_fctlg-seltext_s = fu_dscrp.
lv_fctlg-seltext_m = fu_dscrp.
lv_fctlg-seltext_l = fu_dscrp.
ENDIF.
lv_fctlg-tabname = fu_tbnam.
lv_fctlg-fieldname = fu_fname.
lv_fctlg-ctabname = fu_reftb.
lv_fctlg-cfieldname = fu_refld.
lv_fctlg-outputlen = fu_outln.
lv_fctlg-do_sum = fu_dosum.
lv_fctlg-just = fu_jstfy.
lv_fctlg-currency = fu_curky.
lv_fctlg-cfieldname = fu_cfild.
lv_fctlg-ctabname = fu_ctbnm.
lv_fctlg-datatype = 'CURR'.
lv_fctlg-row_pos = fu_row.
lv_fctlg-col_pos = fu_col.
APPEND lv_fctlg TO ft_fctlg.
ENDFORM. " F_ALV_BUILD_CATALOG_CRNCY_LINE