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

alv

Former Member
0 Likes
701

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
674

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

6 REPLIES 6
Read only

Former Member
0 Likes
674

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

Read only

Former Member
0 Likes
674

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.

Read only

Former Member
0 Likes
674

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.

Read only

Former Member
0 Likes
674

check the standard program

<b>BCALV_EDIT_05</b>

Read only

Former Member
0 Likes
675

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

Read only

Former Member
0 Likes
674

And for checkbox in particular field include this in the fieldcatolog

<b>checkbox(1) type c, " as checkbox</b>

Thanx ,