ABAP根据参考表及参考字段构建内表输出字段
2019-07-22 本文已影响0人
JayDragon
啥也不说了,直接上代码就完事了!!!
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_fieldcat TYPE slis_fieldcat_alv.
FORM build_fieldcat USING value(p) TYPE any
value(q) TYPE any
value(rt) TYPE any
value(rf) TYPE any.
DATA inttab LIKE TABLE OF dfies WITH HEADER LINE.
gs_fieldcat-fieldname = p.
IF rf IS NOT INITIAL.
gs_fieldcat-ref_fieldname = rf.
ENDIF.
gs_fieldcat-seltext_l = q .
gs_fieldcat-seltext_m = q .
gs_fieldcat-seltext_s = q .
gs_fieldcat-ddictxt = 'L'.
IF rt IS NOT INITIAL.
gs_fieldcat-ref_tabname = rt.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = rt
fieldname = rf
langu = sy-langu
TABLES
dfies_tab = inttab
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc = 0 AND inttab[] IS NOT INITIAL.
READ TABLE inttab WITH KEY fieldname = rf.
gs_fieldcat-seltext_l = inttab-scrtext_l.
gs_fieldcat-seltext_m = inttab-scrtext_m.
gs_fieldcat-seltext_s = inttab-scrtext_s.
ENDIF.
ENDIF.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
ENDFORM. " BUILD_FIELDCAT