‎2007 Jun 13 11:13 AM
Hi,
I am gettinf less ABAP performance in SE30 in my code.
So pls tell me what to do in my programme.
Here is my code.
TABLES:marc, "Plant Data for Material
makt, "Material Descriptions
mara, "General Material Data
ekko, "Purchasing Document Header
EKPO, "Purchasing Document Item
t604, "Foreign Trade: Commodity Code
lfa1, "Vendor Master
t023t, "Material Group Descriptions
t001w, "Plants/Branches
cdpos, "Change document items
cdhdr. "Change document header
TYPE-POOLS: slis.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
s_werks FOR marc-werks, "Plant
s_spras FOR makt-spras, "Language Key
s_matnr FOR mara-matnr, "Material Number
s_ersda FOR mara-ersda, "Material Creation Date
s_vpsta FOR mara-vpsta, "Maintenance Status
s_matkl FOR mara-matkl, "Material Group
s_land1 FOR t604-land1, "Country Key
s_stawn FOR marc-stawn, "Commodity Code
s_wgbez FOR t023t-wgbez, "Text: Material group
s_ebeln FOR ekko-ebeln, "Purchase order
s_aedat FOR ekko-ebeln, "Creation Date
s_lifnr FOR ekko-lifnr. "Vendor
SELECTION-SCREEN END OF BLOCK block1.
*******sandeep for list view.********
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-019.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK 2.
*******sandeep for list view.********
*************Declaration*************
DATA: BEGIN OF itab_mara OCCURS 0,
matnr LIKE mara-matnr,
mfrpn LIKE mara-mfrpn,
mfrnr LIKE mara-mfrnr,
matkl LIKE mara-matkl,
werks LIKE marc-werks,
stawn LIKE marc-stawn,
mtver LIKE marc-mtver,
herkl LIKE marc-herkl,
maktx LIKE makt-maktx,
END OF itab_mara.
DATA: BEGIN OF itab_makt OCCURS 0,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
END OF itab_makt.
DATA: BEGIN OF itab_mara1 OCCURS 0,
objectid LIKE cdpos-objectid,
mfrpn LIKE mara-mfrpn,
mfrnr LIKE mara-mfrnr,
matkl LIKE mara-matkl,
werks LIKE marc-werks,
stawn LIKE marc-stawn,
mtver LIKE marc-mtver,
herkl LIKE marc-herkl,
maktx LIKE makt-maktx,
END OF itab_mara1.
DATA: BEGIN OF itab_t023t OCCURS 0,
matkl LIKE t023t-matkl,
wgbez LIKE t023t-wgbez,
END OF itab_t023t.
*DATA: ITAB_EKPO TYPE STANDARD TABLE OF EKPO WITH HEADER LINE.
DATA: BEGIN OF itab_ekpo OCCURS 0,
ebeln LIKE ekpo-ebeln,
matnr LIKE ekpo-matnr,
lifnr LIKE ekko-lifnr,
END OF itab_ekpo.
DATA: BEGIN OF itab_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
END OF itab_lfa1.
DATA: BEGIN OF itab_t604 OCCURS 0,
stawn LIKE t604t-stawn,
text1 LIKE T604T-text1,
END OF itab_t604.
DATA: BEGIN OF itab_cdpos OCCURS 0,
objectclas LIKE cdpos-objectclas,
objectid TYPE cdpos-objectid,
changenr TYPE cdpos-CHANGENR,
tabkey type cdpos-tabkey,
END OF itab_cdpos.
DATA: BEGIN OF itab_cdhdr OCCURS 0,
changenr LIKE cdhdr-changenr,
username LIKE cdhdr-username,
udate LIKE cdhdr-udate,
OBJECTID like CDHDR-OBJECTID,
END OF itab_cdhdr.
DATA: BEGIN OF itab_final OCCURS 0,
werks LIKE marc-werks,
stawn LIKE marc-stawn,
mtver LIKE marc-mtver,
herkl LIKE marc-herkl,
matnr LIKE mara-matnr,
mfrpn LIKE mara-mfrpn,
mfrnr LIKE mara-mfrnr,
matkl LIKE mara-matkl,
ebeln LIKE ekpo-ebeln,
lifnr LIKE ekko-lifnr,
name1 LIKE lfa1-name1,
VENDORNAME LIKE lfa1-name1,
stawn LIKE t604-stawn,
text1 LIKE T604T-text1,
maktx LIKE makt-maktx,
wgbez LIKE t023t-wgbez,
changenr LIKE cdhdr-changenr,
username LIKE cdhdr-username,
udate LIKE cdhdr-udate,
END OF itab_final.
*
**DATA: wa_marc LIKE itab_marc.
*DATA: wa_mara LIKE itab_mara.
*DATA: wa_ekko LIKE itab_ekko.
*DATA: wa_ekpo LIKE itab_ekpo.
*DATA: wa_lfa1 LIKE itab_lfa1.
*DATA: wa_t604 LIKE itab_t604.
**DATA: wa_makt LIKE itab_makt.
DATA:ve_ausw TYPE c,
ve_lines TYPE i.
DATA: fieldcat TYPE slis_t_fieldcat_alv,
fieldcat_ln LIKE LINE OF fieldcat.
DATA : col_pos TYPE i.
DATA: G_REPID LIKE SY-REPID,
G_SAVE(1) TYPE C,
GX_VARIANT LIKE DISVARIANT,
G_VARIANT LIKE DISVARIANT,
G_EXIT(1) TYPE C.
********INITIALIZATION***************
INITIALIZATION.
G_REPID = SY-REPID.
G_SAVE = 'A'.
************SANDEEP LIST VIEWER*************
PERFORM VARIANT_INIT.
Get default variant
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
*************VALIDATION************
AT SELECTION-SCREEN ON s_werks.
IF s_werks-low <> space.
SELECT SINGLE * from T001W
WHERE werks = s_werks-low.
IF sy-subrc <> 0.
MESSAGE e011 WITH 'Invalid Plant Code'
s_werks-low '' ''.
ENDIF.
ENDIF.
IF s_werks-high <> space.
SELECT SINGLE * from T001W
WHERE werks = s_werks-high.
IF sy-subrc <> 0.
MESSAGE e011 WITH 'Invalid Plant Code'
s_werks-high '' ''.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON s_matnr.
IF s_matnr-low <> space.
SELECT single * from MARA
WHERE matnr = s_matnr-low.
IF sy-subrc <> 0.
MESSAGE e011 WITH 'Invalid Material number'
s_matnr '' ''.
ENDIF.
ENDIF.
IF s_matnr-high <> space.
SELECT single * from MARA
WHERE matnr = s_matnr-high.
IF sy-subrc <> 0.
MESSAGE e011 WITH 'Invalid Material number'
s_matnr-high '' ''.
ENDIF.
ENDIF.
START-OF-SELECTION.
PERFORM extract_data.
PERFORM extract_data_t023t using itab_mara.
PERFORM extract_data_ekpo using itab_mara.
PERFORM extract_data_lfa1 using itab_mara.
PERFORM extract_data_t604 using itab_mara.
PERFORM extract_data_cdhdr.
END-OF-SELECTION.
PERFORM build_print.
PERFORM build_fieldcat.
PERFORM start_list_viewer.
*********SANDEEP LIST VIEWER*********
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.
********** END SANDEEP LIST VIEWER**********
----
FORM extract_data *
----
........ *
----
FORM extract_data.
*
SELECT amatnr amfrpn amfrnr amatkl
bwerks bstawn bmtver bherkl
c~maktx
INTO TABLE itab_mara
FROM ( mara
as a
INNER JOIN marc as b
on amatnr = bmatnr )
INNER JOIN makt as c
on amatnr = cmatnr
WHERE a~matnr IN s_matnr
AND a~matkl IN s_matkl
AND a~ersda IN s_ersda
AND b~werks IN s_werks
AND b~stawn IN s_stawn
AND c~spras IN s_spras.
*
clear: itab_mara.
SELECT amatnr amfrpn amfrnr amatkl
bwerks bstawn bmtver bherkl
c~maktx
INTO TABLE itab_mara
FROM mara
as a
INNER JOIN marc as b
on amatnr = bmatnr
INNER JOIN makt as c
on amatnr = bmatnr
WHERE a~matnr IN s_matnr
AND a~matkl IN s_matkl
AND a~ersda IN s_ersda
AND b~werks IN s_werks
AND b~stawn IN s_stawn.
AND c~spras IN s_spras.
IF SY-SUBRC = 0.
SORT itab_mara BY matnr.
ENDIF.
SELECT matnr maktx
INTO TABLE itab_makt
FROM makt
FOR ALL ENTRIES IN itab_mara
WHERE matnr = itab_mara-matnr
AND spras IN s_spras.
IF SY-SUBRC = 0.
SORT itab_makt BY maktx.
ENDIF.
ENDFORM.
&----
*& Form extract_data_t023t
&----
text
----
-->P_ITAB_MARA text
----
FORM extract_data_t023t USING P_ITAB_MARA.
*IF NOT itab_mara IS INITIAL.
SELECT matkl wgbez
INTO table itab_t023t
FROM t023t
FOR ALL ENTRIES IN itab_mara
WHERE spras IN s_spras
AND matkl = itab_mara-matkl
AND wgbez IN s_wgbez.
*ENDIF.
IF SY-SUBRC = 0.
SORT itab_t023t BY matkl.
ENDIF.
ENDFORM. " extract_data_t023t
&----
*& Form extract_data_ekpo
&----
text
----
-->P_ITAB_MARA text
----
FORM extract_data_ekpo USING P_ITAB_MARA.
*IF NOT itab_mara IS INITIAL.
SELECT aebeln amatnr b~lifnr
INTO TABLE itab_ekpo
from ekpo as a
INNER JOIN ekko as b
ON aebeln = bebeln
FOR ALL ENTRIES IN itab_mara
WHERE a~matnr = itab_mara-matnr
AND b~lifnr IN s_lifnr
AND a~ebeln IN s_ebeln.
ENDIF.
ENDFORM. " extract_data_ekpo
&----
*& Form extract_data_lfa1
&----
text
----
-->P_ITAB_MARA text
----
FORM extract_data_lfa1 USING P_ITAB_MARA.
*IF NOT itab_mara IS INITIAL.
SELECT lifnr name1
INTO table itab_lfa1
FROM lfa1
FOR ALL ENTRIES IN itab_mara
WHERE lifnr = itab_mara-mfrnr.
SELECT lifnr name1
appending table itab_lfa1
FROM LFA1
FOR ALL ENTRIES IN itab_ekpo
WHERE lifnr = itab_ekpo-lifnr.
IF SY-SUBRC = 0.
SORT itab_lfa1 BY lifnr.
ENDIF.
*ENDIF.
ENDFORM. " extract_data_lfa1
sort itab_ekko.
*
&----
*& Form extract_data_t604
&----
text
----
-->P_ITAB_MARA text
----
FORM extract_data_t604 USING P_ITAB_MARA.
*IF NOT itab_mara IS INITIAL.
SELECT stawn text1
INTO table itab_t604
FROM t604t
FOR ALL ENTRIES IN itab_mara
WHERE stawn = itab_mara-stawn
AND spras IN S_spras
AND land1 IN s_land1.
*ENDIF.
IF SY-SUBRC = 0.
SORT itab_t604 BY stawn.
ENDIF.
ENDFORM. " extract_data_t604
SELECT maktx
INTO table itab_makt
FROM makt
FOR ALL ENTRIES IN itab_mara
WHERE matnr = itab_mara-matnr.
*loop at itab_mara.
*DATA: field(10) type c.
REPLACE itab_mara-matnr with ' ' INTO field.
field1 = CONDENSE field NO-GAPS.
ENDLOOP.
*
&----
*& Form extract_data_cdhdr
&----
text
----
--> p1 text
<-- p2 text
----
FORM extract_data_cdhdr.
*
itab_mara1[] = itab_mara[].
SELECT objectclas objectid changenr tabkey
INTO TABLE itab_cdpos
from cdpos
FOR ALL ENTRIES IN itab_mara1
WHERE objectid IN S_MATNR " itab_mara1-objectid
AND TABNAME = 'MARC'
AND FNAME = 'STAWN'.
AND OBJECTID IN S_MATNR.
if not s_werks[] is initial.
Delete itab_cdpos where NOT tabkey+21(4) IN s_werks.
endif.
IF NOT itab_cdpos[] IS INITIAL.
SELECT changenr username udate OBJECTID
INTO TABLE itab_cdhdr
FROM cdhdr
FOR ALL ENTRIES IN itab_cdpos
WHERE changenr = itab_cdpos-changenr
AND OBJECTCLAS = itab_cdpos-objectclas
AND objectid = itab_cdpos-objectid.
if sy-subrc eq 0.
sort itab_cdhdr descending by udate.
SORT itab_cdhdr BY objectid.
endif.
ENDIF.
ENDFORM. " extract_data_cdhdr
----
FORM build_print *
----
........ *
----
FORM build_print.
LOOP AT itab_ekpo."into wa_mara.
itab_final-ebeln = itab_ekpo-ebeln.
itab_final-lifnr = itab_ekpo-lifnr.
*loop at itab_ekpo.
Read table itab_mara with key matnr = itab_ekpo-matnr.
itab_final-matnr = itab_mara-matnr.
itab_final-mfrpn = itab_mara-mfrpn.
itab_final-mfrnr = itab_mara-mfrnr.
itab_final-matkl = itab_mara-matkl.
itab_final-werks = itab_mara-werks.
itab_final-stawn = itab_mara-stawn.
itab_final-mtver = itab_mara-mtver.
itab_final-herkl = itab_mara-herkl.
itab_final-maktx = itab_mara-maktx.
READ TABLE itab_makt with key matnr = itab_mara-matnr BINARY SEARCH.
itab_final-maktx = itab_makt-maktx.
CLEAR:itab_makt.
READ TABLE itab_t023t with key matkl = itab_mara-matkl BINARY SEARCH.
itab_final-wgbez = itab_t023t-wgbez.
CLEAR:itab_t023t.
SORT itab_ekpo BY matnr.
*READ TABLE itab_ekpo with key matnr = itab_final-matnr BINARY SEARCH.
itab_final-ebeln = itab_ekpo-ebeln.
itab_final-lifnr = itab_ekpo-lifnr.
CLEAR: itab_ekpo.
READ TABLE itab_ekko with key ebeln = itab_ekpo-ebeln.
itab_final-lifnr = itab_ekko-lifnr.
READ TABLE itab_lfa1 with key lifnr = itab_mara-mfrnr BINARY SEARCH.
itab_final-name1 = itab_lfa1-name1.
*SORT itab_lfa1 BY lifnr.
READ TABLE itab_lfa1 with key lifnr = itab_ekpo-lifnr BINARY SEARCH.
itab_final-lifnr = itab_lfa1-lifnr.
itab_final-vendorname = itab_lfa1-name1.
CLEAR: itab_ekpo.
clear itab_lfa1.
READ TABLE itab_t604 WITH KEY stawn = itab_mara-stawn BINARY SEARCH.
itab_final-text1 = ITAB_t604-text1.
LOOP AT ITAB_CDPOS.
*SORT itab_cdhdr BY objectid.
READ TABLE itab_cdhdr WITH KEY OBJECTID = itab_MARA-MATNR BINARY SEARCH.
itab_final-username = itab_cdhdr-username.
itab_final-udate = itab_cdhdr-udate.
APPEND itab_final.
CLEAR:itab_mara.
CLEAR itab_cdhdr.
CLEAR:itab_final.
CLEAR: itab_t604.
ENDLOOP.
ENDFORM.
----
FORM start_list_viewer *
----
........ *
----
FORM start_list_viewer.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
IT_FIELDCAT = fieldcat
I_DEFAULT = 'X'
I_SAVE = G_SAVE
IT_EVENTS = itab_eventcat
IS_VARIANT = G_VARIANT
TABLES
T_OUTTAB = itab_final
EXCEPTIONS
PROGRAM_ERROR = 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.
ENDFORM.
----
FORM build_fieldcat *
----
........ *
----
FORM build_fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARC'.
fieldcat_ln-ref_fieldname = 'WERKS'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'WERKS'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-003.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 04.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARA'.
fieldcat_ln-ref_fieldname = 'MATNR'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'MATNR'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-004.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 18.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MAKT'.
fieldcat_ln-ref_fieldname = 'MAKTX'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'MAKTX'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-005.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 40.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARA'.
fieldcat_ln-ref_fieldname = 'MATKL'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'MATKL'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-006.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 09.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'T023T'.
fieldcat_ln-ref_fieldname = 'WGBEZ'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'WGBEZ'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-007.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 20.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARA'.
fieldcat_ln-ref_fieldname = 'MFRPN'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'MFRPN'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-008.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 40.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARA'.
fieldcat_ln-ref_fieldname = 'MFRNR'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'MFRNR'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-009.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 10.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'LFA1'.
fieldcat_ln-ref_fieldname = 'NAME1'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'NAME1'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-010.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 35.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARC'.
fieldcat_ln-ref_fieldname = 'MTVER'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'MTVER'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-011.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 04.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'EKPO'.
fieldcat_ln-ref_fieldname = 'EBELN'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'EBELN'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-012.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 10.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'LFA1'.
fieldcat_ln-ref_fieldname = 'VENDORNAME'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'VENDORNAME'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-020.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 35.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'EKKO'.
fieldcat_ln-ref_fieldname = 'LIFNR'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'LIFNR'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-013.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 10.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARC'.
fieldcat_ln-ref_fieldname = 'HERKL'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'HERKL'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-014.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 3.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'CDHDR'.
fieldcat_ln-ref_fieldname = 'USERNAME'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'USERNAME'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-017.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 12.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'CDHDR'.
fieldcat_ln-ref_fieldname = 'UDATE'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'UDATE'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-018.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 08.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'MARC'.
fieldcat_ln-ref_fieldname = 'STAWN'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'STAWN'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-015.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 17.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
fieldcat_ln-ref_tabname = 'T604T'.
fieldcat_ln-ref_fieldname = 'TEXT1'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'TEXT1'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = text-016.
fieldcat_ln-ddictxt = 'L'.
fieldcat_ln-outputlen = 40.
APPEND fieldcat_ln TO fieldcat.
ENDFORM.
**********SANDEEP LIST VIEWER*********
FORM F4_FOR_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
I_DISPLAY_VIA_GRID = ' '
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 1 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM.
----
FORM PAI_OF_SELECTION_SCREEN *
----
........ *
----
FORM PAI_OF_SELECTION_SCREEN.
*
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM VARIANT_INIT.
ENDIF.
ENDFORM. "PAI_OF_SELECTION_SCREEN
----
FORM VARIANT_INIT *
----
........ *
----
FORM VARIANT_INIT.
*
CLEAR G_VARIANT.
G_VARIANT-REPORT = G_REPID.
ENDFORM. " VARIANT_INIT
‎2007 Jun 13 11:45 AM
HI,
Dont use SELECT SINGLE *..
instead define a local variable for which you are validating
EG: lv_werks type werks_d.
select single werks from <DBTABLE> into lv_werks where <cond>..
Do use for all entries instead of inner joins.
rewards if useful..
regards,
nazeer
‎2007 Jun 13 11:34 AM
hi,
to improve perfomance of program, aplliey these perfomance ticks.
1) create internal table without header line instead of creating with headerline.
2) while creating internal use TYPE instead of uaisg LIKE key word.
3) in at selection-screen event, u write select query with exactly required fields
insted of writing select *.
4) better to provide default values to the selection-screen fields.
5) once check , are you using peoper tables for reading data from data base tables.
6) also check u r using proper index or not ( table has primary and secondary indexes)
7) if possible use FOR ALL ENTRIES, insted of using JOINS.
😎 you created field catalog manually, if possible call function REUSE_ALV_FIELDCATALOG_MERGE for field headings.
regards,
Ashokreddy.
‎2007 Jun 13 11:45 AM
HI,
Dont use SELECT SINGLE *..
instead define a local variable for which you are validating
EG: lv_werks type werks_d.
select single werks from <DBTABLE> into lv_werks where <cond>..
Do use for all entries instead of inner joins.
rewards if useful..
regards,
nazeer
‎2007 Jun 13 11:50 AM
Never use * in select statement.
just give what are trhe fileds uneed from the table.
SELECT BUKRS from table /.../
‎2007 Jun 13 11:57 AM
hi,
Before running select -- for all entries, make sure that the internal table used in for all entries is not initial.
Eg : YOur query ::
If not itab_mara[] is initial.
SELECT matnr maktx INTO TABLE itab_makt FROM makt FOR ALL ENTRIES IN itab_mara WHERE matnr = itab_mara-matn AND spras IN s_spras.
endif.
This is required because in case if the internal table itab_mara is empty, the select query will run for all entries in the table MARA and it will be highly expensive.
This is for all select queries using For All Entries.
Plese reward if found useful.
regards,
sachin