在下面两个地方放置变量,本程序适用。
1 查询的过滤器中:
2 查询结构的选择中
如果是计算型KF,那个没测试,有需要的时候再来更新(估计不会有需要了)
直接上代码吧,输入变量的技术名,就能返回引用此变量的所有查询了。
REPORT ZVAR_WHERE_USED.
TABLES:RSZELTDIR,RSZELTXREF.
DATA IT_RSZELTDIR TYPE TABLE OF RSZELTDIR.
DATA IT_RSZELTXREF TYPE TABLE OF RSZELTXREF.
DATA IT_RSZELTXREF1 TYPE TABLE OF RSZELTXREF.
DATA IT_RSZELTXREF2 TYPE TABLE OF RSZELTXREF.
DATA IT_RSRREPDIR TYPE TABLE OF RSRREPDIR.
DATA IT_RSZCOMPDIR TYPE TABLE OF RSZCOMPDIR WITH HEADER LINE.
PARAMETERS VARNAME LIKE RSZELTDIR-MAPNAME.
SELECT * INTO TABLE IT_RSZELTDIR
FROM RSZELTDIR
WHERE OBJVERS = 'A'
AND DEFTP = 'VAR'
AND MAPNAME = VARNAME .
IF IT_RSZELTDIR[] IS NOT INITIAL.
SELECT * INTO TABLE IT_RSZELTXREF
FROM RSZELTXREF
FOR ALL ENTRIES IN IT_RSZELTDIR[]
WHERE OBJVERS = 'A'
AND TELTUID = IT_RSZELTDIR-ELTUID.
ENDIF.
IF IT_RSZELTXREF[] IS NOT INITIAL.
SELECT * INTO TABLE IT_RSZELTXREF1
FROM RSZELTXREF
FOR ALL ENTRIES IN IT_RSZELTXREF[]
WHERE TELTUID = IT_RSZELTXREF-SELTUID
AND OBJVERS = 'A'.
SELECT * INTO TABLE IT_RSZCOMPDIR
FROM RSZCOMPDIR
FOR ALL ENTRIES IN IT_RSZELTXREF[]
WHERE COMPUID = IT_RSZELTXREF-SELTUID
AND OBJVERS = 'A'.
ENDIF.
IF IT_RSZELTXREF1[] IS NOT INITIAL.
SELECT * INTO TABLE IT_RSZELTXREF2
FROM RSZELTXREF
FOR ALL ENTRIES IN IT_RSZELTXREF1[]
WHERE TELTUID = IT_RSZELTXREF1-SELTUID
AND OBJVERS = 'A'.
SELECT * APPENDING TABLE IT_RSZCOMPDIR
FROM RSZCOMPDIR
FOR ALL ENTRIES IN IT_RSZELTXREF1[]
WHERE COMPUID = IT_RSZELTXREF1-SELTUID
AND OBJVERS = 'A'.
ENDIF.
IF IT_RSZELTXREF2[] IS NOT INITIAL.
SELECT * APPENDING TABLE IT_RSZCOMPDIR
FROM RSZCOMPDIR
FOR ALL ENTRIES IN IT_RSZELTXREF2[]
WHERE COMPUID = IT_RSZELTXREF2-SELTUID
AND OBJVERS = 'A'.
ENDIF.
SORT IT_RSZCOMPDIR BY COMPUID .
DELETE ADJACENT DUPLICATES FROM IT_RSZCOMPDIR COMPARING COMPUID .
LOOP AT IT_RSZCOMPDIR.
WRITE:/ IT_RSZCOMPDIR-COMPID.
ENDLOOP.