Application Development 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: 

Deselect the rows of ALV

Former Member
0 Kudos

Is there any method to deselect the rows of ALV which were initially selected.

6 REPLIES 6

Former Member
0 Kudos

Hi

Are you using checkbox in your ALV?.

Please explain in detail about the issue.

Nava

Message was edited by:

Nava Naidu

Former Member
0 Kudos

please cehck this code (just paste in the abap editor then observer output)

<b>create one setpf status(for buttones)</b>

type-pools:

slis.

data: fs_fieldcat type slis_t_fieldcat_alv.

DATA: W_NAME LIKE SY-REPID.

data: fs_layout type slis_layout_alv.

DATA: BEGIN OF FS_TAB,

CARRID TYPE SPFLI-CARRID,

CONNID TYPE SPFLI-CONNID,

END OF FS_TAB.

DATA: T_TAB LIKE STANDARD TABLE OF FS_TAB.

DATA: BEGIN OF FS_TAB1,

CARRID TYPE SFLIGHT-CARRID,

CONNID TYPE SFLIGHT-CONNID,

FLDATE TYPE SFLIGHT-FLDATE,

END OF FS_TAB1.

DATA: T_TAB1 LIKE STANDARD TABLE OF FS_TAB1.

DATA: BEGIN OF FS_SPFLI,

ROW(4),

BOX(1),

CARRID TYPE SPFLI-CARRID,

CONNID TYPE SPFLI-CONNID,

COUNTRYFR TYPE SPFLI-COUNTRYFR,

CITYFROM TYPE SPFLI-CITYFROM,

AIRPFROM TYPE SPFLI-AIRPFROM,

COUNTRYTO TYPE SPFLI-COUNTRYTO,

CITYTO TYPE SPFLI-CITYTO,

AIRPTO TYPE SPFLI-AIRPTO,

FLTIME TYPE SPFLI-FLTIME,

DEPTIME TYPE SPFLI-DEPTIME,

ARRTIME TYPE SPFLI-ARRTIME,

DISTANCE TYPE SPFLI-DISTANCE,

DISTID TYPE SPFLI-DISTID,

FLTYPE TYPE SPFLI-FLTYPE,

PERIOD TYPE SPFLI-PERIOD,

END OF FS_SPFLI.

DATA: T_SPFLI LIKE

STANDARD TABLE

OF FS_SPFLI.

DATA: BEGIN OF FS_SFLIGHT,

ROW(4),

BOX(1),

CARRID TYPE SFLIGHT-CARRID,

CONNID TYPE SFLIGHT-CONNID,

FLDATE TYPE SFLIGHT-FLDATE,

PLANETYPE TYPE SFLIGHT-PLANETYPE,

SEATSMAX TYPE SFLIGHT-SEATSMAX,

SEATSOCC TYPE SFLIGHT-SEATSOCC,

PAYMENTSUM TYPE SFLIGHT-PAYMENTSUM,

SEATSMAX_B TYPE SFLIGHT-SEATSMAX_B,

SEATSOCC_B TYPE SFLIGHT-SEATSOCC_B,

SEATSMAX_F TYPE SFLIGHT-SEATSMAX_F,

SEATSOCC_F TYPE SFLIGHT-SEATSOCC_F,

END OF FS_SFLIGHT.

data: t_sflight like

standard table

of fs_sflight.

DATA: T_SBOOK LIKE

SBOOK OCCURS 0 WITH HEADER LINE.

FS_LAYOUT-BOX_FIELDNAME = 'BOX'.

FS_LAYOUT-INFO_FIELDNAME = 'ROW'.

SELECT *

FROM SPFLI

INTO CORRESPONDING FIELDS OF TABLE T_SPFLI.

W_NAME = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = W_NAME

I_CALLBACK_PF_STATUS_SET = 'DEMO'

I_CALLBACK_USER_COMMAND = 'SEC_LIST'

I_STRUCTURE_NAME = 'SPFLI'

IS_LAYOUT = FS_LAYOUT

  • IT_FIELDCAT =

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS = FS_EVENT

  • 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

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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. " IF SY-SUBRC <> 0.

FORM DEMO USING TAB TYPE SLIS_T_EXTAB.

<b> SET PF-STATUS 'STATUS' .</b>

ENDFORM. " FORM DEMO

FORM SEC_LIST USING UCOMM LIKE SY-UCOMM

SELFIELD TYPE SLIS_SELFIELD.

READ TABLE T_SPFLI INDEX SELFIELD-TABINDEX INTO FS_SPFLI.

