您的位置:首页 > 其它

SE15 下载表结构

2015-12-02 16:06 309 查看
之前下载表结构都是写代码,最后会附上代码

后来才只是se15可以下载表结构,当然更多功能自己去研究就行。

































自建下载程序代码:(忘了从哪儿copy后修改的了,好久了)

REPORT ZLM_DOWN_TAB.

***************************************************************
***REPNAME: 批量下载程序和表结构 ***

***************************************************************

TABLES:TADIR,TRDIRT,TSTC,DD03L,DD02L,DD04L,DD02T,DD03T,DD04T.
DATA: BEGIN OF YTADIR OCCURS 0.
     
  INCLUDE STRUCTURE TADIR.
     
  INCLUDE STRUCTURE TRDIRT.
DATA: END OF YTADIR.
DATA:PROG(72) TYPE C OCCURS 0 WITH HEADER LINE.
*表结构
DATA:BEGIN OF TAB OCCURS 0.
     
  INCLUDE STRUCTURE DD03L.
DATA:TEXT(40).
DATA:END OF TAB.
DATA:BEGIN OF T1 OCCURS 0,
     
 TABNAME LIKE DD02L-TABNAME,
     
 DDTEXT  LIKE DD02T-DDTEXT,
     END OF
T1.
DATA:BEGIN OF ITAB OCCURS 0,
     
 FIELD(15), "字段
     
 KEY(6), "关键字
     
 ELMENT(15), "字段类型
     
 TYPE(10), "数据类型
     
 LENG(8) , "长度
     
 DECIMALS(8) , "小数
     
 CHK(10), "表检查
     
 CAN(10), "参考表
     
 CFI(10), "参考字段
     
 TEXT(40), "字段描述
     END OF
ITAB.
DATA: YYNAME TYPE RLGRAP-FILENAME.
DATA: TT(500) OCCURS 0 WITH HEADER LINE.
DATA: RN(72).
DATA:FIELDS(40),
     LIN
     
 TYPE I,
   
 VAL(30),
   
 REP(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 .

  IF TABNAME IS INITIAL.
    MESSAGE
  'INPUT DB TAB NAME!' TYPE 'E'.
  ELSE.
    PERFORM
GET_TABLE_DATA.
  ENDIF.

AT LINE-SELECTION.
  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.

END-OF-SELECTION.

*---------------------------------------------------------------------*
* FORM GET_TABLE_DATA *

*---------------------------------------------------------------------*
* ........ *

*---------------------------------------------------------------------*
FORM GET_TABLE_DATA.
  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.
ENDFORM.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: