之前下载表结构都是写代码,最后会附上代码
INCLUDE STRUCTURE TADIR.
INCLUDE STRUCTURE TRDIRT.
INCLUDE STRUCTURE DD03L.
TABNAME LIKE DD02L-TABNAME,
DDTEXT
LIKE DD02T-DDTEXT,
END OF T1.
FIELD(15), "字段
KEY(6), "关键字
ELMENT(15), "字段类型
TYPE(10), "数据类型
LENG(8) , "长度
DECIMALS(8) , "小数
CHK(10), "表检查
CAN(10), "参考表
CFI(10), "参考字段
TEXT(40), "字段描述
END OF ITAB.
LIN
TYPE I,
VAL(30),
REP(40).
IF TABNAME IS INITIAL.
MESSAGE
'INPUT DB TAB NAME!' TYPE 'E'.
ELSE.
PERFORM GET_TABLE_DATA.
ENDIF.
CLEAR: FIELDS, LIN.
GET CURSOR FIELD FIELDS LINE LIN VALUE VAL.
LIN = LIN - 1.
IF LIN >= 1.
READ TABLE YTADIR INDEX LIN.
IF SY-SUBRC = 0.
CLEAR REP.
CLEAR PROG.
REP = YTADIR-OBJ_NAME.
READ REPORT REP INTO PROG.
EDITOR-CALL FOR PROG.
ENDIF.
ENDIF.
SELECT DISTINCT * INTO CORRESPONDING FIELDS OF TABLE T1
FROM DD02T WHERE TABNAME IN TABNAME
AND DDLANGUAGE EQ SY-LANGU.
IF SY-SUBRC <> 0.
MESSAGE 'INPUT ERRO' TYPE 'E'.
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF TABLE TAB FROM DD03L AS A
WHERE A~TABNAME IN TABNAME.
IF SY-SUBRC <> 0.
MESSAGE 'INPUT ERRO' TYPE 'E'.
ENDIF.
SORT TAB BY TABNAME POSITION.
WRITE:/'字段名','关键字','数据元素','数据类型','长度','小数',
'表检查','参考表','参考字段','字段描述'.
ULINE.
LOOP AT T1.
REFRESH ITAB.
CLEAR YYNAME.
ITAB-FIELD = 'FIELD'.
ITAB-KEY = 'KEY'.
ITAB-ELMENT = 'ELEMENT'.
ITAB-TYPE = 'TYPE'.
ITAB-TYPE = 'TYPE'.
ITAB-DECIMALS = 'DECIMALS'.
ITAB-TEXT = 'TEXT'.
ITAB-CHK = 'CHECKTABLE'.
ITAB-CAN = 'REFTABLE'.
ITAB-CFI = 'REFFIELD'.
APPEND ITAB.
CLEAR ITAB.
CONCATENATE T1-TABNAME '_' T1-DDTEXT '的表结构如下:'
INTO YYNAME.
FORMAT COLOR 3.
WRITE:/ YYNAME.
FORMAT COLOR OFF.
LOOP AT TAB WHERE TABNAME = T1-TABNAME.
ITAB-FIELD = TAB-FIELDNAME.
ITAB-KEY = TAB-KEYFLAG.
ITAB-ELMENT = TAB-ROLLNAME.
ITAB-TYPE = TAB-DATATYPE.
ITAB-LENG = TAB-LENG.
ITAB-CHK = TAB-CHECKTABLE.
ITAB-CAN = TAB-REFTABLE.
ITAB-CFI = TAB-REFFIELD.
ITAB-DECIMALS = TAB-DECIMALS.
IF TAB-ROLLNAME NE SPACE.
SELECT SINGLE * FROM DD04T WHERE ROLLNAME = TAB-ROLLNAME
AND DDLANGUAGE = SY-LANGU.
IF SY-SUBRC = 0.
ITAB-TEXT = DD04T-DDTEXT.
ELSE.
CLEAR ITAB-TEXT.
ENDIF.
ELSE.
SELECT SINGLE * FROM DD03T WHERE TABNAME = TAB-TABNAME
AND DDLANGUAGE = SY-LANGU
AND FIELDNAME = TAB-FIELDNAME.
IF SY-SUBRC = 0.
ITAB-TEXT = DD03T-DDTEXT.
ELSE.
CLEAR ITAB-TEXT.
ENDIF.
ENDIF.
APPEND ITAB.
WRITE:/ ITAB-FIELD,ITAB-KEY,ITAB-ELMENT,ITAB-TYPE,ITAB-LENG,
ITAB-DECIMALS,ITAB-CHK,ITAB-CAN,ITAB-CFI,ITAB-TEXT.
CLEAR ITAB.
ENDLOOP.
CONCATENATE P_DIR T1-TABNAME '_' T1-DDTEXT '.' STYPE
INTO YYNAME.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = YYNAME
FILETYPE = 'DAT'
TABLES
DATA_TAB = ITAB.
ULINE.
ENDLOOP.
后来才只是se15可以下载表结构,当然更多功能自己去研究就行。
自建下载程序代码:(忘了从哪儿copy后修改的了,好久了)
REPORT ZLM_DOWN_TAB.
***************************************************************
***REPNAME: 批量下载程序和表结构 ***
***************************************************************
TABLES:TADIR,TRDIRT,TSTC,DD03L,DD02L,DD04L,DD02T,DD03T,DD04T.
DATA: BEGIN OF YTADIR OCCURS 0.
DATA: END OF YTADIR.
DATA:PROG(72) TYPE C OCCURS 0 WITH HEADER LINE.
*表结构
DATA:BEGIN OF TAB OCCURS 0.
DATA:TEXT(40).
DATA:END OF TAB.
DATA:BEGIN OF T1 OCCURS 0,
DATA:BEGIN OF ITAB OCCURS 0,
DATA: YYNAME TYPE RLGRAP-FILENAME.
DATA: TT(500) OCCURS 0 WITH HEADER LINE.
DATA: RN(72).
DATA:FIELDS(40),
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME.
PARAMETERS:P_DIR(50) DEFAULT 'C:\'. "下载路径
PARAMETERS:STYPE(6) DEFAULT 'xls'.
SELECT-OPTIONS:TABNAME FOR DD02L-TABNAME. "下载表名称
SELECTION-SCREEN END OF BLOCK BLK1.
INITIALIZATION .
START-OF-SELECTION .
AT LINE-SELECTION.
END-OF-SELECTION.
*---------------------------------------------------------------------*
* FORM GET_TABLE_DATA *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM GET_TABLE_DATA.
ENDFORM.