LOOP AT T_SPFLI INTO FS_SPFLI.

IF FS_SPFLI-BOX = 'X'.

MOVE FS_SPFLI-CARRID TO FS_TAB-CARRID.

MOVE FS_SPFLI-CONNID TO FS_TAB-CONNID.

APPEND FS_TAB TO T_TAB.

FS_SPFLI-ROW = 'C610'.

FS_SPFLI-BOX = '0'.

MODIFY T_SPFLI FROM FS_SPFLI TRANSPORTING ROW BOX.

ENDIF. " IF FS_SPFLI-BOX = 'X'.

ENDLOOP. " LOOP AT T_SPFLI

IF T_TAB IS INITIAL.

MESSAGE 'POSITION ON CHECK BOX ' TYPE 'E'.

ENDIF.

SELFIELD-REFRESH = 'X'.

select carrid

connid

fldate

planetype

seatsmax

seatsocc

seatsmax_b

seatsocc_b

seatsmax_f

seatsocc_f

paymentsum "up to 100 rows

from sflight

into corresponding fields of table t_sflight

FOR ALL ENTRIES IN T_TAB

WHERE CARRID EQ T_TAB-CARRID

AND CONNID EQ T_TAB-CONNID.

REFRESH T_TAB.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = W_NAME

I_CALLBACK_PF_STATUS_SET = 'DEMO2'

I_CALLBACK_USER_COMMAND = 'THIRD_LIST'

I_STRUCTURE_NAME = 'SFLIGHT'

IS_LAYOUT = fs_layout

  • IT_FIELDCAT = fs_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

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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. " IF SY-SUBRC <> 0.

ENDFORM. " LIST_SECOND

FORM DEMO2 USING TAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STATUS1' .

ENDFORM. " DEMO2

FORM THIRD_LIST USING UCOMM1 LIKE SY-UCOMM

SELFIELD TYPE SLIS_SELFIELD.

READ TABLE T_SFLIGHT INDEX SELFIELD-TABINDEX INTO FS_SFLIGHT.

LOOP AT T_SFLIGHT INTO FS_SFLIGHT.

<b> IF FS_SFLIGHT-BOX = 'X'.</b>

MOVE FS_SFLIGHT-CARRID TO FS_TAB1-CARRID.

MOVE FS_SFLIGHT-CONNID TO FS_TAB1-CONNID.

MOVE FS_SFLIGHT-FLDATE TO FS_TAB1-FLDATE.

APPEND FS_TAB1 TO T_TAB1.

FS_SFLIGHT-ROW = 'C610'.

<b> FS_SFLIGHT-BOX = '0'.</b>

<b> MODIFY T_SFLIGHT FROM FS_SFLIGHT TRANSPORTING ROW BOX.</b>

ENDIF. " IF FS_SFLIGHT-BOX = 'X'.

ENDLOOP. " LOOP AT T_SFLIGHT...

IF T_TAB1 IS INITIAL.

MESSAGE 'POSITION ON CHECK BOX ' TYPE 'E'.

ENDIF.

SELFIELD-REFRESH = 'X'.

SELECT *

FROM SBOOK

INTO CORRESPONDING FIELDS OF TABLE T_SBOOK

FOR ALL ENTRIES IN T_TAB1

WHERE CARRID EQ T_TAB1-CARRID

AND CONNID EQ T_TAB1-CONNID

AND FLDATE EQ T_TAB1-FLDATE.

REFRESH T_TAB1.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_STRUCTURE_NAME = 'SBOOK'

  • IS_LAYOUT = FS_LAYOUT

  • 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

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = T_SBOOK

  • 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. " IF SY-SUBRC <> 0.

Former Member
0 Kudos

Yes we can do that...

******************************************************

<b>U check this link ...

http://saptechnical.com/Tutorials/ALV/ALVMainPage.htm

In this click on link ABAP Code Sample - ALV Grid

This will be very helpful </b>

******************************************************

Analyse the following code....

*----


  • CEL COLOR TABLE POPULATION.

*----


FORM INVISIBLE_CELL_CONTENTS.

loop at itab_alv1 INTO WA.

IF WA-EMP_ID = ' '.

EXIT.

ENDIF.

clear itab_alv1.

move-corresponding WA to itab_alv1.

clear celcol1.

celcol1-fieldname = 'EMP_ID'.

celcol1-color-col = syprindex.

append celcol1 to itab_alv1-celcol.

celcol1-fieldname = 'EMP_NAME'.

celcol1-color-col = syprindex + 2.

append celcol1 to itab_alv1-celcol.

