[54128] in SAPr3-news
ABAP Toolprogramme / BDT Customizinganzeige
daemon@ATHENA.MIT.EDU (volker Korrmann)
Tue Apr 12 10:37:27 2005
To: sapr3-news@mit.edu
Date: 12 Apr 2005 07:37:17 -0700
From: volker_korrmann@web.de (volker Korrmann)
Message-ID: <cdd58c09.0504120637.47c9dfc5@posting.google.com>
* Hallo Leute,
*
*dieser Report / View zeigt einem das gesamte BDT Customizing (Bild ->
Feldgruppe) auf einem Blick an.
*
*Der Report gleicht zudem noch ab (Option AKTIV), ob die Einträge
angezeigt werden sollen, welche
*auch zu einem Dynprofeld passen, oder nur die zu denen eben kein
passendes Dynprofeld zu finden ist.
*
*Der View hat auch die ganzen schönen Langtexte zum Bild ..... im
Zugriff.
*
*Der View muß aber leider noch per Hand angelegt werden, was aber mit
Cut und paste geht!!!
*Für die Selektionstexte einfach überall die DDIC Texte verwenden!
*
*Viel Spaß damit!!!
*
*Gruß Volker Korrmann
*
*
** Hilfe zur Anlage des Views: zv_tbz3k
** Bitte wirklich alle Felder anlegen, da der View sonst nicht richtig
läuft!!!!!
*
*Tabellen des Views:
*
*TBZ3K
*TBZ3A
*TBZ3B
*TBZ3
*TBZ3T
*TBZ3I
*TBZ3C
*TBZ3D
*TBZ3H
*TBZ3E
*TBZ3F
*TBZ3S
*TBZ3W
*TBZ3X
*TBZ3R
*
*
*Join Bedingungen des Views
*
*TBZ3A CLIENT = TBZ3K CLIENT
*TBZ3A OBJAP = TBZ3K OBJAP
*TBZ3A DYNID = TBZ3K DYNID
*TBZ3A CLIENT = TBZ3B CLIENT
*TBZ3A OBJAP = TBZ3B OBJAP
*TBZ3A DYNID = TBZ3B DYNID
*TBZ3 CLIENT = TBZ3K CLIENT
*TBZ3 OBJAP = TBZ3K OBJAP
*TBZ3 VARNR = TBZ3K VARNR
*TBZ3 CLIENT = TBZ3T CLIENT
*TBZ3 OBJAP = TBZ3T OBJAP
*TBZ3 VARNR = TBZ3T VARNR
*TBZ3C CLIENT = TBZ3I CLIENT
*TBZ3C OBJAP = TBZ3I OBJAP
*TBZ3C ABSNR = TBZ3I ABSNR
*TBZ3C CLIENT = TBZ3D CLIENT
*TBZ3C OBJAP = TBZ3D OBJAP
*TBZ3C ABSNR = TBZ3D ABSNR
*TBZ3A CLIENT = TBZ3I CLIENT
*TBZ3A OBJAP = TBZ3I OBJAP
*TBZ3A DYNID = TBZ3I DYNID
*TBZ3A CLIENT = TBZ3B CLIENT
*TBZ3A OBJAP = TBZ3B OBJAP
*TBZ3A DYNID = TBZ3B DYNID
*TBZ3C CLIENT = TBZ3H CLIENT
*TBZ3C OBJAP = TBZ3H OBJAP
*TBZ3C ABSNR = TBZ3H ABSNR
*TBZ3C CLIENT = TBZ3D CLIENT
*TBZ3C OBJAP = TBZ3D OBJAP
*TBZ3C ABSNR = TBZ3D ABSNR
*TBZ3E CLIENT = TBZ3H CLIENT
*TBZ3E OBJAP = TBZ3H OBJAP
*TBZ3E SICHT = TBZ3H SICHT
*TBZ3E CLIENT = TBZ3F CLIENT
*TBZ3E OBJAP = TBZ3F OBJAP
*TBZ3E SICHT = TBZ3F SICHT
*TBZ3E CLIENT = TBZ3S CLIENT
*TBZ3E OBJAP = TBZ3S OBJAP
*TBZ3E SICHT = TBZ3S SICHT
*TBZ3E CLIENT = TBZ3F CLIENT
*TBZ3E OBJAP = TBZ3F OBJAP
*TBZ3E SICHT = TBZ3F SICHT
*TBZ3W CLIENT = TBZ3S CLIENT
*TBZ3W OBJAP = TBZ3S OBJAP
*TBZ3W FLDGR = TBZ3S FLDGR
*TBZ3W CLIENT = TBZ3X CLIENT
*TBZ3W OBJAP = TBZ3X OBJAP
*TBZ3W FLDGR = TBZ3X FLDGR
*TBZ3T SPRAS = TBZ3B SPRAS
*TBZ3T SPRAS = TBZ3F SPRAS
*TBZ3T SPRAS = TBZ3X SPRAS
*TBZ3T SPRAS = TBZ3D SPRAS
*TBZ3W CLIENT = TBZ3R CLIENT
*TBZ3W OBJAP = TBZ3R OBJAP
*TBZ3W FLDGR = TBZ3R FLDGR
*
*
*
*
*Viewfelder mit KEY Kennzeichen
*
*CLIENT TBZ3K CLIENT
*OBJAP TBZ3K OBJAP
*VARNR TBZ3K VARNR
*DYNID TBZ3K DYNID
*TXT50 TBZ3T TXT50
*DTX50 TBZ3B DTX50
*DTITL TBZ3B DTITL
*ABSNR TBZ3I ABSNR
*BEZABSCH TBZ3D BEZ50
*ATITL TBZ3D ATITL
*SICHT TBZ3H SICHT
*PRGNM TBZ3E PRGNM
*DYNNR TBZ3E DYNNR
*BEZ50_4 TBZ3F BEZ50
*BEZ50_5 TBZ3X BEZ50
*FLDGR_6 TBZ3W FLDGR
*TABNM TBZ3R TABNM
*FLDNM TBZ3R FLDNM
*FLDGR_7 TBZ3R FLDGR
*POSNR TBZ3K POSNR
*SPRAS TBZ3T SPRAS
*SPRAS2 TBZ3B SPRAS
*SPRAS3 TBZ3D SPRAS
*POSNR2 TBZ3I POSNR
*POSNR3 TBZ3H POSNR
*
*
*Restlichen Viewfelder
*
*DFTYP TBZ3E DFTYP
*FNPBC TBZ3E FNPBC
*FNPBO TBZ3E FNPBO
*FNPAI TBZ3E FNPAI
*APPLI TBZ3E APPLI
*XDATA TBZ3E XDATA
*XHEAD TBZ3E XHEAD
*TDOBJ TBZ3E TDOBJ
*FNTXT TBZ3E FNTXT
*XVSCIN TBZ3E XVSCIN
*XVSCDT TBZ3E XVSCDT
*XVNAB TBZ3E XVNAB
*SITYP TBZ3E SITYP
*SETID TBZ3E SETID
*SPRAS4 TBZ3F SPRAS
*FNAME TBZ3W FNAME
*XOBLIND TBZ3W XOBLIND
*X_CUSTAUS TBZ3W X_CUSTAUS
*XCNTRL TBZ3W XCNTRL
*XPLAN TBZ3W XPLAN
*XEXCL_OBLG TBZ3W XEXCL_OBLG
*XEXCL_OPTN TBZ3W XEXCL_OPTN
*XEXCL_SPPR TBZ3W XEXCL_SPPR
*XEXCL_DSPL TBZ3W XEXCL_DSPL
*SITYP_5 TBZ3W SITYP
*SPRAS_6 TBZ3X SPRAS
*XINPT TBZ3R XINPT
*XNOBL TBZ3R XNOBL
*INDEXNAME TBZ3R INDEXNAME
*INDEXPOS TBZ3R INDEXPOS
*
REPORT zbrtoo92 line-size 255.
TABLES: dd03l, ZV_TBZ3K.
Select-options: objap for zv_tbz3k-objap,
varnr for zv_tbz3k-varnr,
dynid for zv_tbz3k-dynid,
absnr for zv_tbz3k-absnr,
sicht for zv_tbz3k-sicht,
prgnm for zv_tbz3k-prgnm,
dynnr for zv_tbz3k-dynnr,
tabnm for zv_tbz3k-tabnm,
fldnm for zv_tbz3k-fldnm,
spras for zv_tbz3k-spras default sy-langu.
Parameters: dynpro as checkbox.
Parameters: Aktiv as checkbox default 'X'.
DATA: BEGIN OF it OCCURS 0.
INCLUDE STRUCTURE d020s.
DATA: END OF it.
DATA: BEGIN OF it3 OCCURS 0.
INCLUDE STRUCTURE d020s.
DATA: END OF it3.
DATA: it_3k type standard table of zv_tbz3k with header line.
DATA: begin of it_prg occurs 0,
prgnm like zv_tbz3k-prgnm,
end of it_prg.
DATA: t2(2).
DATA: a(150), b(150).
DATA: e_g TYPE STANDARD TABLE OF d022s WITH HEADER LINE.
DATA: f_g TYPE STANDARD TABLE OF d021s WITH HEADER LINE.
DATA: m_g TYPE STANDARD TABLE OF d023s WITH HEADER LINE.
DATA: it2 TYPE STANDARD TABLE OF d021s WITH HEADER LINE.
DATA: fldname(200) type c.
Start-of-selection.
select * from zv_tbz3k into table it_3k
where objap in objap and
varnr in varnr and
dynid in dynid and
absnr in absnr and
sicht in sicht and
prgnm in prgnm and
dynnr in dynnr and
tabnm in tabnm and
fldnm in fldnm and
spras in spras .
sort it_3k by prgnm dynnr tabnm fldnm.
loop at it_3k.
if it_3k-prgnm <> it_prg-prgnm.
it_prg-prgnm = it_3k-prgnm .
append it_prg.
endif.
if it_3k-dynnr+3(1) = ''.
shift it_3k-dynnr right deleting trailing space.
translate it_3k-dynnr using ' 0'.
modify it_3k.
endif.
endloop.
sort it_3k by prgnm dynnr tabnm fldnm.
sort it_prg.
delete ADJACENT DUPLICATES FROM it_prg.
refresh it.
refresh it3.
loop at it_prg.
CALL FUNCTION 'RS_SCREEN_LIST'
EXPORTING
dynnr = ''
progname = it_prg-prgnm
TABLES
dynpros = it3
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
insert lines of it3 into table it.
endloop.
loop at it_3k.
on change of it_3k-prgnm or it_3k-dynnr.
refresh f_g.
LOOP AT it where prog = it_3k-prgnm and
dnum = it_3k-dynnr.
if dynpro = 'X'.
FORMAT INTENSIFIED ON.
WRITE: / it-dnum, it-prog.
FORMAT RESET.
endif.
CALL FUNCTION 'RS_SCREEN_IMPORT'
EXPORTING
dynnr = it-dnum
progname = it-prog
wanted_mode = 'SHOW'
* IMPORTING
* ACTUAL_MODE =
* DYNPRO_TEXT =
* H_IMPORT =
* NEW_MASTER_LANGUAGE =
* EXTEND =
* WITH_ACTIVE_SOURCES =
* IS_GENERATED =
* IS_IN_WA =
* IS_IN_FOREIGN_WA =
* E_KORRNUM =
* E_DYNP_REL =
* E_DEVCLASS =
* E_TRANSPORT_KEY =
* E_MOD_LANGU =
TABLES
e_g = e_g
f_g = f_g
m_g = m_g
* HEADER_TEXTS =
* FIELD_TEXTS =
* SMODILOG_DYNP_G =
* SMODILOG_ABAP_G =
* SMODISRC_PROT_ABAP_G =
EXCEPTIONS
not_executed = 1
not_found = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
if dynpro = 'X'.
LOOP AT f_g.
IF f_g-fnam CS '-'.
SPLIT f_g-fnam AT '-' INTO a b.
TRANSLATE a USING '- '.
CLEAR dd03l.
* if not dtels[] is initial.
* SELECT * FROM dd03l UP TO 1 ROWS WHERE tabname = a AND
fieldname = b.
* ENDSELECT.
* endif.
* IF b IN fields AND dd03l-rollname IN dtels.
t2 = f_g-fmb1.
WRITE: / f_g-fnam(60),
t2,
f_g-type,
f_g-stxt.
if not dd03l-rollname is initial.
WRITE: dd03l-rollname.
endif.
* ENDIF.
ENDIF.
ENDLOOP.
endif.
endloop.
endon.
concatenate it_3k-tabnm '-'
it_3k-fldnm into fldname.
read table f_g with key fnam = fldname.
if sy-subrc <> 0.
if Aktiv = 'X'.
delete it_3k.
endif.
else.
if Aktiv = ' '.
delete it_3k.
endif.
endif.
ENDLOOP.
loop at it_3k.
write: /
it_3k-objap,
it_3k-varnr,
it_3k-dynid,
it_3k-absnr,
it_3k-sicht,
it_3k-FLDGR_6,
it_3k-prgnm,
it_3k-dynnr,
it_3k-tabnm,
it_3k-fldnm,
it_3k-spras.
endloop.