‎2007 Mar 15 6:26 AM
hi all,
i have an ALV report which display several columns in grid/list,
i want to know how to make a single column interactive in an ALV report.
if i click on a particular column it should take me to the next screen.
regards,
Mubashir
‎2007 Mar 15 6:31 AM
Hi,
Herewith i am sending sample alv intereactive report for your kind reference.
REPORT YMS_ALVINTER.
&----
*& tables declaration
&----
TABLES: VBRK,VBRP.
&----
*& type-pools declaration
&----
TYPE-POOLS: SLIS.
&----
*& data declaration
&----
DATA: G_REPID TYPE SY-REPID.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
WA_EVENT TYPE SLIS_ALV_EVENT,
T_EVENT TYPE SLIS_T_EVENT.
DATA: V_VBELN LIKE VBRK-VBELN,
V_MATNR LIKE VBRP-MATNR.
DATA: BEGIN OF IT_VBRK OCCURS 0,
VBELN LIKE VBRK-VBELN,
WAERK LIKE VBRK-WAERK,
VKORG LIKE VBRK-VKORG,
FKDAT LIKE VBRK-FKDAT,
BUKRS LIKE VBRK-BUKRS,
NETWR LIKE VBRK-NETWR,
END OF IT_VBRK.
DATA: BEGIN OF IT_VBRP OCCURS 0,
VBELN LIKE VBRP-VBELN,
POSNR LIKE VBRP-POSNR,
FKIMG LIKE VBRP-FKIMG,
VRKME LIKE VBRP-VRKME,
NETWR LIKE VBRP-NETWR,
MATNR LIKE VBRP-MATNR,
ARKTX LIKE VBRP-ARKTX,
END OF IT_VBRP.
&----
*& selection screen
&----
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,
S_FKDAT FOR VBRK-FKDAT,
S_MATNR FOR VBRP-MATNR.
SELECTION-SCREEN END OF BLOCK B.
**INITIALIZATION.
INITIALIZATION.
G_REPID = SY-REPID.
S_FKDAT-LOW = SY-DATUM - 200.
S_FKDAT-HIGH = SY-DATUM.
APPEND S_FKDAT.
***AT SELECTION-SCREEN.
AT SELECTION-SCREEN.
IF NOT S_VBELN IS INITIAL.
SELECT SINGLE VBELN FROM VBRK
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E001(ZZ2).
ENDIF.
ENDIF.
IF NOT S_MATNR IS INITIAL.
SELECT SINGLE MATNR FROM MARA
INTO V_MATNR
WHERE MATNR IN S_MATNR.
IF SY-SUBRC <> 0.
MESSAGE E001(ZZ2).
ENDIF.
ENDIF.
***START-OF-SELECTION.
START-OF-SELECTION.
PERFORM GET_DATA_VBRK.
&----
*& Form GET_DATA_VBRK
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA_VBRK .
SELECT VBELN
WAERK
VKORG
FKDAT
BUKRS
NETWR
INTO TABLE IT_VBRK
FROM VBRK
WHERE VBELN IN S_VBELN
AND FKDAT IN S_FKDAT.
ENDFORM. " GET_DATA_VBRK
&----
*& Form GET_DATA_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA_VBRP .
SELECT VBELN
POSNR
FKIMG
VRKME
NETWR
MATNR
ARKTX
FROM VBRP
INTO TABLE IT_VBRP
WHERE VBELN = IT_VBRK-VBELN.
ENDFORM. " GET_DATA_VBRP
***END-OF-SELECTION.
END-OF-SELECTION.
PERFORM EVENT_LIST.
PERFORM GET_FIELD_CATALOG.
PERFORM LIST_DISP .
&----
*& Form list_disp
&----
text
----
FORM LIST_DISP .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = 'POPUP'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
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 = ' '
IS_VARIANT =
IT_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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBRK
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. " LIST_DISP
&----
*& Form GET_FIELD_CATALOG
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_FIELD_CATALOG .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = 'IT_VBRK'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = G_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
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. " GET_FIELD_CATALOG
&----
*& Form event_list
&----
text
----
--> p1 text
<-- p2 text
----
FORM EVENT_LIST .
CLEAR WA_EVENT.
WA_EVENT-NAME = 'USER_COMMAND'.
WA_EVENT-FORM = 'USER_COMMAND'.
APPEND WA_EVENT TO T_EVENT.
CLEAR WA_EVENT.
ENDFORM. " event_list
&----
*& Form user_command
&----
text
----
-->R_UCOMM text
-->RS_SELFIELDtext
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_VBRK INDEX RS_SELFIELD-TABINDEX.
PERFORM GET_DATA_VBRP.
PERFORM BUILD_FIELDCATALOG_VBRP .
PERFORM DISPLAY_ALV_VBRP.
ENDCASE.
ENDFORM. "user_command
&----
*& Form BUILD_FIELDCATALOG_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_FIELDCATALOG_VBRP .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = 'IT_VBRP'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = G_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
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. " BUILD_FIELDCATALOG_VBRP
&----
*& Form DISPLAY_ALV_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_ALV_VBRP .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBRP
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. " DISPLAY_ALV_VBRP
Thanks,
Shankar
‎2007 Mar 15 6:31 AM
Hi,
Herewith i am sending sample alv intereactive report for your kind reference.
REPORT YMS_ALVINTER.
&----
*& tables declaration
&----
TABLES: VBRK,VBRP.
&----
*& type-pools declaration
&----
TYPE-POOLS: SLIS.
&----
*& data declaration
&----
DATA: G_REPID TYPE SY-REPID.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
WA_EVENT TYPE SLIS_ALV_EVENT,
T_EVENT TYPE SLIS_T_EVENT.
DATA: V_VBELN LIKE VBRK-VBELN,
V_MATNR LIKE VBRP-MATNR.
DATA: BEGIN OF IT_VBRK OCCURS 0,
VBELN LIKE VBRK-VBELN,
WAERK LIKE VBRK-WAERK,
VKORG LIKE VBRK-VKORG,
FKDAT LIKE VBRK-FKDAT,
BUKRS LIKE VBRK-BUKRS,
NETWR LIKE VBRK-NETWR,
END OF IT_VBRK.
DATA: BEGIN OF IT_VBRP OCCURS 0,
VBELN LIKE VBRP-VBELN,
POSNR LIKE VBRP-POSNR,
FKIMG LIKE VBRP-FKIMG,
VRKME LIKE VBRP-VRKME,
NETWR LIKE VBRP-NETWR,
MATNR LIKE VBRP-MATNR,
ARKTX LIKE VBRP-ARKTX,
END OF IT_VBRP.
&----
*& selection screen
&----
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,
S_FKDAT FOR VBRK-FKDAT,
S_MATNR FOR VBRP-MATNR.
SELECTION-SCREEN END OF BLOCK B.
**INITIALIZATION.
INITIALIZATION.
G_REPID = SY-REPID.
S_FKDAT-LOW = SY-DATUM - 200.
S_FKDAT-HIGH = SY-DATUM.
APPEND S_FKDAT.
***AT SELECTION-SCREEN.
AT SELECTION-SCREEN.
IF NOT S_VBELN IS INITIAL.
SELECT SINGLE VBELN FROM VBRK
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E001(ZZ2).
ENDIF.
ENDIF.
IF NOT S_MATNR IS INITIAL.
SELECT SINGLE MATNR FROM MARA
INTO V_MATNR
WHERE MATNR IN S_MATNR.
IF SY-SUBRC <> 0.
MESSAGE E001(ZZ2).
ENDIF.
ENDIF.
***START-OF-SELECTION.
START-OF-SELECTION.
PERFORM GET_DATA_VBRK.
&----
*& Form GET_DATA_VBRK
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA_VBRK .
SELECT VBELN
WAERK
VKORG
FKDAT
BUKRS
NETWR
INTO TABLE IT_VBRK
FROM VBRK
WHERE VBELN IN S_VBELN
AND FKDAT IN S_FKDAT.
ENDFORM. " GET_DATA_VBRK
&----
*& Form GET_DATA_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA_VBRP .
SELECT VBELN
POSNR
FKIMG
VRKME
NETWR
MATNR
ARKTX
FROM VBRP
INTO TABLE IT_VBRP
WHERE VBELN = IT_VBRK-VBELN.
ENDFORM. " GET_DATA_VBRP
***END-OF-SELECTION.
END-OF-SELECTION.
PERFORM EVENT_LIST.
PERFORM GET_FIELD_CATALOG.
PERFORM LIST_DISP .
&----
*& Form list_disp
&----
text
----
FORM LIST_DISP .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = 'POPUP'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
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 = ' '
IS_VARIANT =
IT_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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBRK
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. " LIST_DISP
&----
*& Form GET_FIELD_CATALOG
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_FIELD_CATALOG .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = 'IT_VBRK'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = G_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
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. " GET_FIELD_CATALOG
&----
*& Form event_list
&----
text
----
--> p1 text
<-- p2 text
----
FORM EVENT_LIST .
CLEAR WA_EVENT.
WA_EVENT-NAME = 'USER_COMMAND'.
WA_EVENT-FORM = 'USER_COMMAND'.
APPEND WA_EVENT TO T_EVENT.
CLEAR WA_EVENT.
ENDFORM. " event_list
&----
*& Form user_command
&----
text
----
-->R_UCOMM text
-->RS_SELFIELDtext
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_VBRK INDEX RS_SELFIELD-TABINDEX.
PERFORM GET_DATA_VBRP.
PERFORM BUILD_FIELDCATALOG_VBRP .
PERFORM DISPLAY_ALV_VBRP.
ENDCASE.
ENDFORM. "user_command
&----
*& Form BUILD_FIELDCATALOG_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_FIELDCATALOG_VBRP .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = 'IT_VBRP'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = G_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
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. " BUILD_FIELDCATALOG_VBRP
&----
*& Form DISPLAY_ALV_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_ALV_VBRP .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBRP
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. " DISPLAY_ALV_VBRP
Thanks,
Shankar
‎2007 Mar 15 6:34 AM
Hi,
In REUSE_ALV_LIST_DISPLAY you have one exporting parameter called
<b> it_events </b>
data: itab TYPE SLIS_T_EVENT.
we need to pass internal table to this.
we have to pass data for two fields Name and Form.
Name is event name
and form is a subroutine name in that we can give instruction regarding the event.
eg,
itab-name = 'AT LINE-SELECTION'.
itab-form = 'LINE_SELECTION.--> form name.
Reward if helpful.
Regards,
Sandhya
‎2007 Mar 15 7:28 AM
&----
*& Report YSAI_ALV5 *
*& *
&----
*& *
*& *
&----
REPORT YSAI_ALV5 .
TYPE-POOLS : SLIS. " DECLARTION OF VARIABLES.
TABLES : KNA1, "CUSTOMER MASTER TABLE
VBAK, "SALES ORDER HEADER
VBAP. "ITEM DETAILS
&----
*& TO PASS NAME OF THE REPORT IN FUNCTION MODULE FOR ALV *
&----
DATA : I_REPID LIKE SY-REPID.
I_REPID = SY-REPID.
&----
*& DEFINGING A INTERNAL TABLE FOR CATALOG OF THE FIELDS TO DISPLAYED *
&----
DATA : W_FCAT TYPE SLIS_FIELDCAT_ALV.
DATA : T_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : W_FCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA : T_FCAT1 TYPE SLIS_T_FIELDCAT_ALV.
DATA : W_FCAT2 TYPE SLIS_FIELDCAT_ALV.
DATA : T_FCAT2 TYPE SLIS_T_FIELDCAT_ALV.
&----
*& DEFINGING A INTERNAL TABLE FOR CATALOG OF THE EVENTS TO DISPLAYED *
&----
DATA : W_EVENTS TYPE SLIS_ALV_EVENT.
DATA : T_EVENTS TYPE SLIS_T_EVENT.
DATA : W_EVENTS1 TYPE SLIS_ALV_EVENT.
DATA : T_EVENTS1 TYPE SLIS_T_EVENT.
DATA : W_EVENTS2 TYPE SLIS_ALV_EVENT.
DATA : T_EVENTS2 TYPE SLIS_T_EVENT.
&----
*& DEFINGING INTERNAL TABLE TO CAPTURE LISTHEADER IN ALV *
&----
DATA : W_LIST TYPE SLIS_LISTHEADER.
DATA : T_LIST TYPE SLIS_T_LISTHEADER.
DATA : W_LIST1 TYPE SLIS_LISTHEADER.
DATA : T_LIST1 TYPE SLIS_LISTHEADER OCCURS 1.
DATA : W_LIST2 TYPE SLIS_LISTHEADER.
DATA : T_LIST2 TYPE SLIS_T_LISTHEADER.
*DATA : W_LAYOUT TYPE SLIS_LAYOUT_ALV .
DATA : T_LAYOUT TYPE SLIS_LAYOUT_ALV .
DATA : T_LAYOUT1 TYPE SLIS_LAYOUT_ALV .
DATA : T_LAYOUT2 TYPE SLIS_LAYOUT_ALV .
T_LAYOUT-NO_VLINE = 'X'.
*T_LAYOUT-NO_COLHEAD = 'X'.
T_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
*T_LAYOUT-LIGHTS_FIELDNAME = '1'.
T_LAYOUT-BOX_FIELDNAME = 'NAME1'.
*T_layout-edit = 'X'.
&----
*& PASSING TOP_OF_PAGE EVENT TO EVENTS INTERNAL TABLE *
&----
W_EVENTS-NAME = 'TOP_OF_PAGE'.
W_EVENTS-FORM = 'TOP'.
APPEND W_EVENTS TO T_EVENTS.
W_EVENTS-NAME = 'END_OF_PAGE'.
W_EVENTS-FORM = 'END'.
APPEND W_EVENTS TO T_EVENTS.
W_EVENTS-NAME = 'USER_COMMAND'.
W_EVENTS-FORM = 'USECOMM'.
APPEND W_EVENTS TO T_EVENTS.
W_EVENTS1-NAME = 'TOP_OF_PAGE'.
W_EVENTS1-FORM = 'TOP1'.
APPEND W_EVENTS1 TO T_EVENTS1.
W_EVENTS1-NAME = 'USER_COMMAND'.
W_EVENTS1-FORM = 'USECOMM1'.
APPEND W_EVENTS1 TO T_EVENTS1.
W_EVENTS2-NAME = 'TOP_OF_PAGE'.
W_EVENTS2-FORM = 'TOP2'.
APPEND W_EVENTS2 TO T_EVENTS2.
&----
*& PASSING LIST FIELD FOR LISTHEADER *
&----
W_LIST-TYP = 'H'. "H IS FOR HEADING TYPE S IS FOR SELCETION TYPE A IS FOR ACTION TYPE
W_LIST-INFO = ' KALA JYOTHI PROCESS PVT.LTD '.
APPEND W_LIST TO T_LIST.
CLEAR W_LIST.
W_LIST-TYP = 'H'.
W_LIST-INFO = 'HYDERABAD'.
APPEND W_LIST TO T_LIST.
CLEAR W_LIST.
&----
*& INPUTING THE DATA INTO FIELD CATALOG FOR KNA1 *
&----
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = 'KUNNR'.
W_FCAT-SELTEXT_M = 'CUSTOMER NO'.
W_FCAT-EMPHASIZE = 'C51'.
W_FCAT-HOTSPOT = 'X'.
W_FCAT-JUST = 'C'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-COL_POS = 2.
W_FCAT-FIELDNAME = 'NAME1'.
W_FCAT-SELTEXT_M = 'CUSTOMER NAME'.
W_FCAT-OUTPUTLEN = 25.
W_FCAT-EMPHASIZE = 'C61'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-COL_POS = 3.
W_FCAT-FIELDNAME = 'ORT01'.
W_FCAT-SELTEXT_M = 'CITY'.
W_FCAT-EMPHASIZE = 'C31'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-COL_POS = 4.
W_FCAT-FIELDNAME = 'LAND1'.
W_FCAT-SELTEXT_M = 'COUNTRY'.
W_FCAT-JUST = 'C'.
W_FCAT-EMPHASIZE = 'C41'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-COL_POS = 5.
W_FCAT-FIELDNAME = 'STRAS'.
W_FCAT-SELTEXT_M = 'ADDRESS'.
W_FCAT-EMPHASIZE = 'C21'.
W_FCAT-OUTPUTLEN = 25.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-COL_POS = 6.
W_FCAT-FIELDNAME = 'TELF1'.
W_FCAT-SELTEXT_M = 'PHONE NO'.
W_FCAT-EMPHASIZE = 'C6'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
&----
*& INPUTING THE DATA INTO FIELD CATALOG FOR VBAK *
&----
W_FCAT1-COL_POS = 1.
W_FCAT1-FIELDNAME = 'VBELN'.
W_FCAT1-SELTEXT_M = 'ORDERNO'.
W_FCAT1-HOTSPOT = 'X'.
W_FCAT1-JUST = 'C'.
W_FCAT1-EMPHASIZE = 'C51'.
APPEND W_FCAT1 TO T_FCAT1.
CLEAR W_FCAT1.
W_FCAT1-COL_POS = 2.
W_FCAT1-FIELDNAME = 'ERDAT'.
W_FCAT1-SELTEXT_M = 'ORDERDATE'.
W_FCAT1-EMPHASIZE = 'C71'.
APPEND W_FCAT1 TO T_FCAT1.
CLEAR W_FCAT1.
W_FCAT1-COL_POS = 3.
W_FCAT1-FIELDNAME = 'NETWR'.
W_FCAT1-SELTEXT_M = 'ODERVALUE'.
W_FCAT1-EMPHASIZE = 'C41'.
APPEND W_FCAT1 TO T_FCAT1.
CLEAR W_FCAT1.
W_FCAT1-COL_POS = 4.
W_FCAT1-FIELDNAME = 'ERNAM'.
W_FCAT1-SELTEXT_M = 'CREATED BY'.
W_FCAT1-EMPHASIZE = 'C61'.
APPEND W_FCAT1 TO T_FCAT1.
CLEAR W_FCAT1.
W_FCAT1-COL_POS = 5.
W_FCAT1-FIELDNAME = 'VDATU'.
W_FCAT1-SELTEXT_M = 'DELIVERY DATE'.
W_FCAT1-EMPHASIZE = 'C31'.
APPEND W_FCAT1 TO T_FCAT1.
CLEAR W_FCAT1.
&----
*& INPUTING THE DATA INTO FIELD CATALOG FOR VBAP *
&----
W_FCAT2-COL_POS = 1.
W_FCAT2-FIELDNAME = 'POSNR'.
W_FCAT2-SELTEXT_M = 'ITEM NO'.
W_FCAT2-HOTSPOT = 'X'.
W_FCAT2-JUST = 'C'.
W_FCAT2-EMPHASIZE = 'C41'.
APPEND W_FCAT2 TO T_FCAT2.
CLEAR W_FCAT2.
W_FCAT2-COL_POS = 2.
W_FCAT2-FIELDNAME = 'NETPR'.
W_FCAT2-SELTEXT_M = 'ITEM VALUE'.
W_FCAT2-EMPHASIZE = 'C51'.
APPEND W_FCAT2 TO T_FCAT2.
CLEAR W_FCAT2.
W_FCAT2-COL_POS = 3.
W_FCAT2-FIELDNAME = 'ARKTX'.
W_FCAT2-SELTEXT_M = 'ITEM DESCRIPTION'.
W_FCAT2-EMPHASIZE = 'C31'.
APPEND W_FCAT2 TO T_FCAT2.
CLEAR W_FCAT2.
W_FCAT2-COL_POS = 4.
W_FCAT2-FIELDNAME = 'WERKS'.
W_FCAT2-SELTEXT_M = 'PLANT NO'.
W_FCAT2-JUST = 'C'.
W_FCAT2-EMPHASIZE = 'C21'.
APPEND W_FCAT2 TO T_FCAT2.
CLEAR W_FCAT2.
W_FCAT2-COL_POS = 5.
W_FCAT2-FIELDNAME = 'VOLUM'.
W_FCAT2-SELTEXT_M = 'QUANTITY'.
W_FCAT2-JUST = 'C'.
W_FCAT2-EMPHASIZE = 'C31'.
APPEND W_FCAT2 TO T_FCAT2.
CLEAR W_FCAT2.
&----
*& DEFINGING DATA TYPES *
&----
TYPES: BEGIN OF TY_KNA1,
KUNNR TYPE KUNNR, " CUSTOMER NUMBER
NAME1 TYPE NAME1, " CUSTOMER NAME
ORT01 TYPE ORT01, " CUSTOMER CITY
LAND1 TYPE LAND1,
STRAS TYPE STRAS,
TELF1 TYPE TELF1,
END OF TY_KNA1.
&----
*& DEFINGING A INTERNAL TABLE CATALOG *
&----
DATA : W_KNA1 TYPE TY_KNA1.
DATA : T_KNA1 TYPE STANDARD TABLE OF TY_KNA1 INITIAL SIZE 1.
&----
*& SELECT-OPTION *
&----
SELECT-OPTIONS : S_CUSTNO FOR KNA1-KUNNR DEFAULT 1300 TO 1500.
&----
*& EXTRACT DATA *
&----
START-OF-SELECTION.
SELECT
KUNNR
NAME1
ORT01
LAND1
STRAS
TELF1
FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE T_KNA1 WHERE KUNNR IN S_CUSTNO .
IF SY-SUBRC NE 0 .
LEAVE TO LIST-PROCESSING.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = I_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'SAIID1' " TC = OAER AND CREATE OBJECT
I_GRID_TITLE = 'LIST OF SALES ORDERS'
I_GRID_SETTINGS =
IS_LAYOUT = T_LAYOUT
IT_FIELDCAT = T_FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = T_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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_KNA1
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.
&---------------------------------------------------------------------*
& FORM TOP_OF_PAGE *
&---------------------------------------------------------------------*
FORM TOP.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_LIST
I_LOGO = 'SAILOGO'.
ENDFORM.
FORM END.
ENDFORM.
&----
*& DEFINGING DATA TYPES *
&----
TYPES: BEGIN OF TY_VBAK,
KUNNR TYPE KUNNR, " CUSTOMER NUMBER
VBELN TYPE VBELN,
ERDAT TYPE ERDAT,
NETWR TYPE NETWR,
ERNAM TYPE ERNAM,
VDATU TYPE EDATU_VBAK,
END OF TY_VBAK.
&----
*& DEFINGING A INTERNAL TABLE CATALOG *
&----
DATA : W_VBAK TYPE TY_VBAK.
DATA : T_VBAK TYPE STANDARD TABLE OF TY_VBAK INITIAL SIZE 1 .
FORM USECOMM
USING UCOMM LIKE SY-UCOMM
FIELDS TYPE SLIS_SELFIELD.
READ TABLE T_KNA1 INTO W_KNA1 INDEX FIELDS-TABINDEX.
IF FIELDS-FIELDNAME = 'KUNNR'.
SELECT
VBELN
ERDAT
NETWR
ERNAM
VDATU
FROM VBAK INTO CORRESPONDING FIELDS OF TABLE T_VBAK WHERE KUNNR = W_KNA1-KUNNR.
T_LAYOUT1-COLWIDTH_OPTIMIZE = 'X'.
T_LAYOUT1-BOX_FIELDNAME = 'VBELN'.
IF SY-DBCNT NE SPACE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = I_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ''
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'SAIID1' " TC = OAER AND CREATE OBJECT FOR BACKGROUND
I_GRID_TITLE = 'ORDER DETAILS'
I_GRID_SETTINGS =
IS_LAYOUT = T_LAYOUT1
IT_FIELDCAT = T_FCAT1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = T_EVENTS1
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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_VBAK
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.
ELSE. "THIS IS ENDING STATEMENT FOR DBCNT.
MESSAGE E001(YSAI).
ENDIF.
ELSE. "THIS IS ENDING STATEMENT FOR SORSOR FIELD.
MESSAGE E000(YSAI).
ENDIF.
ENDFORM.
&---------------------------------------------------------------------*
& FORM TOP_OF_PAGE *
&---------------------------------------------------------------------*
FORM TOP1.
W_LIST1-TYP = 'S'.
W_LIST1-KEY = 'CUSTOMER NO'.
W_LIST1-INFO = W_KNA1-KUNNR.
APPEND W_LIST1 TO T_LIST1.
W_LIST1-TYP = 'S'.
W_LIST1-KEY = 'CUSTOMER NAME'.
W_LIST1-INFO = W_KNA1-NAME1.
APPEND W_LIST1 TO T_LIST1.
W_LIST1-TYP = 'S'.
W_LIST1-KEY = 'CITY'.
W_LIST1-INFO = W_KNA1-ORT01.
APPEND W_LIST1 TO T_LIST1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_LIST1
I_LOGO = 'SAILOGO'.
REFRESH T_LIST1.
ENDFORM.
&----
*& DEFINGING DATA TYPES *
&----
TYPES: BEGIN OF TY_VBAP,
VBELN TYPE VBELN,
POSNR TYPE POSNR, " ITEM
NETPR TYPE NETPR, " ORDER VALUE
ARKTX TYPE ARKTX, " ITEM DESCRIPTION
WERKS TYPE WERKS_EXT, " PLANT NUMBER
VOLUM TYPE VOLUM_AP, " Volume of the item
END OF TY_VBAP.
&----
*& DEFINGING A INTERNAL TABLE CATALOG *
&----
DATA : W_VBAP TYPE TY_VBAP.
DATA : T_VBAP TYPE STANDARD TABLE OF TY_VBAP INITIAL SIZE 1 .
FORM USECOMM1
USING UCOMM LIKE SY-UCOMM
FIELDS TYPE SLIS_SELFIELD.
READ TABLE T_VBAK INTO W_VBAK INDEX FIELDS-TABINDEX.
IF FIELDS-FIELDNAME = 'VBELN'.
SELECT
POSNR
NETPR
ARKTX
WERKS
VOLUM
FROM VBAP INTO CORRESPONDING FIELDS OF TABLE T_VBAP WHERE VBELN = W_VBAK-VBELN.
T_LAYOUT2-COLWIDTH_OPTIMIZE = 'X'.
T_LAYOUT2-BOX_FIELDNAME = 'VBELN'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = I_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'SAIID2' " TC = OAER AND CREATE OBJECT
I_GRID_TITLE = 'ITEM DETAILS '
I_GRID_SETTINGS =
IS_LAYOUT = T_LAYOUT2
IT_FIELDCAT = T_FCAT2
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = T_EVENTS2
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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_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.
ELSEIF FIELDS-FIELDNAME = 'ERDAT'.
SET PARAMETER ID 'AUN' FIELD W_VBAK-VBELN.
CALL TRANSACTION 'VA02'.
ELSE. "THIS IS ENDING STATEMENT FOR SORSOR FIELD.
MESSAGE I002(YSAI).
ENDIF.
ENDFORM.
&---------------------------------------------------------------------*
& FORM TOP_OF_PAGE *
&---------------------------------------------------------------------*
FORM TOP2.
W_LIST2-TYP = 'S'.
W_LIST2-KEY = 'CUSTOMER NO'.
W_LIST2-INFO = W_KNA1-KUNNR.
APPEND W_LIST2 TO T_LIST2.
W_LIST2-TYP = 'S'.
W_LIST2-KEY = 'CUSTOMER NAME'.
W_LIST2-INFO = W_KNA1-NAME1.
APPEND W_LIST2 TO T_LIST2.
W_LIST2-TYP = 'S'.
W_LIST2-KEY = 'ORDER NO'.
W_LIST2-INFO = W_VBAK-VBELN.
APPEND W_LIST2 TO T_LIST2.
W_LIST2-TYP = 'S'.
W_LIST2-KEY = 'ORDER DATE'.
W_LIST2-INFO = W_VBAK-ERDAT.
APPEND W_LIST2 TO T_LIST2.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_LIST2
I_LOGO = 'SAILOGO'.
REFRESH T_LIST2.
ENDFORM.
regards
sai kumar