2009 Dec 14 4:20 AM
Hi All,
I am displaying some filelds in my report using interactive ALV. The first field in the output is a Checkbox.
In the Application tool bar there are two buttons Select All (F5) & Deselect All(F6). My requirement is when I click on Select All
all checkboxes should be checked and when I click on DeSelect All all checkboxes should be unchecked.
Any body please tell me how to do this?
Thanks,
Neethu.
Hi All,
I am displaying some filelds in my report using interactive ALV. The first field in the output is a Checkbox.
In the Application tool bar there are two buttons Select All (F5) & Deselect All(F6). My requirement is when I click on Select All
all checkboxes should be checked and when I click on DeSelect All all checkboxes should be unchecked.
Any body please tell me how to do this?
Thanks,
Neethu.
2009 Dec 14 4:29 AM
Hi Neethu ,
REPORT ZALV_LIST4.
TABLES:
SPFLI.
TYPE-POOLS:
SLIS.
DATA:
T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FS_FIELDCAT LIKE LINE OF T_FIELDCAT,
FS_LAYOUT TYPE SLIS_LAYOUT_ALV ,
W_COLOR(3) ,
W_ROW TYPE I,
W_FIELDNAME(20),
W_PROG TYPE SY-REPID.
DATA:
BEGIN OF T_SPFLI OCCURS 0,
COLOR(3),
CHECKBOX ,
CELL TYPE SLIS_T_SPECIALCOL_ALV,
CARRID TYPE SPFLI-CARRID,
CONNID TYPE SPFLI-CONNID,
CITYFROM TYPE SPFLI-CITYFROM,
CITYTO TYPE SPFLI-CITYTO,
DISTANCE TYPE SPFLI-DISTANCE,
END OF T_SPFLI.
DATA:
FS_CELL LIKE LINE OF T_SPFLI-CELL.
SELECT *
FROM SPFLI
INTO CORRESPONDING FIELDS OF TABLE T_SPFLI.
FS_FIELDCAT-FIELDNAME = 'CARRID'.
FS_FIELDCAT-REF_TABNAME = 'SPFLI'.
FS_FIELDCAT-COL_POS = 1.
FS_FIELDCAT-KEY = 'X'.
FS_FIELDCAT-HOTSPOT = 'X'.
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT .
FS_FIELDCAT-FIELDNAME = 'CONNID'.
FS_FIELDCAT-REF_TABNAME = 'SPFLI'.
FS_FIELDCAT-COL_POS = 2.
FS_FIELDCAT-KEY = 'X'.
FS_FIELDCAT-HOTSPOT = 'X'.
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT .
FS_FIELDCAT-FIELDNAME = 'DISTANCE'.
FS_FIELDCAT-REF_TABNAME = 'SPFLI'.
*FS_FIELDCAT-INPUT = 'X'.
FS_FIELDCAT-COL_POS = 3.
FS_FIELDCAT-KEY = ' '.
FS_FIELDCAT-EDIT = 'X'.
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'CITYFROM'.
FS_FIELDCAT-REF_TABNAME = 'SPFLI'.
FS_FIELDCAT-COL_POS = 4.
FS_FIELDCAT-KEY = ' '.
APPEND FS_FIELDCAT TO T_FIELDCAT.
LOOP AT T_SPFLI WHERE DISTANCE GT 600.
W_FIELDNAME = 'DISTANCE'.
FS_CELL-FIELDNAME = W_FIELDNAME .
FS_CELL-COLOR-COL = 5.
FS_CELL-NOKEYCOL = 'X'.
APPEND FS_CELL TO T_SPFLI-CELL.
MODIFY T_SPFLI TRANSPORTING CELL.
ENDLOOP.
FS_LAYOUT-INFO_FIELDNAME = 'COLOR'.
FS_LAYOUT-BOX_FIELDNAME = 'CHECKBOX'.
FS_LAYOUT-COLTAB_FIELDNAME = 'CELL'.
FS_LAYOUT-F2CODE = '&ETA'.
W_PROG = SY-REPID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_PROG
IS_LAYOUT = FS_LAYOUT
IT_FIELDCAT = T_FIELDCAT
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.
In the above program, the contents of the field u2018DISTANCEu2019 are colored depending on a condition (i.e., values greater than 600). The list will appear as follows.
Try This Code .
2009 Dec 14 4:29 AM
Neethu,
You need to write following code in your subroutine which handles the user commands.
FORM user_command USING ucomm TYPE sy-ucomm selfield TYPE slis_selfield.
IF ucomm = 'SEL_ALL'.
LOOP AT <your internal table>.
<wa>-<checkboxfield> = 'X'.
MODIFY <your internal table> INDEX sy-tabix from <wa>.
ENDLOOP.
selfield-refresh = 'X'.
ELSEIF ucomm = 'DESEL_ALL'.
LOOP AT <your internal table>.
<wa>-<checkboxfield> = space.
MODIFY <your internal table> INDEX sy-tabix from <wa>.
ENDLOOP.
selfield-refresh = 'X'.
ENDIF.
ENDFORM. "user_command
2009 Dec 14 5:42 AM
hi,
try this code ...
CASE sy-ucomm.
WHEN 'SLCT'. " FUNCTION CODE FOR SELECT ALL
LOOP AT IT INTO WA .
WA-FIELDNAME = 'X'.
MODIFY IT FROM WA.
ENDLOOP.
WHEN 'DSLT'. " FUNCTION CODE FOR DESELECT ALL
LOOP AT IT INTO WA .
WA-FIELDNAME = ' '.
MODIFY IT FROM WA.
ENDLOOP.
ENDCASE.
2009 Dec 14 5:46 AM
hi,
try this code ...
CASE sy-ucomm.
WHEN 'SLCT'. " FUNCTION CODE FOR SELECT ALL
LOOP AT IT INTO WA .
WA-FIELDNAME = 'X'.
MODIFY IT FROM WA.
ENDLOOP.
WHEN 'DSLT'. " FUNCTION CODE FOR DESELECT ALL
LOOP AT IT INTO WA .
WA-FIELDNAME = ' '.
MODIFY IT FROM WA.
ENDLOOP.
ENDCASE.
2009 Dec 14 6:17 AM
Hi ,
Try this complete program
REport ZPR_Close
NO STANDARD PAGE HEADING.
TABLES eban.
TYPE-pools : SLIS.
Data : BEGIN OF I_TAB OCCURS 0 ,
chk(1),
BANFN LIKE EBAN-BANFN, " P.R. No.
BNFPO LIKE EBAN-BNFPO, " Item No. Of P.R.
BSART LIKE EBAN-BSART, " Doc. Type
ERNAM LIKE EBAN-ERNAM, " cREATED bY
AFNAM LIKE EBAN-AFNAM, " Requisitioner
TXZ01 LIKE EBAN-TXZ01, " Material Desc
MATNR LIKE EBAN-MATNR, " Material Number
WERKS LIKE EBAN-WERKS, " Plant
MENGE LIKE EBAN-MENGE, " Quantity Requested
MEINS LIKE EBAN-MEINS, " Unit of Measure
BADAT LIKE EBAN-BADAT, " Requsition Date
LFDAT LIKE EBAN-LFDAT, " Delivery Date
PREIS LIKE EBAN-PREIS, " Price
end of i_tab.
*data : c_sy_subrc like sy-subrc.
Data : wa_tab like i_tab,
**-- Events Declaration.
IT_EVENTS TYPE SLIS_T_EVENT ,
WA_EVENTS TYPE SLIS_ALV_EVENT.
DATA: gs_layout TYPE slis_layout_alv,
i_events TYPE slis_t_event,
s_fieldtab TYPE slis_fieldcat_alv,
i_fieldtab TYPE slis_t_fieldcat_alv,
ls_line TYPE slis_listheader,
g_repid like sy-repid,
g_save,
gt_top_of_page TYPE slis_t_listheader.
DATA : X TYPE I.
clear i_tab[].
SELECTION-SCREEN BEGIN OF BLOCK BLK1.
SELECT-OPTIONS:
P_WERKS FOR EBAN-WERKS OBLIGATORY NO INTERVALS NO-EXTENSION,
P_BADAT FOR EBAN-BADAT DEFAULT SY-DATUM OBLIGATORY NO INTERVALS NO-EXTENSION.
Parameters: P_days(3) type n default 60 OBLIGATORY .
SELECTION-SCREEN END OF BLOCK BLK1.
*----
G L O B A L D A T A
*----
DATA: ok_code LIKE sy-ucomm.
*start-of-selection.
start-of-selection.
PERFORM GET_DATA.
****--Perform to Get Event.
PERFORM EVENT.
perform field_catalog.
perform display_list.
*end-of-selection.
end-of-selection.
&----
*& Form get_data
&----
text
----
FORM get_data .
data : ld_badat type sy-datum .
ld_badat = P_BADAT-low - P_days.
select * into CORRESPONDING FIELDS OF TABLE I_TAB
FROM eban
WHERE statu = 'N' and
WERKS = P_WERKS-low and
BADAT lt ld_badat and
loekz ne 'X' and
EBAKZ ne 'X'.
if sy-subrc eq 0 .
ENDIF .
ENDFORM. " get_data
&----
*& Form field_catalog
&----
text
----
FORM field_catalog .
CLEAR : s_fieldtab,
i_fieldtab[].
data :pos type i.
pos = 1.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'CHK'.
s_fieldtab-seltext_l = 'CLOSE'.
s_fieldtab-checkbox = 'X'.
s_fieldtab-edit = 'X'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
clear s_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'BANFN'.
s_fieldtab-seltext_l = 'P.R. No'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '10'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'BNFPO'.
s_fieldtab-seltext_l = 'Item No'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '6'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'BSART'.
s_fieldtab-seltext_l = 'Doc. Type'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '10'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'ERNAM'.
s_fieldtab-seltext_l = 'Created By'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '10'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'AFNAM'.
s_fieldtab-seltext_l = 'Requisitioner'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '10'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'TXZ01'.
s_fieldtab-seltext_l = 'Material Desc'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '10'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'MATNR'.
s_fieldtab-seltext_l = 'Material Number'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '10'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'WERKS'.
s_fieldtab-seltext_l = 'Plant'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '10'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
pos = pos + 1.
s_fieldtab-col_pos = pos.
s_fieldtab-fieldname = 'MENGE'.
s_fieldtab-seltext_l = 'Quantity Requested'.
s_fieldtab-edit = 'X'.
s_fieldtab-key = 'X'.
s_fieldtab-outputlen = '10'.
s_fieldtab-tabname = 'I_TAB'.
APPEND s_fieldtab TO i_fieldtab.
ENDFORM. " field_catalog
*****************************************************************
Form Set_pf_status
Notes: Called by FM REUSE_ALV_GRID_DISPLAY
*****************************************************************
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM. "Set_pf_status
&----
*& Form User_command
&----
text
----
-->R_UCOMM text
-->RS_SELFIELD text
----
Form User_command using r_ucomm like sy-ucomm rs_selfield type slis_selfield.
data : li_count type I.
if r_ucomm EQ 'SEL'. "SElect
LOOP AT I_TAB .
I_TAB-CHK = 'X'.
MODIFY i_TAB TRANSPORTING CHK .
clear I_TAB .
ENDLOOP.
rs_selfield-refresh = 'X'.
endif.
if r_ucomm EQ 'DE_SEL'. "DEselect All
LOOP AT I_TAB .
I_TAB-CHK = ' '.
MODIFY i_TAB TRANSPORTING CHK .
clear I_TAB .
ENDLOOP.
rs_selfield-refresh = 'X'.
endif.
if r_ucomm eq 'CLOSE'.
LEAVE PROGRAM .
endif.
endform. "User_command
&----
*& Form layout_init
&----
text
----
-->I_LAYOUT text
----
FORM layout_init CHANGING i_layout TYPE slis_layout_alv.
CLEAR i_layout.
i_layout-colwidth_optimize = 'X'.
i_layout-edit = 'X'.
ENDFORM. "layout_init
&----
*& Form display_list
&----
text
----
FORM display_list .
perform layout_init CHANGING gs_layout.
data : IGs like LVC_S_GLAY .
IGs-EDT_CLL_CB = 'X'.
g_repid = SY-CPROG .
*append igs.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = g_repid
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Close Purchase Requisition'
I_GRID_SETTINGS = igs
IS_LAYOUT = gs_layout
IT_FIELDCAT = i_fieldtab[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = g_save
IS_VARIANT =
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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = i_tab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
write 😕 sy-subrc.
ENDIF.
*& Form display_list
&----
text
----
--> p1 text
<-- p2 text
----
ENDFORM. " display_list