 |
 |
| SAP Tips: |
|
 |
 |

ABAP/JAVA DEVELOPER TIPS
Searching items in SAPscript forms
Angelo Hoppenbrouwer 01.23.2002
Rating: -4.02- (out of 5) Hall of fame tip of the month winner




|
With the standard tools it isn't possible to generate a where-used
list of tables, strings, standard texts etc.. in SAPscript forms.
Therefore I wrote the report ZSEARCH_ITEMS_IN_SAPSCRIPT.
Code
REPORT ZSEARCH_ITEMS_IN_SAPSCRIPT
NO STANDARD PAGE HEADING LINE-SIZE 208.
*=======================================================================
* Omschrijving : Searching different items (e.g. strings, field, text,
* program-names etc..) in sapscript forms
* Auteur : Angelo Hoppenbrouwer
* Datum : 07-11-2001
*======================================================================*
TABLES: STXL,
TLINE.
DATA BEGIN OF BDCDATA OCCURS 100.
INCLUDE STRUCTURE BDCDATA.
DATA END OF BDCDATA.
DATA BEGIN OF LINES OCCURS 100.
INCLUDE STRUCTURE TLINE.
DATA END OF LINES.
DATA: BEGIN OF STXL_ID,
TDOBJECT LIKE STXL-TDOBJECT,
TDNAME LIKE STXL-TDNAME,
TDID LIKE STXL-TDID,
TDSPRAS LIKE STXL-TDSPRAS,
END OF STXL_ID.
DATA: BEGIN OF KOP,
TXT(208),
END OF KOP.
DATA: I_STXL LIKE STXL OCCURS 10 WITH HEADER LINE,
I_TAB(40) OCCURS 10 WITH HEADER LINE,
CLIENT LIKE SY-MANDT,
H_FIELD(40),
H_VALUE(40),
H_LINE LIKE SY-LINNO,
H_OFFSET TYPE I,
H_REGEL(70) TYPE C,
H_TEL TYPE I,
H_TOT TYPE I,
H_POS TYPE I,
H_POS1 TYPE I,
H_POS2 TYPE I,
H_LEN TYPE I,
VORIGE_TDSPRAS_TDNAME(71) TYPE C,
HUIDIGE_TDSPRAS_TDNAME(71) TYPE C,
P_NAAM LIKE RSEUX-CP_VALUE,
H_TXT1(40),
H_TXT2(40),
H_WINDOW(132),
H_STRING(40),
H_STRING1(40),
H_STRING2 LIKE H_STRING1,
H_LINE1 LIKE LINES-TDLINE,
H_LINE2 LIKE H_LINE1.
SELECTION-SCREEN BEGIN OF BLOCK ZOEK_ITEM
WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM1 RADIOBUTTON GROUP ITEM DEFAULT 'X'.
SELECTION-SCREEN COMMENT 4(16) TEXT-011.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM2 RADIOBUTTON GROUP ITEM.
SELECTION-SCREEN COMMENT 4(16) TEXT-012.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM3 RADIOBUTTON GROUP ITEM.
SELECTION-SCREEN COMMENT 4(16) TEXT-013.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM4 RADIOBUTTON GROUP ITEM.
SELECTION-SCREEN COMMENT 4(16) TEXT-014.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: PA_ITEM5 RADIOBUTTON GROUP ITEM.
SELECTION-SCREEN COMMENT 4(16) TEXT-015.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK ZOEK_ITEM.
SELECTION-SCREEN BEGIN OF BLOCK ITEM_WAARDE
WITH FRAME TITLE TEXT-002.
PARAMETERS: PA_STR(40) OBLIGATORY,
PA_MANDT LIKE SY-MANDT DEFAULT SY-MANDT.
SELECTION-SCREEN END OF BLOCK ITEM_WAARDE.
SELECTION-SCREEN BEGIN OF BLOCK FORM
WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS: SO_NAME FOR STXL-TDNAME NO INTERVALS
DEFAULT 'Z*'
OPTION CP,
SO_SPRAS FOR STXL-TDSPRAS NO INTERVALS
DEFAULT 'NL'.
SELECTION-SCREEN END OF BLOCK FORM.
START-OF-SELECTION.
CLIENT = SY-MANDT.
CLEAR: H_STRING1, H_STRING2.
IF NOT PA_ITEM1 IS INITIAL. " Standaardtekst
CONCATENATE 'include' PA_STR INTO H_STRING1 SEPARATED BY ' '.
H_TXT1 = 'standard text'.
ENDIF.
IF NOT PA_ITEM2 IS INITIAL. " Tabel (+veld)
CONCATENATE '&' PA_STR INTO H_STRING1.
H_TXT1 = 'table (+field)'.
ENDIF.
IF NOT PA_ITEM3 IS INITIAL. " Hulpveld
CONCATENATE '&' PA_STR '&' INTO H_STRING1.
H_TXT1 = 'variable'.
ENDIF.
IF NOT PA_ITEM4 IS INITIAL. " Programma
CONCATENATE 'in program' PA_STR INTO H_STRING1 SEPARATED BY ' '.
H_TXT1 = 'program'.
ENDIF.
IF NOT PA_ITEM5 IS INITIAL. " String
H_STRING1 = PA_STR.
H_TXT1 = 'string'.
ENDIF.
CONCATENATE '"' PA_STR '"' INTO H_TXT2.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
CONCATENATE 'Use of'
H_TXT1
H_TXT2
'in forms'
INTO KOP SEPARATED BY ' '.
WRITE: / KOP.
ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: / 'Clt',
005 'Form',
036 'Lang',
041(030) 'Window',
072(002) 'Fm',
077(132) 'Row'.
ULINE.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
STXL_ID-TDOBJECT = 'FORM'.
STXL_ID-TDID = 'TXT'.
SELECT * FROM STXL CLIENT SPECIFIED
WHERE MANDT = PA_MANDT
AND RELID EQ 'TX'
AND TDOBJECT EQ 'FORM'
AND TDID EQ 'TXT'
AND TDNAME IN SO_NAME
AND TDSPRAS IN SO_SPRAS.
MOVE-CORRESPONDING STXL TO I_STXL.
APPEND I_STXL.
ENDSELECT.
SORT I_STXL.
CLEAR HUIDIGE_TDSPRAS_TDNAME.
CLEAR VORIGE_TDSPRAS_TDNAME.
LOOP AT I_STXL.
STXL_ID-TDNAME = I_STXL-TDNAME.
STXL_ID-TDSPRAS = I_STXL-TDSPRAS.
STXL_ID-TDID = I_STXL-TDID.
CONCATENATE STXL_ID-TDSPRAS STXL_ID-TDNAME
INTO HUIDIGE_TDSPRAS_TDNAME.
IF HUIDIGE_TDSPRAS_TDNAME <> VORIGE_TDSPRAS_TDNAME.
CONCATENATE STXL_ID-TDSPRAS STXL_ID-TDNAME
INTO VORIGE_TDSPRAS_TDNAME.
REFRESH LINES.
CLEAR H_TEL.
IMPORT TLINE TO LINES FROM DATABASE STXL(TX)
CLIENT I_STXL-MANDT
ID STXL_ID.
LOOP AT LINES.
IF LINES-TDFORMAT = '/W'.
H_WINDOW = LINES-TDLINE.
ENDIF.
SEARCH LINES-TDLINE FOR H_STRING1.
IF SY-SUBRC <> 0 AND H_STRING2 <> SPACE.
SEARCH LINES-TDLINE FOR H_STRING2.
ENDIF.
IF SY-SUBRC EQ 0 AND LINES-TDFORMAT NE '/*'.
H_POS = SY-FDPOS.
IF NOT PA_ITEM1 IS INITIAL.
ADD 8 TO H_POS.
ENDIF.
IF NOT PA_ITEM4 IS INITIAL.
ADD 11 TO H_POS.
ENDIF.
H_LEN = STRLEN( PA_STR ).
H_STRING = LINES-TDLINE+H_POS(H_LEN).
IF H_TEL EQ 0.
HIDE I_STXL-MANDT.
HIDE STXL-TDNAME.
HIDE I_STXL-TDSPRAS.
WRITE: /001 I_STXL-MANDT,
005 STXL-TDNAME HOTSPOT ON,
036 I_STXL-TDSPRAS,
041 H_WINDOW(30).
CLEAR STXL-TDNAME.
ELSE.
WRITE: /041 H_WINDOW(30).
ENDIF.
WRITE: 072 LINES-TDFORMAT.
H_POS1 = 77 + H_POS.
H_POS2 = H_POS + STRLEN( H_STRING ).
IF H_POS EQ 0.
CLEAR H_LINE1.
ELSE.
H_LINE1 = LINES-TDLINE(H_POS).
ENDIF.
H_LINE2 = LINES-TDLINE+H_POS2.
H_POS2 = H_POS2 + 77.
WRITE: 077 H_LINE1,
AT H_POS1 H_STRING COLOR COL_HEADING,
AT H_POS2 H_LINE2.
H_TEL = H_TEL + 1.
H_TOT = H_TOT + 1.
ENDIF.
ENDLOOP.
IF NOT H_TEL IS INITIAL.
ULINE.
ENDIF.
ENDIF.
ENDLOOP.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
SKIP 1.
WRITE: / 'Number of hits:', H_TOT.
AT LINE-SELECTION.
CHECK STXL-TDNAME <> SPACE.
GET CURSOR FIELD H_FIELD
VALUE H_VALUE
LINE H_LINE
OFFSET H_OFFSET.
CHECK H_FIELD = 'STXL-TDNAME'.
CHECK I_STXL-MANDT = SY-MANDT.
REFRESH BDCDATA.
PERFORM BDC_DYNPRO USING 'SAPMSSCF' '1102'.
PERFORM BDC_FIELD USING 'RSSCF-TDFORM' STXL-TDNAME.
PERFORM BDC_FIELD USING 'RSSCF-TDSPRAS' I_STXL-TDSPRAS.
CALL TRANSACTION 'SE71' USING BDCDATA.
CLEAR STXL-TDNAME.
*&---------------------------------------------------------------------*
*& Form BDC_DYNPRO
*&---------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. " BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form BDC_FIELD
*&---------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM. " BDC_FIELD
*******************************************************
Comment Angelo:
Selection-texts:
PA_ITEM1
PA_ITEM2
PA_ITEM3
PA_ITEM4
PA_ITEM5
PA_MANDT Client
PA_STR Search-item
SO_NAME Form
SO_SPRAS Language
Text-symbols:
001 Selection search-item
002 Value
003 Selection form(s)
011 Standard text
012 Table (+ field)
013 Variable
014 Program
015 String
 |

|
|
 |
|
 |
 |
 |
 |
| TechTarget provides enterprise IT professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective IT purchase decisions and managing their organizations' IT projects - with its network of . |
|
| | |
All Rights Reserved, , TechTarget |
SearchSAP.com is a search service provided by TechTarget and is completely independent of and not affiliated with SAP AG.
|
|
|
|
|