‎2007 Apr 26 1:38 PM
Hi,
Can any one send sample program of interactive alv with check box in alv grid display and and how to handle pf-status.
Rgds,
Sunil
‎2007 Apr 26 1:49 PM
Hi,
For pf status, Create a pf status by clicking on the ALV_MENU in the example below.
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ALV_MENU'.
ENDFORM. "SET_PF_STATUS
Call this pf status in REUSE_ALV_GRID_DISPLAY
ANd also add it in the eventcat.
Thanks,
Pritha
‎2007 Apr 26 1:40 PM
Hai,
<b>Here is the Sample Code :</b>
REPORT Z_ALV_FLIGHT_DETAILS.
TYPE-POOLS: SLIS.
DATA:
FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
SORTCAT TYPE SLIS_T_SORTINFO_ALV,
EVENTCAT TYPE SLIS_T_EVENT,
FS_LAYOUT TYPE SLIS_LAYOUT_ALV,
FIELDCAT_LN LIKE LINE OF FIELDCAT,
SORTCAT_LN LIKE LINE OF SORTCAT,
EVENTCAT_LN LIKE LINE OF EVENTCAT.
DATA:
COL_POS TYPE I.
******Declare Data Areas for List Viewer (End)**************
******Declare Internal Table to Store Selected Data (Begin)*
DATA:
BEGIN OF FS_SPFLI,
CHECK_BOX TYPE C,
COLOR(4) TYPE C.
INCLUDE TYPE SPFLI.
DATA: END OF FS_SPFLI.
DATA:
BEGIN OF FS_SFLIGHT,
CHECK_BOX TYPE C,
COLOR(4) TYPE C.
INCLUDE TYPE SFLIGHT.
DATA: END OF FS_SFLIGHT.
DATA:
BEGIN OF FS_CAPTURE_KEYS1,
CARRID TYPE SPFLI-CARRID,
CONNID TYPE SPFLI-CONNID,
END OF FS_CAPTURE_KEYS1.
DATA:
BEGIN OF FS_CAPTURE_KEYS2,
CARRID TYPE SFLIGHT-CARRID,
CONNID TYPE SFLIGHT-CONNID,
FLDATE TYPE SFLIGHT-FLDATE,
END OF FS_CAPTURE_KEYS2.
DATA:
T_SPFLI LIKE
STANDARD TABLE
OF FS_SPFLI.
DATA:
T_SFLIGHT LIKE
STANDARD TABLE
OF FS_SFLIGHT.
DATA:
T_CAPTURE_KEYS1 LIKE
STANDARD TABLE
OF FS_CAPTURE_KEYS1.
DATA:
T_CAPTURE_KEYS2 LIKE
STANDARD TABLE
OF FS_CAPTURE_KEYS2.
DATA:
T_SBOOK LIKE
STANDARD TABLE
OF SBOOK.
DATA:
T_LAYOUT TYPE SLIS_LAYOUT_ALV.
******Declare Internal Table to Store Selected Data (End)***
*******Select Data into Internal Table (Begin) ***************
SELECT *
UP TO 20 ROWS
INTO CORRESPONDING FIELDS OF TABLE T_SPFLI
FROM SPFLI.
Select Data into Internal Table (End) ****************
PERFORM START_LIST_VIEWER.
PERFORM GET_SPFLI_DETAILS.
&----
*& Form SUB1
&----
text
----
-->RT_EXTAB text
----
FORM SUB1 USING RT_EXTAB TYPE SLIS_T_EXTAB.
DATA:
FLIGHT TYPE SLIS_EXTAB.
FLIGHT-FCODE = 'SFLIGHT'.
APPEND FLIGHT TO RT_EXTAB.
SET PF-STATUS 'FLIGHT'. " EXCLUDING RT_EXTAB.
ENDFORM. " SUB1
&----
*& Form START_LIST_VIEWER
&----
text
----
--> p1 text
<-- p2 text
----
FORM START_LIST_VIEWER.
DATA:
PGM LIKE SY-REPID.
PGM = SY-REPID.
T_LAYOUT-BOX_FIELDNAME = 'CHECK_BOX'.
T_LAYOUT-INFO_FIELDNAME = 'COLOR'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = PGM
I_CALLBACK_PF_STATUS_SET = 'SUB1'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_STRUCTURE_NAME = 'SPFLI'
IS_LAYOUT = T_LAYOUT
TABLES
T_OUTTAB = T_SPFLI
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. " START_LIST_VIEWER
*******Process Call Back Events (Begin)**************************
FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
CASE UCOMM.
WHEN 'FLIGHT'.
REFRESH T_SFLIGHT.
SELFIELD-REFRESH = 'X'.
PERFORM GET_SPFLI_DETAILS.
SELECT *
FROM SFLIGHT
INTO CORRESPONDING FIELDS OF TABLE T_SFLIGHT
FOR ALL ENTRIES IN T_CAPTURE_KEYS1
WHERE CARRID EQ T_CAPTURE_KEYS1-CARRID
AND CONNID EQ T_CAPTURE_KEYS1-CONNID.
PERFORM DISPLAY_SFLIGHT.
PERFORM DEACTIVE_SPFLI_BOX.
SELFIELD-REFRESH = 'X'.
WHEN 'SBOOK'.
CLEAR T_LAYOUT.
T_LAYOUT-BOX_FIELDNAME = 'CHECK_BOX'.
T_LAYOUT-INFO_FIELDNAME = 'COLOR'.
REFRESH T_SBOOK.
SELFIELD-REFRESH = 'X'.
PERFORM GET_SFLIGHT_DETAILS.
SELECT *
FROM SBOOK
INTO CORRESPONDING FIELDS OF TABLE T_SBOOK
UP TO 5 ROWS
FOR ALL ENTRIES IN T_CAPTURE_KEYS2
WHERE CARRID EQ T_CAPTURE_KEYS2-CARRID
AND CONNID EQ T_CAPTURE_KEYS2-CONNID
AND FLDATE EQ T_CAPTURE_KEYS2-FLDATE.
PERFORM DISPLAY_SBOOK.
PERFORM DEACTIVE_SFLIHT_BOX.
SELFIELD-REFRESH = 'X'.
ENDCASE.
ENDFORM. "USER_COMMAND
&----
*& Form SUB2
&----
text
----
-->RT_EXTAB text
----
FORM SUB2 USING RT_EXTAB TYPE SLIS_T_EXTAB.
DATA:
FLIGHT TYPE SLIS_EXTAB.
FLIGHT-FCODE = 'SBOOK'.
APPEND FLIGHT TO RT_EXTAB.
SET PF-STATUS 'SBOOK'. " EXCLUDING RT_EXTAB.
ENDFORM. "SUB2
&----
*& Form DISPLAY_SFLIGHT
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_SFLIGHT .
DATA:
PGM LIKE SY-REPID.
PGM = SY-REPID.
CLEAR T_LAYOUT.
T_LAYOUT-BOX_FIELDNAME = 'CHECK_BOX'.
T_LAYOUT-INFO_FIELDNAME = 'COLOR'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = PGM
I_CALLBACK_PF_STATUS_SET = 'SUB2'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_STRUCTURE_NAME = 'SFLIGHT'
IS_LAYOUT = T_LAYOUT
TABLES
T_OUTTAB = T_SFLIGHT
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_SFLIGHT
&----
*& Form GET_SPFLI_DETAILS
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_SPFLI_DETAILS .
LOOP AT T_SPFLI INTO FS_SPFLI.
IF FS_SPFLI-CHECK_BOX = 'X'.
FS_CAPTURE_KEYS1-CARRID = FS_SPFLI-CARRID.
FS_CAPTURE_KEYS1-CONNID = FS_SPFLI-CONNID.
APPEND FS_CAPTURE_KEYS1 TO T_CAPTURE_KEYS1.
ENDIF.
ENDLOOP.
ENDFORM. " GET_SFLIGHT_DETAILS
&----
*& Form GET_SFLIGHT_DETAILS
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_SFLIGHT_DETAILS .
CLEAR T_CAPTURE_KEYS2.
LOOP AT T_SFLIGHT INTO FS_SFLIGHT.
IF FS_SFLIGHT-CHECK_BOX = 'X'.
FS_CAPTURE_KEYS2-CARRID = FS_SFLIGHT-CARRID.
FS_CAPTURE_KEYS2-CONNID = FS_SFLIGHT-CONNID.
FS_CAPTURE_KEYS2-FLDATE = FS_SFLIGHT-FLDATE.
APPEND FS_CAPTURE_KEYS2 TO T_CAPTURE_KEYS2.
ENDIF.
ENDLOOP.
ENDFORM. " GET_SFLIGHT_DETAILS
&----
*& Form DISPLAY_SBOOK
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_SBOOK .
DATA: PGM LIKE SY-REPID.
PGM = SY-REPID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = PGM
I_STRUCTURE_NAME = 'SBOOK'
TABLES
T_OUTTAB = T_SBOOK
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_SBOOK
&----
*& Form DEACTIVE_SPFLI_BOX
&----
text
----
--> p1 text
<-- p2 text
----
FORM DEACTIVE_SPFLI_BOX.
LOOP AT T_SPFLI INTO FS_SPFLI.
IF FS_SPFLI-CHECK_BOX = 'X'.
FS_SPFLI-CHECK_BOX = '1'.
FS_SPFLI-COLOR = 'C600'.
MODIFY T_SPFLI FROM FS_SPFLI.
ENDIF.
ENDLOOP.
*CLEAR FS_LAYOUT-INFO_FIELDNAME.
ENDFORM. " DEACTIVE_SPFLI_BOX
&----
*& Form DEACTIVE_SFLIHT_BOX
&----
text
----
--> p1 text
<-- p2 text
----
FORM DEACTIVE_SFLIHT_BOX .
LOOP AT T_SFLIGHT INTO FS_SFLIGHT.
IF FS_SFLIGHT-CHECK_BOX = 'X'.
FS_SFLIGHT-CHECK_BOX = '1'.
FS_SFLIGHT-COLOR = 'C500'.
MODIFY T_SFLIGHT FROM FS_SFLIGHT.
ENDIF.
ENDLOOP.
ENDFORM. " DEACTIVE_SFLIHT_BOX
Hope this helps you.
<b>Reward points if it helps you.</b>
Regds,
Rama chary.Pammi
‎2007 Apr 26 1:43 PM
Hi,
Go to TCode SE37. enter 'REUSE_ALV_GRID_DISPLAY' or REUSE_ALV_LIST_DISPLAY and go for where used list and get the example programs.
Regards,
Suresh.
‎2007 Apr 26 1:44 PM
Hi,
check this simple program for usingPF-STATUS.
REPORT ZBHALV_LIST1.
TABLES:MARA.
SELECT-OPTIONS: MATNR FOR MARA-MATNR.
DATA:BEGIN OF ITAB OCCURS 0,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF ITAB.
SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR
IN MATNR.
TYPE-POOLS SLIS.
DATA:FCAT TYPE slis_t_fieldcat_alv.
DATA:LAYOUT TYPE slis_layout_alv.
DATA:EVE TYPE slis_t_event WITH HEADER LINE.
DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.
DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.
SORT-UP = 'X'.
SORT-SPOS = 1.
SORT-FIELDNAME = 'ERSDA'.
SORT-tabname = 'MARA'.
APPEND SORT.
SORT-SPOS = 2.
SORT-FIELDNAME = 'MTART'.
SORT-tabname = 'MARA'.
APPEND SORT.
EVE-NAME = 'TOP_OF_PAGE'.
EVE-FORM = 'TOPOFPAGE'.
APPEND EVE.
EVE-NAME = 'TOP_OF_LIST'.
EVE-FORM = 'TOPOFLIST'.
APPEND EVE.
EVE-NAME = 'END_OF_LIST'.
EVE-FORM = 'ENDOFLIST'.
APPEND EVE.
LAYOUT-ZEBRA = 'X'.
LAYOUT-no_hline = 'X'.
LAYOUT-NO_VLINE = 'X'.
LAYOUT-window_titlebar = 'MATERIAL DETAILS'.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = SY-REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = FCAT
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.
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 = 'STATUS'
I_CALLBACK_USER_COMMAND = 'UCOMM'
I_STRUCTURE_NAME =
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = SORT[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = EVE[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 5
I_SCREEN_START_LINE = 5
I_SCREEN_END_COLUMN = 120
I_SCREEN_END_LINE = 25
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB
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 TOPOFPAGE.
REFRESH HEAD.
HEAD-TYP = 'H'.
HEAD-INFO = 'MATERIALS'.
APPEND HEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEAD[]
I_LOGO =
I_END_OF_LIST_GRID =
.
ENDFORM.
FORM TOPOFLIST.
REFRESH HEAD.
HEAD-TYP = 'H'.
HEAD-INFO = 'MATERIALS-LISTTOP'.
APPEND HEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEAD[]
I_LOGO =
I_END_OF_LIST_GRID =
.
ENDFORM.
FORM ENDOFLIST.
REFRESH HEAD.
HEAD-TYP = 'H'.
HEAD-INFO = 'MATERIALS-LISTEND'.
APPEND HEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEAD[]
I_LOGO =
I_END_OF_LIST_GRID =
.
ENDFORM.
FORM STATUS USING MYMENU.
SET PF-STATUS 'MENU'.
ENDFORM.
FORM UCOMM USING CODE STEXT.
CASE CODE.
WHEN 'ABC'.
WRITE:/ 'YOU HAVE CLICKED ON ABC'.
WHEN 'XYZ'.
WRITE:/ 'YOU HAVE CLICKED ON XYZ'.
ENDCASE.
ENDFORM.
rgds,
bharat.
‎2007 Apr 26 1:45 PM
‎2007 Apr 26 1:49 PM
Hi,
For pf status, Create a pf status by clicking on the ALV_MENU in the example below.
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ALV_MENU'.
ENDFORM. "SET_PF_STATUS
Call this pf status in REUSE_ALV_GRID_DISPLAY
ANd also add it in the eventcat.
Thanks,
Pritha
‎2007 Apr 26 1:52 PM
And for checkbox in particular field include this in the fieldcatolog
<b>checkbox(1) type c, " as checkbox</b>
Thanx ,