************************************************************************

  • CODE FOR MAKING THE GRID CELL CONTENTS INVISIBLE BASED ON THE VALUE OF

*THE CELL.THE CONDITION CHECKED IS WHETHER

  • CERTIFIED FIELD HAS VALUE 'NO'.

************************************************************************

celcol1-fieldname = 'CERTIFIED'.

if itab_alv1-certified = 'NO'.

itab_alv1-emp_name = ' '.

endif.

celcol1-color-col = syprindex + 3.

append celcol1 to itab_alv1-celcol.

MODIFY ITAB_ALV1.

syprindex = celcol1-color-col - 1.

CLEAR ITAB_ALV1.

endloop.

ENDFORM.

reward if it helps u...

sai ramesh.

Message was edited by:

Sai ramesh

Former Member
0 Kudos

Hi,

Create the button 'Deselect all'.

Then use the bloe code.

FORM USER_COMMAND USING u_ucomm TYPE syucomm

us_selfield TYPE slis_selfield.

CASE u_ucomm.

WHEN '&DESE'.

    • deselect all

us_selfield-refresh = c_x .

PERFORM deselect_all .

CLEAR u_ucomm.

ENDFORM.

FORM deselect_all.

LOOP AT i_outtab.

i_outtab-checkbox = '' .

MODIFY i_outtab index sy-tabix.

ENDLOOP.

ENDFORM. " deselect_all

Thanks,

Nava

Message was edited by:

Nava Naidu

p291102
Active Contributor
0 Kudos

Hi,

Herewith i am sending the checkbox alv report. It will be useful for your

requirement i thing so. Pls go through it.

REPORT YMS_CHECKBOXALV.

TYPE-POOLS: slis.

DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

DATA: s_layout TYPE slis_layout_alv.

DATA: BEGIN OF itab OCCURS 0,

icon TYPE icon-id,

vbeln TYPE vbeln,

kunnr TYPE kunnr,

erdat TYPE erdat,

box TYPE c,

END OF itab.

DATA: v_repid TYPE syrepid.

START-OF-SELECTION.

  • Get the data.

SELECT vbeln kunnr erdat UP TO 100 ROWS

FROM vbak

INTO CORRESPONDING FIELDS OF TABLE itab.

IF sy-subrc <> 0.

MESSAGE s208(00) WITH 'No data found'.

LEAVE LIST-PROCESSING.

ENDIF.

  • Modify the record with red light.

itab-icon = '@0A@'.

MODIFY itab TRANSPORTING icon WHERE NOT vbeln IS initial.

v_repid = sy-repid.

  • Get the field catalog.

CLEAR: s_fieldcatalog.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'ICON'.

s_fieldcatalog-tabname = 'ITAB'.

s_fieldcatalog-seltext_l = 'Status'.

s_fieldcatalog-icon = 'X'.

APPEND s_fieldcatalog TO t_fieldcatalog.

CLEAR: s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'ITAB'.

s_fieldcatalog-rollname = 'VBELN'.

APPEND s_fieldcatalog TO t_fieldcatalog.

CLEAR: s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'KUNNR'.

s_fieldcatalog-tabname = 'ITAB'.

s_fieldcatalog-rollname = 'KUNNR'.

APPEND s_fieldcatalog TO t_fieldcatalog.

CLEAR: s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'ERDAT'.

s_fieldcatalog-tabname = 'ITAB'.

s_fieldcatalog-rollname = 'ERDAT'.

APPEND s_fieldcatalog TO t_fieldcatalog.

  • Set the layout.

s_layout-box_fieldname = 'BOX'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = v_repid

is_layout = s_layout

i_callback_pf_status_set = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = t_fieldcatalog[]

TABLES

t_outtab = itab.

----


  • FORM SET_PF_STATUS *

----


  • ........ *

----


  • --> EXTAB *

----


FORM set_pf_status USING extab TYPE slis_t_extab.

SET PF-STATUS 'TEST2'.

ENDFORM.

----


  • FORM user_command *

----


  • ........ *

----


  • --> UCOMM *

  • --> SELFIELD *

----


FORM user_command USING ucomm LIKE sy-ucomm

selfield TYPE slis_selfield.

  • Check the ucomm.

IF ucomm = 'DETAIL'.

LOOP AT itab WHERE box = 'X'.

itab-icon = '@08@'.

MODIFY itab TRANSPORTING icon.

ENDLOOP.

ENDIF.

selfield-refresh = 'X'.

ENDFORM.

Thanks,

Shankar

Former Member
0 Kudos

Is there any method to do this.