Hallo,
damit kann man einen bestimmten Text in allen Formularen durchsuchen...
Es geht aber nur, wenn der Text "hart" inkludiert wird, nicht wenn er über eine Variable gezogen wird, klar!
(Hiermit kann man eigentlich nach einem beliebigen SAPScript-Kommando '/:' in den Formularen suchen)
Gruß,
sy-tabix
*=======================================================================
* Datendeklarationen
*=======================================================================
DATA: gt_stxh TYPE TABLE OF stxh,
gs_stxh TYPE stxh,
gt_lines TYPE TABLE OF tline,
BEGIN OF gs_stxl_id,
tdobject LIKE stxl-tdobject,
tdname LIKE stxl-tdname,
tdid LIKE stxl-tdid,
tdspras LIKE stxl-tdspras,
END OF gs_stxl_id.
*=======================================================================
* Selektionsbildschirm
*=======================================================================
PARAMETERS:
p_tname TYPE tdobname OBLIGATORY. "obligatorisch, weil sonst sinnlos
*=======================================================================
* START-OF-SELECTION.
*=======================================================================
START-OF-SELECTION.
* Alle Formularköpfe (in Sprache DE und aktuellen Mandant) einlesen
SELECT * FROM stxh INTO TABLE gt_stxh
WHERE tdobject = 'FORM' AND
tdid = 'TXT' AND
tdspras = 'DE'.
LOOP AT gt_stxh INTO gs_stxh.
REFRESH gt_lines.
MOVE-CORRESPONDING gs_stxh TO gs_stxl_id.
* Formularinhalt (aus Datencluster) lesen
IMPORT tline TO gt_lines
FROM DATABASE stxl(tx)
CLIENT sy-mandt
ID gs_stxl_id.
* Im Formular nach dem eingegebenen String suchen
LOOP AT gt_lines TRANSPORTING NO FIELDS
WHERE tdformat = '/:' "SAPScript-Kommando
AND tdline CS p_tname.
EXIT.
ENDLOOP.
CHECK sy-subrc = 0.
WRITE: / 'Text', p_tname(30), 'im Formular', gs_stxh-tdname(16),
'gefunden!'.
ENDLOOP.