查询abap 程式应用到系统表table
*&---------------------------------------------------------------------*
*& Report ZMM_TEXT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMMR_TEXT4 NO STANDARD PAGE HEADING
MESSAGE-ID LINE-SIZE LINE-COUNT . TABLES:tstc,marc,mara,d010tab. DATA:BEGIN OF alv_data occurs ,
master LIKE d010tab-master,"程式名称
tcode LIKE tstc-tcode," tcode
tabname LIKE d010tab-tabname," 表格名称
structure(),"通透表
data(),"是否存在数据
END OF alv_data. DATA:BEGIN OF get_table occurs ,
tabname TYPE string,"表名
tabclass LIKE dd02vv-tabclass,"表格类型
END OF get_table. DATA: gs_layout TYPE slis_layout_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv ,"with header line.
wa_fieldcat TYPE slis_fieldcat_alv.
************************************************************************
* Includes Module
************************************************************************ ************************************************************************
* Selection Screen
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-b01.
PARAMETERS:p_master LIKE d010tab-master.
* p_code LIKE tstc-tcode ,
* p_table LIKE d010tab-tabname .
SELECTION-SCREEN END OF BLOCK b1. ************************************************************************
* Initialization
************************************************************************
INITIALIZATION. ************************************************************************
* At Selection Screen
************************************************************************
AT SELECTION-SCREEN. ************************************************************************
* At Selection Screen Output
************************************************************************
AT SELECTION-SCREEN OUTPUT. ************************************************************************
* Report Format
************************************************************************
TOP-OF-PAGE. END-OF-PAGE.
************************************************************************
* Main Process
************************************************************************
START-OF-SELECTION.
PERFORM get_data.
PERFORM get_col.
PERFORM alv_show.
END-OF-SELECTION. FORM get_data.
DATA: l_index LIKE sy-tabix,
l_num TYPE i.
gs_layout-colwidth_optimize = 'X'. *--------> remark 代码不能 inner join 未找到相应的原因 拆分以下sql如下
* SELECT tcode FROM tstc
** inner JOIN d010tab ON d010tab~master = tstc~pgmna "程式名称
* INTO CORRESPONDING FIELDS OF TABLE alv_data
* WHERE "d010tab~master EQ p_master AND
** tstc~pgmna EQ p_master
** PGMNA EQ p_master AND
* tcode EQ p_code.
** AND tcode EQ p_code
** AND tabname EQ p_table.
*--------> end remark SELECT * FROM d010tab
INNER JOIN tstc ON tstc~pgmna EQ d010tab~master "程式名称
INTO CORRESPONDING FIELDS OF TABLE alv_data
WHERE master EQ p_master. IF sy-subrc <> .
SELECT * FROM d010tab
INTO CORRESPONDING FIELDS OF TABLE alv_data
WHERE master EQ p_master.
ENDIF. SORT alv_data by tabname.
DELETE ADJACENT DUPLICATES FROM alv_data COMPARING tabname.
LOOP AT alv_data.
l_index = sy-tabix. CLEAR:get_table. SELECT SINGLE dd02vv~tabname
dd02vv~tabclass
FROM dd02vv
INNER JOIN dd02l ON dd02l~tabname EQ dd02vv~tabname
* INNER JOIN dd03l ON dd03l~tabname EQ dd02vv~tabname
INTO get_table
WHERE "dd02vv~tabclass IN ('TRANSP','CLUSTER','POOL') AND "透明表
dd02vv~contflag NE 'L' AND " 存储时资料的表格,空传送
dd02vv~as4local NOT IN ( 'N','T' ) AND " 未启用,临时版本
dd02vv~tabname EQ alv_data-tabname AND
is_gtt NE 'X' ." X全局临时表 N 没有全局临时表 IF get_table-tabclass EQ 'TRANSP' OR
get_table-tabclass EQ 'CLUSTER' OR
get_table-tabclass EQ 'POOL' .
alv_data-structure = 'Y'. " 为通透表
CLEAR:l_num.
SELECT COUNT(*) INTO l_num
UP TO ROWS
FROM (get_table-tabname).
IF sy-subrc = .
alv_data-data = 'Y'."存在数据
ELSE.
alv_data-data = 'N'."没有数据
ENDIF.
ELSEIF get_table-tabclass IS NOT INITIAL.
alv_data-structure = 'N'. "结构
alv_data-data = 'N'. "没有数据
ELSE.
DELETE alv_data INDEX l_index.
CONTINUE.
ENDIF.
MODIFY alv_data INDEX l_index.
ENDLOOP. SORT alv_data by structure DESCENDING data DESCENDING.
ENDFORM.
FORM GET_COL.
DATA: l_repid TYPE sy-repid,
l_inclname TYPE trdir-name,
l_idx LIKE sy-tabix. CLEAR: gt_fieldcat[], wa_fieldcat. l_repid = l_inclname = sy-cprog. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = L_REPID
I_INTERNAL_TABNAME = 'ALV_DATA'
I_INCLNAME = L_INCLNAME
CHANGING
CT_FIELDCAT = GT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE =
PROGRAM_ERROR =
OTHERS = . LOOP AT gt_fieldcat INTO wa_fieldcat.
l_idx = sy-tabix.
CASE wa_fieldcat-fieldname.
WHEN 'STRUCTURE'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '是否为通透表'.
wa_fieldcat-ddictxt = 'S'.
WHEN 'DATA'.
wa_fieldcat-seltext_s = wa_fieldcat-seltext_m =
wa_fieldcat-seltext_l = '是否有数据'.
wa_fieldcat-ddictxt = 'S'.
* WHEN 'LIST_NUM'.
* wa_fieldcat-no_out = 'X'. " NO_OUT 不显示
ENDCASE.
* CLEAR wa_fieldcat-key.
MODIFY gt_fieldcat FROM wa_fieldcat INDEX l_idx.
ENDLOOP.
ENDFORM. FORM ALV_SHOW. DATA: LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
I_SAVE = 'A'
TABLES
T_OUTTAB = ALV_DATA
EXCEPTIONS
PROGRAM_ERROR =
OTHERS = .
ENDFORM.
直接输入程式名称执行

