03-12-2007 10:23 AM
Is there any method to deselect the rows of ALV which were initially selected.
03-12-2007 10:25 AM
Hi
Are you using checkbox in your ALV?.
Please explain in detail about the issue.
Nava
Message was edited by:
Nava Naidu
03-12-2007 10:32 AM
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.
03-12-2007 10:47 AM
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
03-12-2007 10:54 AM
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
03-12-2007 10:55 AM
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
03-12-2007 11:36 AM