REPORT YGJH003 NO STANDARD PAGE HEADING LINE-SIZE 200 MESSAGE-ID WA.

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

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(150).
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:DOW AS CHECKBOX. "是否下载
PARAMETERS:P_DIR(50) DEFAULT 'D:SAP开发程序'. "下载路径
PARAMETERS:STYPE(6) DEFAULT 'TXT'.

PARAMETERS:R1 RADIOBUTTON GROUP R DEFAULT 'X',
R2 RADIOBUTTON GROUP R.

SELECTION-SCREEN END OF BLOCK BLK1.

SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME.
SELECT-OPTIONS:AUTHOR FOR TADIR-AUTHOR. "开发人
SELECT-OPTIONS:DEVCLASS FOR TADIR-DEVCLASS. "开发类
SELECT-OPTIONS:OBJ FOR TADIR-OBJ_NAME. "下载程序名称
SELECT-OPTIONS:TABNAME FOR DD02L-TABNAME. "下载表名称

SELECTION-SCREEN END OF BLOCK BLK2.

INITIALIZATION .

START-OF-SELECTION .
IF R1 = 'X'.
PERFORM GET_DATA.
ENDIF.

IF R2 = 'X'.
IF TABNAME IS INITIAL.
MESSAGE I009 WITH '请输入要下载的表名!'.
ELSE.
PERFORM GET_TABLE_DATA.
ENDIF.
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.
* SET PARAMETER ID 'RID' FIELD REP.
* CALL TRANSACTION 'SE38' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.

END-OF-SELECTION.

*---------------------------------------------------------------------*
* FORM GET_DATA *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM GET_DATA.
SELECT * INTO CORRESPONDING FIELDS OF TABLE YTADIR
FROM TADIR
INNER JOIN TRDIRT ON TADIR~OBJ_NAME = TRDIRT~NAME
WHERE OBJECT = 'PROG'
AND OBJ_NAME IN OBJ
AND DEVCLASS IN DEVCLASS
AND AUTHOR IN AUTHOR.
SORT YTADIR BY OBJ_NAME.

WRITE:/ '开发类','开发人','程序名称','程序标题'.
LOOP AT YTADIR.
IF DOW = 'X'.
REFRESH TT.
RN = YTADIR-OBJ_NAME.
READ REPORT RN INTO TT.

CONCATENATE P_DIR YTADIR-AUTHOR '_' YTADIR-OBJ_NAME
'_' YTADIR-TEXT '.' STYPE
INTO YYNAME.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = YYNAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TT.

IF SY-SUBRC = 0.
WRITE:/1(10) YTADIR-DEVCLASS,
(8) YTADIR-AUTHOR,
(15) YTADIR-OBJ_NAME,
(40) YTADIR-TEXT.

FORMAT COLOR 5.
WRITE: '已下载'.
FORMAT COLOR OFF.
ELSE.
WRITE:/ YTADIR-DEVCLASS,YTADIR-AUTHOR,YTADIR-OBJ_NAME,YTADIR-TEXT.
FORMAT COLOR 4.
WRITE: '无法下载'.
FORMAT COLOR OFF.

ENDIF.
ELSE.
WRITE:/ YTADIR-DEVCLASS,YTADIR-AUTHOR,YTADIR-OBJ_NAME,YTADIR-TEXT.
ENDIF.

ENDLOOP.

ENDFORM.

*---------------------------------------------------------------------*
* 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 '1'.

SELECT * INTO CORRESPONDING FIELDS OF TABLE TAB FROM DD03L AS A
WHERE A~TABNAME IN TABNAME.
SORT TAB BY TABNAME POSITION.

WRITE:/'字段名','关键字','数据元素','数据类型','长度','小数',
'表检查','参考表','参考字段','字段描述'.
ULINE.
LOOP AT T1.
REFRESH ITAB.
CLEAR YYNAME.

IF DOW = 'X'.
ITAB-FIELD = '字段名'.
ITAB-KEY = '关键字'.
ITAB-ELMENT = '数据元素'.
ITAB-TYPE = '数据类型'.
ITAB-LENG = '长度'.
ITAB-DECIMALS = '小数'.
ITAB-TEXT = '字段描述'.
ITAB-CHK = '表检查'.
ITAB-CAN = '参考表'.
ITAB-CFI = '参考字段'.
APPEND ITAB.
CLEAR ITAB.
ENDIF.
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 = '1'.
IF SY-SUBRC = 0.
ITAB-TEXT = DD04T-DDTEXT.
ELSE.
CLEAR ITAB-TEXT.
ENDIF.
ELSE.
SELECT SINGLE * FROM DD03T WHERE TABNAME = TAB-TABNAME
AND DDLANGUAGE = '1'
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.

