Hi Expert,
I am selecting layout in selection screen itself.
I have given all functionality an my code.
But when i select that layout it is not picking.
So plz tell me where am i wrong.
Here is my code.
REPORT ZGMMRP0034 LINE-SIZE 255 NO STANDARD PAGE HEADING
MESSAGE-ID z01.
************************************************************************
Program Name : ZGMMRP0034 *
Created on : 05.06.2007 *
Created by : sandeep Garg
*
Change request : TP1K986685 *
Application Module : MM *
Release : 4.6C *
Description : Program display's information related to
: Material Master Import Codes
: This Report uses ALV. *
************************************************************************
*REPORT AQZZZGU_MM_001==ZGQ_MM_IM_019=
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.********
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_t023t OCCURS 0,
matkl LIKE t023t-matkl,
wgbez LIKE t023t-wgbez,
END OF itab_t023t.
*DATA: BEGIN OF itab_ekpo OCCURS 0,
ebeln LIKE ekpo-ebeln,
matnr LIKE ekpo-matnr,
END OF itab_ekpo.
*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 t604-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,
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_makt OCCURS 0,
maktx LIKE makt-maktx,
END OF itab_makt.
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,
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.
********VALIDATION***************
INITIALIZATION.
G_REPID = SY-REPID.
G_SAVE = 'A'.
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.
END-OF-SELECTION.
PERFORM build_print.
PERFORM build_fieldcat.
PERFORM start_list_viewer.
*********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.
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 a~matnr a~mfrpn a~mfrnr a~matkl
b~werks b~stawn b~mtver b~herkl
c~maktx
INTO corresponding fields of table itab_mara
FROM ( mara
as a
INNER JOIN marc as b
on a~matnr = b~matnr )
INNER JOIN makt as c
on a~matnr = c~matnr
WHERE werks IN s_werks
AND a~matnr IN s_matnr
AND b~stawn IN s_stawn
AND a~ersda IN s_ersda
AND a~matkl IN s_matkl
AND c~spras IN s_spras.
clear: itab_mara.
SELECT ebeln matnr
INTO CORRESPONDING FIELDS OF table itab_ekpo
from ekpo
FOR ALL ENTRIES IN itab_mara
WHERE matnr = itab_mara-matnr.
*
DELETE ADJACENT DUPLICATES FROM itab_ekpo.
*
SELECT lifnr ebeln
INTO table itab_ekko
from ekko
FOR ALL ENTRIES IN itab_ekpo
WHERE ebeln = itab_ekpo-ebeln.
SELECT wgbez matkl
INTO table itab_t023t
FROM t023t
FOR ALL ENTRIES IN itab_mara
WHERE matkl = itab_mara-matkl
AND wgbez IN s_wgbez.
SELECT a~ebeln a~matnr b~lifnr
INTO CORRESPONDING FIELDS OF table itab_ekpo
from ekpo as a
INNER JOIN ekko as b
ON a~ebeln = b~ebeln
FOR ALL ENTRIES IN itab_mara
WHERE a~matnr = itab_mara-matnr.
sort itab_mara.
SELECT lifnr name1
INTO table itab_lfa1
FROM lfa1
FOR ALL ENTRIES IN itab_mara
WHERE lifnr = itab_mara-mfrnr
OR lifnr = itab_ekpo-lifnr.
sort itab_ekko.
SELECT lifnr name1
appending table itab_lfa1
FROM LFA1
FOR ALL ENTRIES IN itab_ekko
WHERE lifnr = itab_ekko-lifnr.
*
sort itab_lfa1.
SELECT astawn btext1
INTO table itab_t604
FROM t604 as a
INNER JOIN t604t as b
on astawn = bstawn
FOR ALL ENTRIES IN itab_mara
WHERE a~stawn = itab_mara-stawn.
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.
*
SELECT objectclas objectid changenr
INTO TABLE itab_cdpos
from cdpos
WHERE TABNAME = 'MARC'
AND FNAME = 'STAWN'
AND OBJECTID IN S_MATNR.
IF sy-subrc = 0.
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.
*sort itab_cdhdr descending by udate.
ENDIF.
ENDFORM.
FORM build_print.
LOOP AT itab_mara ."into wa_mara.
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_t023t with key matkl = itab_final-matkl.
itab_final-wgbez = itab_t023t-wgbez.
READ TABLE itab_ekpo with key matnr = itab_final-matnr.
itab_final-ebeln = itab_ekpo-ebeln.
itab_final-lifnr = itab_ekpo-lifnr.
READ TABLE itab_ekko with key ebeln = itab_ekpo-ebeln.
itab_final-lifnr = itab_ekko-lifnr.
READ TABLE itab_lfa1 with key lifnr = itab_ekpo-lifnr.
itab_final-lifnr = itab_lfa1-lifnr.
itab_final-name1 = itab_lfa1-name1.
READ TABLE itab_t604 WITH KEY stawn = itab_mara-stawn.
itab_final-text1 = ITAB_t604-text1.
LOOP AT ITAB_CDPOS.
READ TABLE itab_cdhdr WITH KEY OBJECTID = itab_MARA-MATNR.
itab_final-username = itab_cdhdr-username.
itab_final-udate = itab_cdhdr-udate.
APPEND itab_final.
ENDLOOP.
ENDFORM.
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.
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 = '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 = 'TEXT1'.
fieldcat_ln-ref_fieldname = 'T604T'.
fieldcat_ln-tabname = 'ITAB_FINAL'.
fieldcat_ln-fieldname = 'T604T'.
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.
*
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.
*
CLEAR G_VARIANT.
G_VARIANT-REPORT = G_REPID.
ENDFORM. " VARIANT_INIT
Thanks,