‎2008 Jan 16 12:44 PM
Hi i m ish i need a sample code for intrective alv report in which if we click some where it shows relevent data in an another screen and at numeric field where we click it show the sum of upper all colomn field value
‎2008 Jan 16 1:50 PM
Hi,
This will help uou out. This program is for Simple Report and ALV interactive both depending upon user selection.
&----
*& Include for all data declerations.
&----
Include z_data_decl_assgn1.
&----
*& Include for all fetching data from transparent tables like
*& MARA , MAKT , MARD, MARC into internal table and populate
*& internal table it_final.
&----
START-OF-SELECTION.
Include z_populate_it_final_assgn1.
end-of-selection.
AT LINE-SELECTION.
PERFORM LINE_SELECT TABLES IT_FINAL
USING D_FIELD
D_VALUE.
Include for data deceleration
&----
TYPES: BEGIN OF t_mara,
matnr TYPE matnr, "Material Number
mtart TYPE mtart, "Material Type
meins TYPE meins, "Unit of Measurement
spras TYPE spras, "Language Key
maktx TYPE maktx, "Material Description
END OF t_mara.
&--
TYPES: BEGIN OF t_marc,
matnr TYPE matnr, "Material Number
werks TYPE werks_d, "Plant
ekgrp TYPE ekgrp, "Purchasing Group
END OF t_marc.
&--
TYPES: BEGIN OF t_mard,
matnr TYPE matnr, "Material Number
lgort TYPE lgort_d, "Storage Location
werks TYPE werks_d, "Plant
labst TYPE labst, "Valuated stock with unrestricted use
END OF t_mard.
&----
TYPES: BEGIN OF t_final,
matnr TYPE matnr, "Material Number
mtart TYPE mtart, "Material Type
meins TYPE meins, "Unit of Measurement
spras TYPE spras, "Language Key
maktx TYPE maktx, "Material Description
werks TYPE werks_d, "Plant
ekgrp TYPE ekgrp, "Purchasing Group
lgort TYPE lgort_d, "Storage Location
labst TYPE labst, "Valuated stock with unrestricted use
END OF t_final.
&----
Data decleration for work area
DATA: wa_mara TYPE t_mara,
wa_marc TYPE t_marc,
wa_mard TYPE t_mard,
wa_final TYPE t_final,
wa_tab TYPE t_final,
*Data decelearation for internal table.
it_mara TYPE STANDARD TABLE OF t_mara,
it_final TYPE STANDARD TABLE OF t_final,
it_marc TYPE STANDARD TABLE OF t_marc,
it_mard TYPE STANDARD TABLE OF t_mard,
it_tab TYPE STANDARD TABLE OF t_final.
*Data deceleration for the variables used in program.
DATA: d_field(20) TYPE c , " varaible used for get cursor fieldname.
d_value(40) TYPE c, " variable used for get corsor value of
" field.
d_value1 TYPE i. " variable used for get corsor value of
" field.
&**************************************************************&
D A T A D E C L E R A T I O N F O R A L V
&**************************************************************&
INCLUDE <list>.
TYPE-POOLS: slis.
DATA: my_progname LIKE sy-repid.
my_progname = sy-repid.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE FILED CATALOGS
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: it_fieldcat1 TYPE slis_t_fieldcat_alv.
DATA: it_fieldcat2 TYPE slis_t_fieldcat_alv.
DATA: it_fieldcat3 TYPE slis_t_fieldcat_alv.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE EVENT CATALOG.
DATA: wa_event TYPE slis_alv_event.
DATA: it_eventcat TYPE slis_t_event.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE TOP OF PAGE EVENT
DATA: wa_listheader TYPE slis_listheader.
DATA: it_listheader TYPE slis_t_listheader.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE FOR LAYOUT
DATA: it_layout TYPE slis_layout_alv.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE SORTING SEQUENCE.
DATA: wa_sortinfo TYPE slis_sortinfo_alv.
DATA: it_sortinfo TYPE slis_t_sortinfo_alv.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR GRID TITLE EVENT.
DATA: my_gridtitle TYPE lvc_title.
DATA: m_date(10).
&**************************************************************&
I N T I A L I Z A T I O N
&**************************************************************&
CLEAR wa_mara.
CLEAR wa_marc.
CLEAR wa_mard.
CLEAR wa_final.
REFRESH it_mara.
REFRESH it_final.
REFRESH it_marc.
REFRESH it_mard.
&----
SELECTION-SCREEN BEGIN OF BLOCK maddy WITH FRAME TITLE text-100..
*Range for selection of material number
SELECT-OPTIONS: s_matnr FOR wa_final-matnr,
*Selection for plant.
s_werks FOR wa_marc-werks,
*Selection for storage location.
s_lgort FOR wa_mard-lgort.
SELECTION-SCREEN END OF BLOCK maddy.
SELECTION-SCREEN BEGIN OF BLOCK maddy1 WITH FRAME TITLE text-101..
PARAMETERS: report RADIOBUTTON GROUP rad1 DEFAULT 'X',
alv RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK maddy1.
&----
AT SELECTION-SCREEN.
&----
SELECT matnr
INTO (wa_mara-matnr)
FROM mara
WHERE matnr IN s_matnr.
EXIT.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e009.
ENDIF.
&----
SELECT SINGLE werks INTO wa_marc-werks
FROM marc
WHERE werks IN s_werks.
IF sy-subrc <> 0.
MESSAGE e010.
ENDIF.
&----
SELECT SINGLE lgort INTO wa_mard-lgort
FROM mard
WHERE lgort IN s_lgort.
IF sy-subrc <> 0.
MESSAGE e011.
ENDIF.
--
REFRESH it_mara.
SELECT matnr
mtart
meins
INTO TABLE it_mara
FROM mara
WHERE matnr IN s_matnr.
IF sy-subrc <> 0.
MESSAGE e012. "WITH wa_mara-matnr.
ENDIF.
------ populate it_final by marc details & modify -
REFRESH it_marc.
IF it_mara[] IS NOT INITIAL.
SELECT matnr
werks
ekgrp
INTO TABLE it_marc
FROM marc
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr AND
werks IN s_werks.
IF sy-subrc <> 0.
MESSAGE e012.
ENDIF.
ENDIF.
------ populate it_mard by mard details & modify -
REFRESH it_mard.
IF it_marc[] IS NOT INITIAL.
SELECT matnr
lgort
werks
labst
INTO TABLE it_mard
FROM mard
FOR ALL ENTRIES IN it_marc
WHERE matnr = it_marc-matnr
AND werks = it_marc-werks
AND lgort IN s_lgort.
IF sy-subrc <> 0.
MESSAGE e012.
ENDIF.
ENDIF.
LOOP AT it_mard INTO wa_mard.
wa_final-matnr = wa_mard-matnr.
wa_final-lgort = wa_mard-lgort.
wa_final-werks = wa_mard-werks.
wa_final-labst = wa_mard-labst.
SELECT SINGLE maktx INTO wa_final-maktx
FROM makt
WHERE matnr = wa_mard-matnr
AND spras = sy-langu.
APPEND wa_final TO it_final.
CLEAR : wa_final.
ENDLOOP.
------ populate it_final by MARA MARC & MARD details -
IF report = 'X'.
WRITE:/5 text-102 COLOR 2,
15 text-103 COLOR 3,
60 text-104 COLOR 4,
70 text-105 COLOR 5.
SORT it_final.
LOOP AT it_final INTO wa_final.
WRITE:/ wa_final-matnr UNDER text-102,
wa_final-maktx UNDER text-103 ,
wa_final-werks UNDER text-104,
wa_final-lgort UNDER text-105.
wa_final-labst UNDER text-106.
CLEAR wa_final.
ENDLOOP.
ELSE.
&----
*Include for performing ALV. To get output in ALV format, two performs
*are included one for building fieldcat and one for alv display function
*by using function REUSE_ALV_GRID_DISPLAY.
&----
INCLUDE z_alv_display.
ENDIF.
INCLUDE z_alv_form.
&----
*& Form LINE_SELECT
&----
Interactive report intialized by AT LINE SELECTION COMMAND. This will
get triggerd when user will double click on field. To avoid getting
incorrect output due to any where click GET cursor command is used
which will give exact postion of cursor and values related to it.
----
FORM line_select TABLES p_it_final STRUCTURE wa_final
USING p_d_field
p_d_value.
GET CURSOR FIELD d_field VALUE d_value .
----
After double clicking on any field d_field will have fieldname on
which click is there and d_value will have value of that field. By
using CASE condition on d_field , various options in display can be
done. In this we have allowed user to click on Material Number(MATNR)
Plant(WERKS), Stock(LGORT) to see the further information.
----
CASE d_field.
Click on Material Number.
WHEN 'WA_FINAL-MATNR'.
WRITE:/5 text-102 COLOR 3,
20 text-104 COLOR 4,
40 text-105 COLOR 5.
SORT it_final BY matnr.
d_value1 = d_value.
LOOP AT it_final INTO wa_final WHERE matnr = d_value1.
WRITE:/ wa_final-matnr UNDER text-102,
wa_final-werks UNDER text-104,
wa_final-lgort UNDER text-105.
CLEAR wa_final.
ENDLOOP.
Click on Plant.
WHEN 'WA_FINAL-WERKS'.
WRITE:/5 text-104 COLOR 3,
20 text-105 COLOR 4,
40 text-106 COLOR 5.
SORT it_final BY matnr werks.
LOOP AT it_final INTO wa_final WHERE werks = d_value.
WRITE:/ wa_final-werks UNDER text-104,
wa_final-lgort UNDER text-105,
wa_final-labst UNDER text-106.
CLEAR wa_final.
ENDLOOP.
Click on stock.
WHEN 'WA_FINAL-LGORT'.
WRITE:/5 text-105 COLOR 3,
25 text-106 COLOR 4.
SORT it_final BY matnr werks lgort.
LOOP AT it_final INTO wa_final WHERE lgort = d_value.
WRITE:/ wa_final-lgort UNDER text-105,
wa_final-labst UNDER text-106.
CLEAR wa_final.
ENDLOOP.
ENDCASE.
‎2008 Jan 16 12:47 PM
INTERACTIVE ALV
REPORT Z50651_ALV_INTERACTIVE MESSAGE-ID ZMSG_50651
LINE-SIZE 100
LINE-COUNT 60
NO STANDARD PAGE HEADING.
******************TABLES DECLARATION*****************
TABLES : VBAP,MARA.
*****************TYPE POOLS**************************
TYPE-POOLS : SLIS.
****************INTERNAL TABLES**********************
DATA : BEGIN OF IT_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN, "SALES DOCUMENT
POSNR LIKE VBAP-POSNR, "SALES DOCUMENT ITEM
MATNR LIKE VBAP-MATNR, "MATERIAL NUMBER
END OF IT_VBAP.
****************TEMPORARY VARIABLES******************
DATA : V_VBELN LIKE VBAP-VBELN."SALES DOCUMENT
DATA : V_MTART LIKE MARA-MTART. "MATERIAL TYPE
*****************FIELD CATALOG***********************
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
****************LAYOUT*******************************
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
***************VARIANT*******************************
DATA : G_VARIANT LIKE DISVARIANT.
****************SAVE*********************************
DATA : G_SAVE(1) TYPE C.
*****************EVENTS******************************
DATA : XS_EVENTS TYPE SLIS_ALV_EVENT,
G_EVENTS TYPE SLIS_T_EVENT.
******************PF STATUS**************************
DATA : PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_PF_STATUS'.
******************USER COMMAND************************
DATA : USER_COMMAND TYPE SLIS_FORMNAME VALUE 'SET_USER_COMMAND',
R_UCOMM LIKE SY-UCOMM.
****************SELECTION SCREEN************************
SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
***************AT SELECTION SCREEN*********************
AT SELECTION-SCREEN.
PERFORM VALIDATE.
**************START-OF-SELECTION**************************
START-OF-SELECTION.
PERFORM GET_DETAILS.
PERFORM FIELDCAT.
PERFORM LAYOUT.
PERFORM VARIANT.
PERFORM SAVE.
PERFORM EVENTS.
PERFORM ALV_DISPLAY.
*********************FORMS*******************************************
&----
*& Form validate
&----
text
----
--> p1 text
<-- p2 text
----
FORM VALIDATE .
SELECT SINGLE VBELN
FROM VBAP
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'enter valid vbeln'.
ENDIF.
ENDFORM. " validate
&----
*& Form get_details
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DETAILS .
SELECT VBELN
POSNR
MATNR
FROM VBAP
INTO TABLE IT_VBAP
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'no details found'.
ENDIF.
ENDFORM. " get_details
&----
*& Form fieldcat
&----
text
----
--> p1 text
<-- p2 text
----
FORM FIELDCAT .
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-OUTPUTLEN = 10.
WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-OUTPUTLEN = 6.
WA_FIELDCAT-SELTEXT_L = 'ITEM'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-OUTPUTLEN = 18.
WA_FIELDCAT-SELTEXT_L = 'MATERIAL NO'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " fieldcat
&----
*& Form LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM LAYOUT .
WA_LAYOUT-ZEBRA = 'X'.
ENDFORM. " LAYOUT
&----
*& Form VARIANT
&----
text
----
--> p1 text
<-- p2 text
----
FORM VARIANT .
CLEAR G_VARIANT.
G_VARIANT-REPORT = SY-REPID.
ENDFORM. " VARIANT
&----
*& Form SAVE
&----
text
----
--> p1 text
<-- p2 text
----
FORM SAVE .
CLEAR G_SAVE.
G_SAVE = 'A'.
ENDFORM. " SAVE
&----
*& Form EVENTS
&----
text
----
--> p1 text
<-- p2 text
----
FORM EVENTS .
CLEAR XS_EVENTS.
XS_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND XS_EVENTS TO G_EVENTS.
ENDFORM. " EVENTS
&----
*& Form TOP_OF_PAGE
&----
text
----
FORM TOP_OF_PAGE.
WRITE 😕 ' INTELLI GROUP'.
ENDFORM. "TOP_OF_PAGE
&----
*& Form ALV_DISPLAY
&----
text
----
--> p1 text
<-- p2 text
----
FORM ALV_DISPLAY .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = PF_STATUS
I_CALLBACK_USER_COMMAND = USER_COMMAND
I_STRUCTURE_NAME =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = G_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBAP
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. " ALV_DISPLAY
&----
*& Form SET_PF_STATUS
&----
text
----
FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'Z50651_PFSTATUS' EXCLUDING EXTAB.
ENDFORM. "SET_PF_STATUS
&----
*& Form SET_USER_COMMAND
&----
text
----
FORM SET_USER_COMMAND USING R_UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'DC'.
READ TABLE IT_VBAP INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SELECT SINGLE MTART
FROM MARA
INTO V_MTART
WHERE MATNR = IT_VBAP-MATNR.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'NO MATERIAL DESCRIPTION FOR SELECTED MATERIAL NO'.
ELSE.
WRITE 😕 'MATERIAL NO :',IT_VBAP-MATNR.
WRITE 😕 'MATERIAL TYPE :' , V_MTART.
ENDIF.
ENDIF.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CLOSE'.
CALL TRANSACTION 'SE38'.
ENDCASE.
ENDFORM. "SET_USER_COMMAND
‎2008 Jan 16 1:50 PM
Hi,
This will help uou out. This program is for Simple Report and ALV interactive both depending upon user selection.
&----
*& Include for all data declerations.
&----
Include z_data_decl_assgn1.
&----
*& Include for all fetching data from transparent tables like
*& MARA , MAKT , MARD, MARC into internal table and populate
*& internal table it_final.
&----
START-OF-SELECTION.
Include z_populate_it_final_assgn1.
end-of-selection.
AT LINE-SELECTION.
PERFORM LINE_SELECT TABLES IT_FINAL
USING D_FIELD
D_VALUE.
Include for data deceleration
&----
TYPES: BEGIN OF t_mara,
matnr TYPE matnr, "Material Number
mtart TYPE mtart, "Material Type
meins TYPE meins, "Unit of Measurement
spras TYPE spras, "Language Key
maktx TYPE maktx, "Material Description
END OF t_mara.
&--
TYPES: BEGIN OF t_marc,
matnr TYPE matnr, "Material Number
werks TYPE werks_d, "Plant
ekgrp TYPE ekgrp, "Purchasing Group
END OF t_marc.
&--
TYPES: BEGIN OF t_mard,
matnr TYPE matnr, "Material Number
lgort TYPE lgort_d, "Storage Location
werks TYPE werks_d, "Plant
labst TYPE labst, "Valuated stock with unrestricted use
END OF t_mard.
&----
TYPES: BEGIN OF t_final,
matnr TYPE matnr, "Material Number
mtart TYPE mtart, "Material Type
meins TYPE meins, "Unit of Measurement
spras TYPE spras, "Language Key
maktx TYPE maktx, "Material Description
werks TYPE werks_d, "Plant
ekgrp TYPE ekgrp, "Purchasing Group
lgort TYPE lgort_d, "Storage Location
labst TYPE labst, "Valuated stock with unrestricted use
END OF t_final.
&----
Data decleration for work area
DATA: wa_mara TYPE t_mara,
wa_marc TYPE t_marc,
wa_mard TYPE t_mard,
wa_final TYPE t_final,
wa_tab TYPE t_final,
*Data decelearation for internal table.
it_mara TYPE STANDARD TABLE OF t_mara,
it_final TYPE STANDARD TABLE OF t_final,
it_marc TYPE STANDARD TABLE OF t_marc,
it_mard TYPE STANDARD TABLE OF t_mard,
it_tab TYPE STANDARD TABLE OF t_final.
*Data deceleration for the variables used in program.
DATA: d_field(20) TYPE c , " varaible used for get cursor fieldname.
d_value(40) TYPE c, " variable used for get corsor value of
" field.
d_value1 TYPE i. " variable used for get corsor value of
" field.
&**************************************************************&
D A T A D E C L E R A T I O N F O R A L V
&**************************************************************&
INCLUDE <list>.
TYPE-POOLS: slis.
DATA: my_progname LIKE sy-repid.
my_progname = sy-repid.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE FILED CATALOGS
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: it_fieldcat1 TYPE slis_t_fieldcat_alv.
DATA: it_fieldcat2 TYPE slis_t_fieldcat_alv.
DATA: it_fieldcat3 TYPE slis_t_fieldcat_alv.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE EVENT CATALOG.
DATA: wa_event TYPE slis_alv_event.
DATA: it_eventcat TYPE slis_t_event.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE TOP OF PAGE EVENT
DATA: wa_listheader TYPE slis_listheader.
DATA: it_listheader TYPE slis_t_listheader.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE FOR LAYOUT
DATA: it_layout TYPE slis_layout_alv.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR THE SORTING SEQUENCE.
DATA: wa_sortinfo TYPE slis_sortinfo_alv.
DATA: it_sortinfo TYPE slis_t_sortinfo_alv.
*DATA DECLARATION OF WORK AREA & INT. TABLE FOR GRID TITLE EVENT.
DATA: my_gridtitle TYPE lvc_title.
DATA: m_date(10).
&**************************************************************&
I N T I A L I Z A T I O N
&**************************************************************&
CLEAR wa_mara.
CLEAR wa_marc.
CLEAR wa_mard.
CLEAR wa_final.
REFRESH it_mara.
REFRESH it_final.
REFRESH it_marc.
REFRESH it_mard.
&----
SELECTION-SCREEN BEGIN OF BLOCK maddy WITH FRAME TITLE text-100..
*Range for selection of material number
SELECT-OPTIONS: s_matnr FOR wa_final-matnr,
*Selection for plant.
s_werks FOR wa_marc-werks,
*Selection for storage location.
s_lgort FOR wa_mard-lgort.
SELECTION-SCREEN END OF BLOCK maddy.
SELECTION-SCREEN BEGIN OF BLOCK maddy1 WITH FRAME TITLE text-101..
PARAMETERS: report RADIOBUTTON GROUP rad1 DEFAULT 'X',
alv RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK maddy1.
&----
AT SELECTION-SCREEN.
&----
SELECT matnr
INTO (wa_mara-matnr)
FROM mara
WHERE matnr IN s_matnr.
EXIT.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e009.
ENDIF.
&----
SELECT SINGLE werks INTO wa_marc-werks
FROM marc
WHERE werks IN s_werks.
IF sy-subrc <> 0.
MESSAGE e010.
ENDIF.
&----
SELECT SINGLE lgort INTO wa_mard-lgort
FROM mard
WHERE lgort IN s_lgort.
IF sy-subrc <> 0.
MESSAGE e011.
ENDIF.
--
REFRESH it_mara.
SELECT matnr
mtart
meins
INTO TABLE it_mara
FROM mara
WHERE matnr IN s_matnr.
IF sy-subrc <> 0.
MESSAGE e012. "WITH wa_mara-matnr.
ENDIF.
------ populate it_final by marc details & modify -
REFRESH it_marc.
IF it_mara[] IS NOT INITIAL.
SELECT matnr
werks
ekgrp
INTO TABLE it_marc
FROM marc
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr AND
werks IN s_werks.
IF sy-subrc <> 0.
MESSAGE e012.
ENDIF.
ENDIF.
------ populate it_mard by mard details & modify -
REFRESH it_mard.
IF it_marc[] IS NOT INITIAL.
SELECT matnr
lgort
werks
labst
INTO TABLE it_mard
FROM mard
FOR ALL ENTRIES IN it_marc
WHERE matnr = it_marc-matnr
AND werks = it_marc-werks
AND lgort IN s_lgort.
IF sy-subrc <> 0.
MESSAGE e012.
ENDIF.
ENDIF.
LOOP AT it_mard INTO wa_mard.
wa_final-matnr = wa_mard-matnr.
wa_final-lgort = wa_mard-lgort.
wa_final-werks = wa_mard-werks.
wa_final-labst = wa_mard-labst.
SELECT SINGLE maktx INTO wa_final-maktx
FROM makt
WHERE matnr = wa_mard-matnr
AND spras = sy-langu.
APPEND wa_final TO it_final.
CLEAR : wa_final.
ENDLOOP.
------ populate it_final by MARA MARC & MARD details -
IF report = 'X'.
WRITE:/5 text-102 COLOR 2,
15 text-103 COLOR 3,
60 text-104 COLOR 4,
70 text-105 COLOR 5.
SORT it_final.
LOOP AT it_final INTO wa_final.
WRITE:/ wa_final-matnr UNDER text-102,
wa_final-maktx UNDER text-103 ,
wa_final-werks UNDER text-104,
wa_final-lgort UNDER text-105.
wa_final-labst UNDER text-106.
CLEAR wa_final.
ENDLOOP.
ELSE.
&----
*Include for performing ALV. To get output in ALV format, two performs
*are included one for building fieldcat and one for alv display function
*by using function REUSE_ALV_GRID_DISPLAY.
&----
INCLUDE z_alv_display.
ENDIF.
INCLUDE z_alv_form.
&----
*& Form LINE_SELECT
&----
Interactive report intialized by AT LINE SELECTION COMMAND. This will
get triggerd when user will double click on field. To avoid getting
incorrect output due to any where click GET cursor command is used
which will give exact postion of cursor and values related to it.
----
FORM line_select TABLES p_it_final STRUCTURE wa_final
USING p_d_field
p_d_value.
GET CURSOR FIELD d_field VALUE d_value .
----
After double clicking on any field d_field will have fieldname on
which click is there and d_value will have value of that field. By
using CASE condition on d_field , various options in display can be
done. In this we have allowed user to click on Material Number(MATNR)
Plant(WERKS), Stock(LGORT) to see the further information.
----
CASE d_field.
Click on Material Number.
WHEN 'WA_FINAL-MATNR'.
WRITE:/5 text-102 COLOR 3,
20 text-104 COLOR 4,
40 text-105 COLOR 5.
SORT it_final BY matnr.
d_value1 = d_value.
LOOP AT it_final INTO wa_final WHERE matnr = d_value1.
WRITE:/ wa_final-matnr UNDER text-102,
wa_final-werks UNDER text-104,
wa_final-lgort UNDER text-105.
CLEAR wa_final.
ENDLOOP.
Click on Plant.
WHEN 'WA_FINAL-WERKS'.
WRITE:/5 text-104 COLOR 3,
20 text-105 COLOR 4,
40 text-106 COLOR 5.
SORT it_final BY matnr werks.
LOOP AT it_final INTO wa_final WHERE werks = d_value.
WRITE:/ wa_final-werks UNDER text-104,
wa_final-lgort UNDER text-105,
wa_final-labst UNDER text-106.
CLEAR wa_final.
ENDLOOP.
Click on stock.
WHEN 'WA_FINAL-LGORT'.
WRITE:/5 text-105 COLOR 3,
25 text-106 COLOR 4.
SORT it_final BY matnr werks lgort.
LOOP AT it_final INTO wa_final WHERE lgort = d_value.
WRITE:/ wa_final-lgort UNDER text-105,
wa_final-labst UNDER text-106.
CLEAR wa_final.
ENDLOOP.
ENDCASE.
‎2008 Jan 18 11:31 AM
dear friend
thanks
right now i m able to find out secondry list on clicking but i want that suppose there is 5 columns in a row and each columns having secondry listing with diffrent information so such type of ALV report how we can prepaire
second point i want that there is a column and i click any where in column it sum up all upper rows for that particular columns
‎2008 Jan 18 11:48 AM
for ur first point u can do like,
FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.
CLEAR fcat1.
CASE u_com.
WHEN '&IC1'.
READ TABLE itab INDEX sel_field-tabindex.
IF sel_field-fieldname = 'MATNR'.
IF sy-subrc = 0.
t_mat = itab-matnr.
PERFORM build_cat1 USING fcat1.
PERFORM build_eve1.
PERFORM get_data1.
PERFORM dis_data1.
ENDIF.
ENDIF.
SCREEN.
ENDCASE.
ENDFORM. "user_command
here u can compare ur field...
reward if usefull.