IF DOW = 'X'.
CONCATENATE P_DIR T1-TABNAME '_' T1-DDTEXT '.' STYPE
INTO YYNAME.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = YYNAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = ITAB.

ELSE.
ULINE.
ENDIF.

ENDLOOP.
ENDFORM.

批量下载ABAP程序和表结构相关推荐

  1. 邮件附件批量下载小程序

    背景:最近一段在忙着和单位招聘相关的技术环节的事宜,前几天有个活,是把单位邮箱中的简历下载打印下来.这事看起来简单极了,事实上也很简单,但是上手一做,忙活了大半个中午,才下载打印了不到40份简历. 究 ...

  2. oracle批量生成索引,ORACLE迁移时批量导出索引、存储过程,表结构等

    [toc] ORACLE迁移中的一些经验(一)批量导出sequence 批量导出squence 在网上找到这样一条语句: select 'create sequence ' || sequence_n ...

  3. 如何提取小程序/APP/网页里图片视频,小程序APP素材抓取软件批量下载图片音频?

    通常我们在看到某一个好的小程序素材想下载来参考时?会思考以下问题: "怎么下载别人小程序里的图标呀?" "怎么抓取小程序的图片.图标之类的?" "怎么 ...

  4. 用Java批量下载人教网电子课本和教师用书

    手工下载人教网(www.pep.com.cn)的课本实在太麻烦,自己动手写了个批量下载小程序(java版), 一次下载一整本电子书,并且按顺序存放.代码需要 jsoup-1.7.2.jar 库支持, ...

  5. 批量下载SAP SE11表结构字段列表 LVC_FIELDCATALOG_MERGE

    批量下载SAP SE11表结构字段列表完整源代码分享 REPORT ZDZ020 NO STANDARD PAGE HEADING. TABLES: DD02L.CLASS LCL_APPLICATI ...

  6. YLAN_TRANSLATE ABAP程序批量翻译工具

    工具用途 ABAP程序批量翻译,根据程序名检索代码中的中文,自动更新代码为可翻译文本,批量下载上传翻译文本并写入传输请求. 即此工具可以把程序里写死的硬代码变成可翻译文本,如果需要自动call api ...

  7. oracle批量更新数据从另一表_全市场期货数据的批量下载和更新

    不管是研究套利策略,还是多因子策略,都需要多品种的历史数据,所以下面介绍一下,如何调用vnpy的数据下载模块,来下载全市场的期货数据. 批量下载 1)设置合约品种 首先,我们要先生成一个字典,来指定需 ...

  8. python批量下载b站_python 批量下载bilibili视频的gui程序

    运行效果: 完整代码: # !/usr/bin/python # -*- coding:utf-8 -*- # time: 2019/07/02--08:12 __author__ = 'Henry' ...

  9. python批量下载bilibili视频_python 批量下载bilibili视频的gui程序

    运行效果: 完整代码: # !/usr/bin/python # -*- coding:utf-8 -*- # time: 2019/07/02--08:12 __author__ = 'Henry' ...

最新文章

  1. 赵方庆 北京生科院Computational strategies in exploring circular RNAs 探索环状rna的计算策略
  2. 轻松 [2007年4月22日]
  3. Transformer t2t vit
  4. itk下FFTW的FFT和IFFT
  5. 歌手比赛系统c语言程序注释,C语言程序课程设计—歌手比赛系统(20页)-原创力文档...
  6. java 模板引擎_极简 Spring Boot 整合 Thymeleaf 页面模板
  7. UVA 12563 Jin Ge Jin Qu hao
  8. linux网络包截获,用C实现截获网络数据包
  9. TIM怎么设置禁止窗口抖动 TIM防抖设置技巧
  10. 计算机网络之物理层:6、传输介质
  11. ubuntu 14.04下练习lua
  12. inster into java_SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
  13. Tapestry 5 资料
  14. Matlab基础入门手册(第一章:入门)
  15. Zemax操作20--柱透镜
  16. 计算广告学涉及的学科与技术
  17. 通用计算机的通用性如何体现,计算机的通用性表现在哪方面
  18. 用python绘制叠加等边三角形_python 叠加等边三角形的绘制
  19. electron-rebuild 编译遇到的奇葩问题
  20. Nvjdc(诺兰)再续经典——诺兰方舟ARK

热门文章

  1. 《简明 PHP 教程》01 关于 PHP
  2. Hadoop最常用的工具(SQL on Hadoop):Hive
  3. 世界卫生日:大数据解读抑郁症群体
  4. 基于概率学的SLAM 学习
  5. 查询Linux系统最后重启时间的三个方法
  6. Learning Cocos2d-x for WP8(9)——Sprite到哪,我做主
  7. C#关机代码实例详解
  8. 亮剑:PHP,我的未来不是梦(5)
  9. cisco交换机命令大全(5)
  10. [TPYBoard - Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