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
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: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 ,
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |