*&---------------------------------------------------------------------*
*& 包括 ZTABVIEW
*&---------------------------------------------------------------------*
REPORT ZTABVIEW.
TYPE-POOLS: SLIS.
TABLES: DD02T, DD03L, DD04T.
SELECT-OPTIONS:
v_tabnam FOR dd02t-tabname,
v_fieldn FOR dd03l-fieldname,
v_ddtext FOR dd04t-ddtext.
DATA: BEGIN OF it_tab OCCURS 0,
TABNAME LIKE DD02T-TABNAME,
FIELDNAME LIKE DD03L-FIELDNAME,
DDTEXT LIKE DD02T-DDTEXT,
KEYFLAG LIKE DD03L-KEYFLAG,
REFTABLE LIKE DD03L-REFTABLE,
REFFIELD LIKE DD03L-REFFIELD,
DATATYPE LIKE DD03L-DATATYPE,
LENG LIKE DD03L-LENG,
DECIMALS LIKE DD03L-DECIMALS,
DOMNAME LIKE DD03L-DOMNAME,
DDTEXT1 LIKE DD04T-DDTEXT,
TABCLASS LIKE DD02L-TABCLASS,
END OF it_tab.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_FIELDCAT LIKE LINE OF IT_FIELDCAT.
DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
PERFORM getdata.
PERFORM GET_CATALOG CHANGING IT_FIELDCAT.
PERFORM GET_LAYOUT USING GS_LAYOUT.
PERFORM ALVDISP.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETDATA .
Select a~tabname b~ddtext a~fieldname a~position a~inttype a~intlen a~keyflag
a~reftable a~reffield a~datatype a~leng a~decimals a~domname c~ddtext as ddtext1
d~tabclass
APPENDING CORRESPONDING FIELDS OF TABLE it_tab
From dd03l as a inner join dd02t as b on a~tabname = b~tabname
inner join dd04t as c on a~rollname = c~rollname and b~ddlanguage = c~ddlanguage
INNER JOIN dd02l as d on a~tabname = d~tabname
where b~ddlanguage = '1'
and a~tabname in v_tabnam
and a~fieldname in v_fieldn
and c~ddtext in v_ddtext.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form ALVDISP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALVDISP .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_GRID_TITLE = '数据字典查询'
IT_FIELDCAT = IT_FIELDCAT
IS_LAYOUT = GS_LAYOUT
TABLES
T_OUTTAB = IT_tab.
ENDFORM. " ALVDISP
*&---------------------------------------------------------------------*
*& Form GET_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_IT_FIELDCAT text
*----------------------------------------------------------------------*
FORM GET_CATALOG CHANGING P_IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA LWA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
"MACRO
DEFINE ADD_FIELD.
CLEAR LWA_FIELDCAT.
LWA_FIELDCAT-COL_POS = &1.
LWA_FIELDCAT-FIELDNAME = &2.
LWA_FIELDCAT-SELTEXT_L = &3.
APPEND LWA_FIELDCAT TO P_IT_FIELDCAT.
END-OF-DEFINITION.
ADD_FIELD SY-TABIX 'TABNAME' '表名'.
ADD_FIELD SY-TABIX 'FIELDNAME' '字段名'.
ADD_FIELD SY-TABIX 'DDTEXT' '表描述'.
ADD_FIELD SY-TABIX 'KEYFLAG' '键值标识'.
ADD_FIELD SY-TABIX 'REFTABLE' '参考表'.
ADD_FIELD SY-TABIX 'REFFIELD' '参考字段'.
ADD_FIELD SY-TABIX 'DATATYPE' '字段类型'.
ADD_FIELD SY-TABIX 'LENG' '字段长度'.
ADD_FIELD SY-TABIX 'DECIMALS' '小数位数'.
ADD_FIELD SY-TABIX 'DOMNAME' '域'.
ADD_FIELD SY-TABIX 'DDTEXT1' '字段描述'.
ADD_FIELD SY-TABIX 'TABCLASS' '表类型'.
ENDFORM. " GET_CATALOG
*&---------------------------------------------------------------------*
*& Form GET_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GS_LAYOUT text
*----------------------------------------------------------------------*
FORM GET_LAYOUT USING P_GS_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_GS_LAYOUT-ZEBRA = 'X'.
P_GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " GET_LAYOUT