SAP后台表的字段清单及其中英文描述
在学习SAP英文词汇的过程中,去界面里一个一个查词汇太麻烦了!!!
后来我发现了一个方法,直接去后台表里查看字段清单的中文描述和英文描述,
如下图所示:
后来想了想,有了表的字段清单对于写FS也很有帮助,故作此分享。
于是乎我就写了一个报表,输入表名,输出字段清单、中文描述、英文描述。
如下图所示:
程序代码148行,一共涉及3张后台表:DD02T表的描述、DD03L表的字段清单、DD04T元素的描述。
&---------------------------------------------------------------------
REPORT ztest0005.
TABLES:dd03l.
DATA: BEGIN OF gt_out OCCURS 0,
tabname TYPE dd03l-tabname, "表名
fieldname TYPE dd03l-fieldname, "字段名称
rollname TYPE dd03l-rollname, "元素
description_zh TYPE char120, "中文描述
description_en TYPE char120, "英文描述
description1_zh TYPE char120, "表中文描述
description1_en TYPE char120, "表英文描述
END OF gt_out.
DATA gt_dd04t TYPE TABLE OF dd04t WITH HEADER LINE.
DATA gt_dd02t TYPE TABLE OF dd02t WITH HEADER LINE.
DATA gt_dd03l TYPE TABLE OF dd03l WITH HEADER LINE.
DATA : gt_fieldcat TYPE lvc_t_fcat,
gs_fieldcat TYPE lvc_s_fcat,
gs_layout TYPE lvc_s_layo.
SELECTION-SCREEN: BEGIN OF BLOCK bl1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS:
s_tabnam FOR dd03l-tabname DEFAULT ‘MSEG’."表名
SELECTION-SCREEN END OF BLOCK bl1.
START-OF-SELECTION."F8
- PERFORM frm_auth_check.
PERFORM frm_process_data.
PERFORM frm_layout_set.
PERFORM frm_fieldcat_set.
PERFORM frm_show_data.
&---------------------------------------------------------------------
&---------------------------------------------------------------------
&---------------------------------------------------------------------
&---------------------------------------------------------------------
&---------------------------------------------------------------------
FORM frm_process_data .
"表的字段清单
SELECT tabname fieldname rollname
FROM dd03l
INTO CORRESPONDING FIELDS OF TABLE gt_out
WHERE tabname IN s_tabnam
AND rollname <> ‘’.
"表的描述
SELECT tabname ddlanguage ddtext
FROM dd02t
INTO CORRESPONDING FIELDS OF TABLE gt_dd02t
WHERE ddlanguage = ‘1’
OR ddlanguage = ‘E’.
SORT gt_dd02t BY tabname ddlanguage.
"元素描述
SELECT rollname ddlanguage ddtext FROM dd04t
INTO CORRESPONDING FIELDS OF TABLE gt_dd04t
WHERE ddlanguage = ‘1’
OR ddlanguage = ‘E’.
SORT gt_dd04t BY rollname ddlanguage.
LOOP AT gt_out.
READ TABLE gt_dd04t WITH KEY rollname = gt_out-rollname ddlanguage = '1' BINARY SEARCH.
IF sy-subrc = 0.
gt_out-description_zh = gt_dd04t-ddtext.
ENDIF.
READ TABLE gt_dd04t WITH KEY rollname = gt_out-rollname ddlanguage = 'E' BINARY SEARCH.
IF sy-subrc = 0.
gt_out-description_en = gt_dd04t-ddtext.
ENDIF.
READ TABLE gt_dd02t WITH KEY tabname = gt_out-tabname ddlanguage = '1' BINARY SEARCH.
IF sy-subrc = 0.
gt_out-description1_zh = gt_dd02t-ddtext.
ENDIF.
READ TABLE gt_dd02t WITH KEY tabname = gt_out-tabname ddlanguage = 'E' BINARY SEARCH.
IF sy-subrc = 0.
gt_out-description1_en = gt_dd02t-ddtext.
ENDIF.
MODIFY gt_out.
ENDLOOP.
SORT gt_out BY tabname fieldname.
ENDFORM.
FORM frm_layout_set .
gs_layout-cwidth_opt = ‘X’.
gs_layout-zebra = ‘X’.
ENDFORM.
FORM frm_fieldcat_set .
DEFINE macro_fieldcat_set.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = &1.
gs_fieldcat-scrtext_m = &2.
gs_fieldcat-no_zero = ‘X’. "去掉前置零
APPEND gs_fieldcat TO gt_fieldcat.
END-OF-DEFINITION.
macro_fieldcat_set:
‘TABNAME’ ‘表名’,
‘FIELDNAME’ ‘字段名称’,
‘ROLLNAME’ ‘元素’,
‘DESCRIPTION_ZH’ ‘元素中文描述’,
‘DESCRIPTION_EN’ ‘元素英文描述’,
‘DESCRIPTION1_ZH’ ‘表中文描述’,
‘DESCRIPTION1_EN’ ‘表英文描述’.
ENDFORM.
FORM frm_show_data .
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = ‘FRM_ALV_STATUS’
i_callback_user_command = ‘FRM_USER_COMMAND’
is_layout_lvc = gs_layout
it_fieldcat_lvc = gt_fieldcat[]
i_save = ‘U’
TABLES
t_outtab = gt_out[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid
TYPE sy-msgty
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
FORM frm_alv_status USING pt_extab TYPE slis_t_extab.
SET PF-STATUS ‘ZSTANDARD’ .
ENDFORM.
FORM frm_user_command USING r_ucomm TYPE sy-ucomm
p_selfield TYPE slis_selfield.
ENDFORM.