执行结果如下,有通透表和结构,透明表有检查是否存在数据

如有bug请告知作者.或有更好的方法也请分享给广大网友.废话不多说,赶快下载试试吧!
查询abap 程式应用到系统表table的更多相关文章
- DB2 存储过程创建、系统表
前段时间做了数据表拆分,进行数据迁移,用到一些SQL命令,语句记录下来 db2look是DB2用于生成数据库DDL语句的一个工具: 命令:db2look -d DBname -a -e -p -i u ...
- oracle系统表查询
oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查询本 ...
- oracle 常用的系统表查询
(转自:http://blog.csdn.net/marshalchen/article/details/6552103) select * from user_tab_cols where colu ...
- 002_系统表查询(sysdatabases等)
002_系统表查询(sysdatabases等) --1.获取所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name --2.获取所有表 ...
- oracle系统表的查询
oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查 ...
- mysql中【update/Delete】update中无法用基于被更新表的子查询,You can't specify target table 'test1' for update in FROM clause.
关键词:mysql update,mysql delete update中无法用基于被更新表的子查询,You can't specify target table 'test1' for update ...
- SQL表关联赋值、系统表、表数据删除
1. 表与表的关联赋值(用于表与表之间有关联字段,数据互传) 双表关联赋值 UPDATE #B SET #B.D=#A.B from #B inner join #A on #B.C=#A.A 多表关 ...
- SQLSERVER系统视图,系统表,sys.sql_modules视图
SQLServer中提供了相当丰富的系统视图,能够从宏观到微观,从静态到动态反应数据库对象的存储结果.系统性能.系统等待事件等等.同时 也保留了与早期版本兼容性的视图,主要差别在于SQLServer2 ...
- 通过 Informix 系统表监控和优化数据库
Informix 数据库系统字典表简介 Informix 数据库服务器运行时的状态信息是数据库管理员 DBA 进行系统监控和优化的必需信息来源.Informix 的状态信息在内部以 2 种方式存在,如 ...
随机推荐
- A1113 | Integer Set Partition (25)
太简单了 #include <stdio.h> #include <memory.h> #include <math.h> #include <string& ...
- .NET 爬虫总结
前言 技术本身并无罪,罪恶本质在于人心,好比厨师手中的菜刀用来创造美味佳肴,而杀手手上的刀却用来创造无限的罪恶. 环境 win7 IIS 6.0 SQLserver2012 .NET 4.0 win ...
- 洛谷P2949题解
若想要深入学习反悔贪心,传送门. Description: 有 \(n\) 项工作,每 \(i\) 项工作有一个截止时间 \(D_i\) ,完成每项工作可以得到利润 \(P_i\) ,求最大可以得到多 ...
- linux 配置启动supervisor详细
参考自强学堂:https://code.ziqiangxuetang.com/django/django-nginx-deploy.html 例子中zqxt项目 安装 supervisor 软件包 ( ...
- win101903版本vmware 14虚拟机插usb设备卡死
win101903版本vmware 14虚拟机插usb设备卡死 问题的环境: win10,1903版本: vmware 14 版本: 安装的是ubuntu1604虚拟机: 当插入usb摄像头,并连接到 ...
- 试图从目录中执行 CGI、ISAPI 或其他可执行程序
首先来看我遇到问题时的情况,直接上图! 从上图的错误提示信息可以看出,是权限不够,被拒绝访问,开始我以为是我的程序的php程序的原因,但是其他站点没事啊,就对这个站点的权限重新分配了下,给了最高权 ...
- asp.net core mvc 里的application中的start,end等事件
我们以前在用asp.net mvc或者webform的时候,经常用用到Application里的事件 start,end等.我们在.net core 里也同样有类似的方法. 在Startup类里,Co ...
- java多线程(四)死锁
1.1. 什么是死锁 多线程以及多进程改善了系统资源的利用率并提高了系统的处理能力.然而,并发执行也带来了新的问题--死锁. 所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用, ...
- Intelij idea 中文字体渲染异常解决方法
当 Font 选择的字体无法渲染时,则尝试使用该选项所选择的字体渲染.
- 【GMT43智能液晶模块】例程二十二:USB_HID实验——双向数据传输
源代码下载链接: 链接:https://pan.baidu.com/s/1iSAUQnHoLI3WRPm-DimeSA 提取码:69vp 复制这段内容后打开百度网盘手机App,操作更方便哦 GMT43 ...