‎2008 Jul 11 7:10 AM
hi experts,
i have display a check box for each record so as to select some of the records for further process.
can anybody help me.
‎2008 Jul 11 7:16 AM
Hi, add checkbox field in ur internal table.
declare layout like this.....
SET PF-STATUS 'STANDARD'.( for ur GUI status)
PERFORM create_f_catalog.
PERFORM SET_LAYOUT.
IF NOT ifinal[] IS INITIAL.
repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'REPID'
I_CALLBACK_PF_STATUS_SET = 'STANDARD'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = alv_layout
IT_FIELDCAT = gt_fieldcat
i_default = 'X'
I_SAVE = 'A'
IT_EVENTS = i_alv_event
TABLES
T_OUTTAB = ifinal.
ELSE.
MESSAGE I000(yw) WITH 'No Data Found'.
SET SCREEN 0.
ENDIF.
FORM SET_LAYOUT.
alv_layout-box_fieldname = 'CHECKBOX'.
ENDFORM.
‎2008 Jul 11 7:12 AM
Hi Sudheer,
Please check this link
Reading Lines from Lists
http://help.sap.com/saphelp_nw70/helpdata/en/9f/dba42335c111d1829f0000e829fbfe/content.htm
http://abapreports.blogspot.com/2008/06/handling-check-box-in-alv-report-in-sap.html
Best regards,
raam
‎2008 Jul 11 7:12 AM
Hi,
Check this:
https://forums.sdn.sap.com/click.jspa?searchID=13934135&messageID=3618873
Regards,
Shiva Kumar
‎2008 Jul 11 7:13 AM
Hi,
Data:
check type c.
Loop at itab into wa.
Write:
check as CHECKBOX.,
wa-field.
Endloop.
Regards,
Sujit
‎2008 Jul 11 7:14 AM
Hi Sudheer.
Try using this code, I have used for flight scenarios:
tables: sflight, spfli.
parameters:
p_carrid like spfli-carrid.
data:
begin of fs_spflis,
carrid like spfli-carrid,
connid like spfli-connid,
airpfrom like spfli-airpfrom,
airpto like spfli-airpto,
deptime like spfli-deptime,
arrtime like spfli-arrtime,
end of fs_spflis.
data:
begin of fs_sflights,
carrid like sflight-carrid,
connid like sflight-connid,
fldate like sflight-fldate,
seatsmax like sflight-seatsmax,
seatsocc like sflight-seatsocc,
end of fs_sflights.
data:
t_spflis like
standard table
of fs_spflis.
data:
t_sflights like
standard table
of fs_sflights.
data:
box(1) type c,
w_linno like sy-linno.
start-of-selection.
set pf-status 'CHECK'.
select carrid
connid
airpfrom
airpto
deptime
arrtime
from spfli
into table
t_spflis
where carrid = p_carrid.
write:/5 'Carrier id'(001) color 1 intensified,
25 'Connect id'(002) color 2 intensified,
45 'Deptr Airpt'(003) color 3 intensified,
65 'Destn Airpt'(004) color 4 intensified,
85 'Deptr Time'(005) color 5 intensified,
105 'Arriv Time'(006) color 6 intensified.
skip 1.
loop at t_spflis into fs_spflis.
write:/ box as checkbox,
fs_spflis-carrid under text-001,
fs_spflis-connid under text-002,
fs_spflis-airpfrom under text-003,
fs_spflis-airpto under text-004,
fs_spflis-deptime under text-005,
fs_spflis-arrtime under text-006.
hide: fs_spflis-carrid, fs_spflis-connid.
endloop.
end-of-selection.
w_linno = sy-linno - 1.
top-of-page.
write: 'List of flight details'.
uline.
top-of-page during line-selection.
write: ' '.
uline.
at user-command.
select carrid
connid
fldate
seatsmax
seatsocc
from sflight
into table
t_sflights.
write:/5 'Carrier id'(001) color 1 intensified,
25 'Connect id'(002) color 2 intensified,
45 'Flight date'(009) color 3 intensified,
60 'Max seats'(007) color 4 intensified,
75 'Occp seats'(008) color 5 intensified.
skip 1.
case sy-ucomm.
when 'READ'.
box = space.
set pf-status 'CHECK' excluding 'READ'.
do w_linno times.
read line sy-index field value box into box.
if box = 'X'.
loop at t_sflights into fs_sflights
where carrid = fs_spflis-carrid
and connid = fs_spflis-connid.
write:/ fs_sflights-carrid under text-001,
fs_sflights-connid under text-002,
fs_sflights-fldate under text-009,
fs_sflights-seatsmax under text-007,
fs_sflights-seatsocc under text-008.
endloop.
endif.
enddo.Please, let me know if any issues.
Good Luck & Regards.
Harsh Dave
‎2008 Jul 11 7:16 AM
Hi, add checkbox field in ur internal table.
declare layout like this.....
SET PF-STATUS 'STANDARD'.( for ur GUI status)
PERFORM create_f_catalog.
PERFORM SET_LAYOUT.
IF NOT ifinal[] IS INITIAL.
repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'REPID'
I_CALLBACK_PF_STATUS_SET = 'STANDARD'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = alv_layout
IT_FIELDCAT = gt_fieldcat
i_default = 'X'
I_SAVE = 'A'
IT_EVENTS = i_alv_event
TABLES
T_OUTTAB = ifinal.
ELSE.
MESSAGE I000(yw) WITH 'No Data Found'.
SET SCREEN 0.
ENDIF.
FORM SET_LAYOUT.
alv_layout-box_fieldname = 'CHECKBOX'.
ENDFORM.
‎2008 Jul 11 7:17 AM
hi,
Plz check out this thread.
http://abapreports.blogspot.com/2008/06/handling-check-box-in-alv-report-in-sap.html
Hope this will help.
Regards
Sumit Agarwal
‎2008 Jul 11 7:24 AM
Hiii!
Check out this sample code
REPORT z_prog.
DATA:
BEGIN OF fs_spfli,
carrid LIKE spfli-carrid, " Airline Code
connid LIKE spfli-connid, " Flight Connection Number
airpfrom LIKE spfli-airpfrom, " Departure airport
airpto LIKE spfli-airpto, " Destination airport
deptime LIKE spfli-deptime, " Departure time
arrtime LIKE spfli-arrtime, " Arrival time
END OF fs_spfli,
BEGIN OF fs_sflight,
carrid LIKE sflight-carrid, " Airline Code
connid LIKE sflight-connid, " Flight Connection Number
fldate LIKE sflight-fldate, " Flight date
seatsmax LIKE sflight-seatsmax, " Maximum seats in economy class
seatsocc LIKE sflight-seatsocc, " Occupied seats in economyclass
END OF fs_sflight,
w_checkbox TYPE c, " Variable for checkbox
w_currentline TYPE i, " Variable to display current
" line
w_lines TYPE i,
w_read TYPE c .
*"--------------------------------------------------------------------*
* Internal Table to hold flight schedule information *
*"--------------------------------------------------------------------*
DATA:
t_spfli LIKE
TABLE OF
fs_spfli.
*"--------------------------------------------------------------------*
* Internal Table to hold flight information *
*"--------------------------------------------------------------------*
DATA:
t_sflight LIKE
TABLE OF
fs_sflight,
t_sflight1 LIKE t_sflight.
*"--------------------------------------------------------------------*
* START-OF-SELECTION Event *
*"--------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM get_data_spfli.
*"--------------------------------------------------------------------*
* END-OF-SELECTION Event *
*"--------------------------------------------------------------------*
END-OF-SELECTION.
SET PF-STATUS 'MENU'.
PERFORM display_data_spfli.
*"--------------------------------------------------------------------*
* TOP-OF-PAGE Event *
*"--------------------------------------------------------------------*
TOP-OF-PAGE.
PERFORM header_table_spfli.
*"--------------------------------------------------------------------*
* AT LINE-SELECTION EVENT *
*"--------------------------------------------------------------------*
AT LINE-SELECTION.
SET PF-STATUS space.
IF sy-lsind EQ 1 AND sy-lilli GE 4.
PERFORM get_data_sflight.
PERFORM display_data_sflight.
PERFORM flag_line.
ENDIF. " IF sy-lsind EQ 1..
*"--------------------------------------------------------------------*
* AT USER-COMMAND *
*"--------------------------------------------------------------------*
AT USER-COMMAND.
IF sy-lsind EQ 1.
SET PF-STATUS space.
CASE sy-ucomm.
WHEN 'DISPLAY'.
PERFORM get_data_sflight1.
PERFORM display_data_sflight.
WHEN 'SELECTALL'.
PERFORM select_all.
PERFORM flag_line.
WHEN 'DESELECTAL'.
PERFORM deselect_all.
PERFORM flag_line.
ENDCASE. " CASE sy-ucomm
ENDIF. " IF sy-lsind EQ 1
*"--------------------------------------------------------------------*
* TOP-OF-PAGE DURING LINE-SELECTION *
*"--------------------------------------------------------------------*
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM sec_list_heading.
*&---------------------------------------------------------------------*
*& Form get_data_spfli
*&---------------------------------------------------------------------*
* This subroutine fetches the data from SPFLI
*----------------------------------------------------------------------*
* This subroutine does not have parameters to pass
*----------------------------------------------------------------------*
FORM get_data_spfli .
SELECT carrid " Airline Code
connid " Flight Connection Number
airpfrom " Departure airport
airpto " Destination airport
deptime " Departure time
arrtime " Arrival time
FROM spfli
INTO TABLE t_spfli.
ENDFORM. " GET_DATA_SPFLI
*&---------------------------------------------------------------------*
*& Form display_data_spfli
*&---------------------------------------------------------------------*
* This subroutine displays the data of SPFLI
*----------------------------------------------------------------------*
* This subroutine does not have parameters to pass
*----------------------------------------------------------------------*
FORM display_data_spfli .
LOOP AT t_spfli INTO fs_spfli.
WRITE: /02 w_checkbox AS CHECKBOX,
05 w_read,
fs_spfli-carrid UNDER text-001,
fs_spfli-connid UNDER text-002,
fs_spfli-airpfrom UNDER text-003,
fs_spfli-airpto UNDER text-004,
fs_spfli-deptime UNDER text-005,
fs_spfli-arrtime UNDER text-006.
HIDE:
fs_spfli-carrid,
fs_spfli-connid.
ENDLOOP. " LOOP AT t_spfli..
ENDFORM. " DISPLAY_DATA_SPFLI
*&---------------------------------------------------------------------*
*& Form header_table_spfli
*&---------------------------------------------------------------------*
* This subroutine diplays the headings of table spfli
*----------------------------------------------------------------------*
* This subroutine does not have parameters to pass
*----------------------------------------------------------------------*
FORM header_table_spfli .
WRITE: /10 text-001 COLOR 4,
25 text-002 COLOR 4,
40 text-003 COLOR 4,
55 text-004 COLOR 4,
70 text-005 COLOR 4,
85 text-006 COLOR 4.
ENDFORM. " HEADER_TABLE
*&---------------------------------------------------------------------*
*& Form get_data_sflight
*&---------------------------------------------------------------------*
* This subroutine fetches the data from SFLIGHT
*----------------------------------------------------------------------*
* This subroutine does not have interface parameters to pass
*----------------------------------------------------------------------*
FORM get_data_sflight .
SELECT carrid " Airline Code
connid " Flight Connection Number
fldate " Flight date
seatsmax " Maximum seats in economy class
seatsocc " Occupied seats in economyclass
FROM sflight
INTO TABLE t_sflight
WHERE carrid EQ fs_spfli-carrid
AND connid EQ fs_spfli-connid.
ENDFORM. " GET_DATA_SFLIGHT
*&---------------------------------------------------------------------*
*& Form display_data_sflight
*&---------------------------------------------------------------------*
* This subroutine displays the SFLIGHT data
*----------------------------------------------------------------------*
* This subroutine does not have interface parameters to pass
*----------------------------------------------------------------------*
FORM display_data_sflight .
LOOP AT t_sflight INTO fs_sflight.
WRITE: / fs_sflight-carrid UNDER text-001,
fs_sflight-connid UNDER text-002,
fs_sflight-fldate UNDER text-007,
fs_sflight-seatsmax UNDER text-008 LEFT-JUSTIFIED,
fs_sflight-seatsocc UNDER text-009 LEFT-JUSTIFIED.
ENDLOOP.
CLEAR: fs_sflight.
ENDFORM. " DISPLAY_DATA_sflight
*&---------------------------------------------------------------------*
*& Form sec_list_heading
*&---------------------------------------------------------------------*
* This subroutine diplays the headings of table spfli
*----------------------------------------------------------------------*
* This subroutine does not have interface parameters to pass
*----------------------------------------------------------------------*
FORM sec_list_heading .
WRITE: /2 text-001 COLOR 4,
15 text-002 COLOR 4,
33 text-007 COLOR 4,
45 text-008 COLOR 4,
60 text-009 COLOR 4.
ENDFORM. " SEC_LIST_HEADING
*&---------------------------------------------------------------------*
*& Form get_data_sflight1
*&---------------------------------------------------------------------*
* This subroutine displays the data from SFLIGHT according to checkbox
* clicked.
*----------------------------------------------------------------------*
* This subroutine does not have interface parameters to pass
*----------------------------------------------------------------------*
FORM get_data_sflight1 .
DATA:
lw_checkbox TYPE c.
DESCRIBE TABLE t_spfli LINES w_lines.
DO w_lines TIMES.
w_currentline = 3 + sy-index.
CLEAR:
w_checkbox,
fs_spfli.
READ LINE w_currentline FIELD VALUE
w_checkbox INTO lw_checkbox
fs_spfli-carrid INTO fs_spfli-carrid
fs_spfli-connid INTO fs_spfli-connid.
IF sy-subrc EQ 0.
IF lw_checkbox EQ 'X'.
SELECT carrid " Airline Code
connid " Flight Connection Number
fldate " Flight Date
seatsmax " Max Seats
seatsocc " Occupied Seats
FROM sflight
INTO TABLE t_sflight1
WHERE carrid EQ fs_spfli-carrid
AND connid EQ fs_spfli-connid.
IF sy-subrc EQ 0.
APPEND LINES OF t_sflight1 TO t_sflight.
ENDIF. " IF sy-subrc EQ 0.
ENDIF. " IF lw_checkbox EQ 'X'
ENDIF. " IF sy-subrc EQ 0.
ENDDO. " DO w_lines TIMES
ENDFORM. " GET_DATA_SFLIGHT1
*&---------------------------------------------------------------------*
*& Form select_all
*&---------------------------------------------------------------------*
* This subroutine selects all the records of SPFLI
*----------------------------------------------------------------------*
* This subroutine does not have interface parameters to pass
*----------------------------------------------------------------------*
FORM select_all .
DESCRIBE TABLE t_spfli LINES w_lines.
DO w_lines TIMES.
w_currentline = sy-index + 3.
READ LINE w_currentline FIELD VALUE
w_checkbox INTO w_checkbox.
IF sy-subrc = 0.
MODIFY LINE w_currentline FIELD VALUE
w_checkbox FROM 'X'.
ENDIF. " IF sy-subrc = 0.
ENDDO. " DO lw_line TIMES.
ENDFORM. " SELECT_ALL
*&---------------------------------------------------------------------*
*& Form deselect_all
*&---------------------------------------------------------------------*
* This subroutine deselects all the records of SPFLI
*----------------------------------------------------------------------*
* This subroutine does not have interface parameters to pass
*----------------------------------------------------------------------*
FORM deselect_all .
DESCRIBE TABLE t_spfli LINES w_lines.
DO w_lines TIMES.
w_currentline = sy-index + 3.
READ LINE w_currentline FIELD VALUE
w_checkbox INTO w_checkbox.
IF sy-subrc = 0.
MODIFY LINE w_currentline FIELD VALUE
w_checkbox FROM ' '.
ENDIF. " IF sy-subrc = 0.
ENDDO. " DO lw_line TIMES.
ENDFORM. " DESELECT_ALL
*&---------------------------------------------------------------------*
*& Form flag_line
*&---------------------------------------------------------------------*
* This subroutine flags the line which has been read
*----------------------------------------------------------------------*
* This subroutine does not have interface parameters to pass
*----------------------------------------------------------------------*
FORM flag_line .
DESCRIBE TABLE t_spfli LINES w_lines.
DO w_lines TIMES.
w_checkbox = 'X'.
READ LINE sy-lilli FIELD VALUE
w_read INTO w_read
w_checkbox INTO w_checkbox.
IF sy-subrc EQ 0.
MODIFY CURRENT LINE
FIELD FORMAT w_checkbox INPUT OFF
FIELD VALUE w_read FROM '*'.
ENDIF. " IF sy-subrc EQ 0
ENDDO. " DO w_lines TIMES
ENDFORM. " FLAG_LINE
Regards
Abhijeet
Edited by: Abhijeet Kulshreshtha on Jul 11, 2008 8:25 AM