Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

sample code for intractive reporting

Former Member
0 Likes
449

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
431

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

&----


Type decleration for table MARA and MAKT -

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.

&--


Type decleration for table MARC--

TYPES: BEGIN OF t_marc,

matnr TYPE matnr, "Material Number

werks TYPE werks_d, "Plant

ekgrp TYPE ekgrp, "Purchasing Group

END OF t_marc.

&--


Type decleration for table MARD--

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.

&----


Type decleration for table FINAL TABLE -

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.

&----


Work area & Internal table decleration -

  • 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 defination -

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 defination -

AT SELECTION-SCREEN.

&----


validation for material number matnr -

SELECT matnr

INTO (wa_mara-matnr)

FROM mara

WHERE matnr IN s_matnr.

EXIT.

ENDSELECT.

IF sy-subrc <> 0.

MESSAGE e009.

ENDIF.

&----


validation for plant werks -

SELECT SINGLE werks INTO wa_marc-werks

FROM marc

WHERE werks IN s_werks.

IF sy-subrc <> 0.

MESSAGE e010.

ENDIF.

&----


validation for plant werks -

SELECT SINGLE lgort INTO wa_mard-lgort

FROM mard

WHERE lgort IN s_lgort.

IF sy-subrc <> 0.

MESSAGE e011.

ENDIF.

--


populate it_final by MARA details--

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.

4 REPLIES 4
Read only

Former Member
0 Likes
431

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

Read only

Former Member
0 Likes
432

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

&----


Type decleration for table MARA and MAKT -

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.

&--


Type decleration for table MARC--

TYPES: BEGIN OF t_marc,

matnr TYPE matnr, "Material Number

werks TYPE werks_d, "Plant

ekgrp TYPE ekgrp, "Purchasing Group

END OF t_marc.

&--


Type decleration for table MARD--

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.

&----


Type decleration for table FINAL TABLE -

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.

&----


Work area & Internal table decleration -

  • 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 defination -

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 defination -

AT SELECTION-SCREEN.

&----


validation for material number matnr -

SELECT matnr

INTO (wa_mara-matnr)

FROM mara

WHERE matnr IN s_matnr.

EXIT.

ENDSELECT.

IF sy-subrc <> 0.

MESSAGE e009.

ENDIF.

&----


validation for plant werks -

SELECT SINGLE werks INTO wa_marc-werks

FROM marc

WHERE werks IN s_werks.

IF sy-subrc <> 0.

MESSAGE e010.

ENDIF.

&----


validation for plant werks -

SELECT SINGLE lgort INTO wa_mard-lgort

FROM mard

WHERE lgort IN s_lgort.

IF sy-subrc <> 0.

MESSAGE e011.

ENDIF.

--


populate it_final by MARA details--

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.

Read only

Former Member
0 Likes
431

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

Read only

0 Likes
431

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.