2007 Mar 23 5:19 AM
how will create check box in basic list display.
when we select one check box basic list then we need to go second secondary list
could u plz explain clearly with code and comments.
2007 Mar 23 5:22 AM
Hi..........
u can create check box on list as below
write check as checkbox.
go through the following code
*" Data Declaration..........................................
"----
DATA:
W_CHECK TYPE C , " Check Box
W_STAR TYPE C VALUE ''. " Star Variable
*" Declaration of Structures to hold Flight information.
"----
DATA:
BEGIN OF FS_SPFLI,
CARRID TYPE SPFLI-CARRID, " Carrier Id
CONNID TYPE SPFLI-CONNID, " Connection Id
AIRPFROM TYPE SPFLI-AIRPFROM, " Depatrure Airport
AIRPTO TYPE SPFLI-AIRPTO, " Destination Airport
DEPTIME TYPE SPFLI-DEPTIME, " Departure Time
ARRTIME TYPE SPFLI-ARRTIME, " Arrival Time
END OF FS_SPFLI.
*" Declaration of Structures to hold Flight information.
"----
DATA:
BEGIN OF FS_SSPFLI,
CARRID TYPE SPFLI-CARRID, " Carrier Id
CONNID TYPE SPFLI-CONNID, " Connection Id
END OF FS_SSPFLI.
*" Declaration of Structure to hold Seats Occupancy information
"----
DATA:
BEGIN OF FS_SFLIGHT,
FLDATE TYPE SFLIGHT-FLDATE, " Flight Date
SEATSMAX TYPE SFLIGHT-SEATSMAX," Maximum Seats
SEATSOCC TYPE SFLIGHT-SEATSOCC," Occupied Seats
END OF FS_SFLIGHT.
*" Tables Declaration to hold Flight information
"----
DATA:
T_SPFLI LIKE
STANDARD TABLE
OF FS_SPFLI.
*" Tables Declaration to hold Flight information
"----
DATA:
T_SSPFLI LIKE STANDARD TABLE OF FS_SPFLI.
*" Tables Declaration to hold Seats Occupancy information
"----
DATA:
T_SFLIGHT LIKE STANDARD TABLE OF FS_SFLIGHT.
*" START-OF-SELECTION EVENT..........................................
"----
START-OF-SELECTION.
PERFORM SELECT_SPFLI.
*" END-OF-SELECTION EVENT..........................................
"----
END-OF-SELECTION.
SET PF-STATUS 'FLIGHT'.
PERFORM DISPLAY_SPFLI.
*" AT USER-COMMAND EVENT..........................................
"----
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'FLIGHT'.
PERFORM DISPLAY_SFLIGHT.
ENDCASE. " CASE SY-UCOMM..
----
Form SELECT_SPFLI
----
This subroutine selects the SPFLI details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM SELECT_SPFLI .
SELECT CARRID " Carrier Id
CONNID " Connection Id
AIRPFROM " Depatrure Airport
AIRPTO " Destination Airport
DEPTIME " Departure Time
ARRTIME " Arrival Time
FROM SPFLI
INTO TABLE T_SPFLI.
IF SY-SUBRC NE 0.
MESSAGE ' NO DATA FOUND ' TYPE 'I'.
ENDIF. " IF SY-SUBRC EQ 0.
ENDFORM. " SELECT_SPFLI
----
Form DISPLAY_SPFLI
----
This subroutine displays the SPFLI details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM DISPLAY_SPFLI .
WRITE:5'CarrID'(001),
15 'ConnID'(002),
30 'Des Airport'(003),
45 'Dept Airport'(004),
60 'Des Time'(005),
75 'Arr Time'(006).
SKIP.
LOOP AT T_SPFLI INTO FS_SPFLI.
WRITE:/ W_CHECK AS CHECKBOX.
WRITE:5 FS_SPFLI-CARRID,
15 FS_SPFLI-CONNID,
30 FS_SPFLI-AIRPFROM,
45 FS_SPFLI-AIRPTO,
60 FS_SPFLI-DEPTIME,
75 FS_SPFLI-ARRTIME.
WRITE:100 W_STAR.
ENDLOOP. " LOOP AT.....
ENDFORM. " DISPLAY_SPFLI
----
Form DISPLAY_SFLIGHT
----
This subroutine displays the SFLIGHT details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM DISPLAY_SFLIGHT .
DATA:
LW_LINES TYPE I, " No OF Lines
LW_LINENO TYPE I, " Line Number
LW_COUNT TYPE I. " Counter
DESCRIBE TABLE T_SPFLI LINES LW_LINES.
LW_LINES = LW_LINES + 5.
DO LW_LINES TIMES.
READ LINE LW_LINENO
FIELD VALUE W_CHECK INTO W_CHECK
FS_SPFLI-CARRID INTO FS_SPFLI-CARRID
FS_SPFLI-CONNID INTO FS_SPFLI-CONNID.
IF W_CHECK EQ 'X'.
W_STAR = '*'.
MODIFY LINE LW_LINENO FIELD VALUE W_STAR.
MODIFY LINE LW_LINENO FIELD FORMAT W_CHECK INPUT OFF .
ADD 1 TO LW_COUNT.
FS_SSPFLI-CARRID = FS_SPFLI-CARRID.
FS_SSPFLI-CONNID = FS_SPFLI-CONNID.
APPEND FS_SSPFLI TO T_SSPFLI.
CLEAR T_SPFLI.
ENDIF. " IF W_CHECKBOX.....
ADD 1 TO LW_LINENO.
ENDDO. " DO LW_LINES....
IF LW_LINENO EQ 0.
MESSAGE ' NO RECORDS SELECTED' TYPE 'I'.
ENDIF. " IF LW_LINENO.....
SELECT FLDATE " Flight date
SEATSMAX " Maximum Seats
SEATSOCC " Seats occupied
FROM SFLIGHT
INTO TABLE T_SFLIGHT
FOR ALL ENTRIES IN T_SSPFLI
WHERE CARRID EQ T_SSPFLI-CARRID
AND CONNID EQ T_SSPFLI-CONNID.
IF SY-SUBRC NE 0.
MESSAGE ' NO DATA FOUND ' TYPE 'I'.
ENDIF. " IF SY-SUBRC EQ 0.
WRITE:/ 'Flight date '(007),20' Max seats'(008),40'Occ seats'(009).
SKIP.
LOOP AT T_SFLIGHT INTO FS_SFLIGHT.
WRITE:/ FS_SFLIGHT-FLDATE,
20 FS_SFLIGHT-SEATSMAX,
40 FS_SFLIGHT-SEATSOCC.
ENDLOOP. " LOOP AT......
ENDFORM. " DISPLAY_SFLIGHT
Message was edited by:
Haritha
Hi..........
u can create check box on list as below
write check as checkbox.
go through the following code
*" Data Declaration..........................................
"----
DATA:
W_CHECK TYPE C , " Check Box
W_STAR TYPE C VALUE ''. " Star Variable
*" Declaration of Structures to hold Flight information.
"----
DATA:
BEGIN OF FS_SPFLI,
CARRID TYPE SPFLI-CARRID, " Carrier Id
CONNID TYPE SPFLI-CONNID, " Connection Id
AIRPFROM TYPE SPFLI-AIRPFROM, " Depatrure Airport
AIRPTO TYPE SPFLI-AIRPTO, " Destination Airport
DEPTIME TYPE SPFLI-DEPTIME, " Departure Time
ARRTIME TYPE SPFLI-ARRTIME, " Arrival Time
END OF FS_SPFLI.
*" Declaration of Structures to hold Flight information.
"----
DATA:
BEGIN OF FS_SSPFLI,
CARRID TYPE SPFLI-CARRID, " Carrier Id
CONNID TYPE SPFLI-CONNID, " Connection Id
END OF FS_SSPFLI.
*" Declaration of Structure to hold Seats Occupancy information
"----
DATA:
BEGIN OF FS_SFLIGHT,
FLDATE TYPE SFLIGHT-FLDATE, " Flight Date
SEATSMAX TYPE SFLIGHT-SEATSMAX," Maximum Seats
SEATSOCC TYPE SFLIGHT-SEATSOCC," Occupied Seats
END OF FS_SFLIGHT.
*" Tables Declaration to hold Flight information
"----
DATA:
T_SPFLI LIKE
STANDARD TABLE
OF FS_SPFLI.
*" Tables Declaration to hold Flight information
"----
DATA:
T_SSPFLI LIKE STANDARD TABLE OF FS_SPFLI.
*" Tables Declaration to hold Seats Occupancy information
"----
DATA:
T_SFLIGHT LIKE STANDARD TABLE OF FS_SFLIGHT.
*" START-OF-SELECTION EVENT..........................................
"----
START-OF-SELECTION.
PERFORM SELECT_SPFLI.
*" END-OF-SELECTION EVENT..........................................
"----
END-OF-SELECTION.
SET PF-STATUS 'FLIGHT'.
PERFORM DISPLAY_SPFLI.
*" AT USER-COMMAND EVENT..........................................
"----
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'FLIGHT'.
PERFORM DISPLAY_SFLIGHT.
ENDCASE. " CASE SY-UCOMM..
----
Form SELECT_SPFLI
----
This subroutine selects the SPFLI details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM SELECT_SPFLI .
SELECT CARRID " Carrier Id
CONNID " Connection Id
AIRPFROM " Depatrure Airport
AIRPTO " Destination Airport
DEPTIME " Departure Time
ARRTIME " Arrival Time
FROM SPFLI
INTO TABLE T_SPFLI.
IF SY-SUBRC NE 0.
MESSAGE ' NO DATA FOUND ' TYPE 'I'.
ENDIF. " IF SY-SUBRC EQ 0.
ENDFORM. " SELECT_SPFLI
----
Form DISPLAY_SPFLI
----
This subroutine displays the SPFLI details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM DISPLAY_SPFLI .
WRITE:5'CarrID'(001),
15 'ConnID'(002),
30 'Des Airport'(003),
45 'Dept Airport'(004),
60 'Des Time'(005),
75 'Arr Time'(006).
SKIP.
LOOP AT T_SPFLI INTO FS_SPFLI.
WRITE:/ W_CHECK AS CHECKBOX.
WRITE:5 FS_SPFLI-CARRID,
15 FS_SPFLI-CONNID,
30 FS_SPFLI-AIRPFROM,
45 FS_SPFLI-AIRPTO,
60 FS_SPFLI-DEPTIME,
75 FS_SPFLI-ARRTIME.
WRITE:100 W_STAR.
ENDLOOP. " LOOP AT.....
ENDFORM. " DISPLAY_SPFLI
----
Form DISPLAY_SFLIGHT
----
This subroutine displays the SFLIGHT details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM DISPLAY_SFLIGHT .
DATA:
LW_LINES TYPE I, " No OF Lines
LW_LINENO TYPE I, " Line Number
LW_COUNT TYPE I. " Counter
DESCRIBE TABLE T_SPFLI LINES LW_LINES.
LW_LINES = LW_LINES + 5.
DO LW_LINES TIMES.
READ LINE LW_LINENO
FIELD VALUE W_CHECK INTO W_CHECK
FS_SPFLI-CARRID INTO FS_SPFLI-CARRID
FS_SPFLI-CONNID INTO FS_SPFLI-CONNID.
IF W_CHECK EQ 'X'.
W_STAR = '*'.
MODIFY LINE LW_LINENO FIELD VALUE W_STAR.
MODIFY LINE LW_LINENO FIELD FORMAT W_CHECK INPUT OFF .
ADD 1 TO LW_COUNT.
FS_SSPFLI-CARRID = FS_SPFLI-CARRID.
FS_SSPFLI-CONNID = FS_SPFLI-CONNID.
APPEND FS_SSPFLI TO T_SSPFLI.
CLEAR T_SPFLI.
ENDIF. " IF W_CHECKBOX.....
ADD 1 TO LW_LINENO.
ENDDO. " DO LW_LINES....
IF LW_LINENO EQ 0.
MESSAGE ' NO RECORDS SELECTED' TYPE 'I'.
ENDIF. " IF LW_LINENO.....
SELECT FLDATE " Flight date
SEATSMAX " Maximum Seats
SEATSOCC " Seats occupied
FROM SFLIGHT
INTO TABLE T_SFLIGHT
FOR ALL ENTRIES IN T_SSPFLI
WHERE CARRID EQ T_SSPFLI-CARRID
AND CONNID EQ T_SSPFLI-CONNID.
IF SY-SUBRC NE 0.
MESSAGE ' NO DATA FOUND ' TYPE 'I'.
ENDIF. " IF SY-SUBRC EQ 0.
WRITE:/ 'Flight date '(007),20' Max seats'(008),40'Occ seats'(009).
SKIP.
LOOP AT T_SFLIGHT INTO FS_SFLIGHT.
WRITE:/ FS_SFLIGHT-FLDATE,
20 FS_SFLIGHT-SEATSMAX,
40 FS_SFLIGHT-SEATSOCC.
ENDLOOP. " LOOP AT......
ENDFORM. " DISPLAY_SFLIGHT
Message was edited by:
Haritha
2007 Mar 23 5:22 AM
Hi..........
u can create check box on list as below
write check as checkbox.
go through the following code
*" Data Declaration..........................................
"----
DATA:
W_CHECK TYPE C , " Check Box
W_STAR TYPE C VALUE ''. " Star Variable
*" Declaration of Structures to hold Flight information.
"----
DATA:
BEGIN OF FS_SPFLI,
CARRID TYPE SPFLI-CARRID, " Carrier Id
CONNID TYPE SPFLI-CONNID, " Connection Id
AIRPFROM TYPE SPFLI-AIRPFROM, " Depatrure Airport
AIRPTO TYPE SPFLI-AIRPTO, " Destination Airport
DEPTIME TYPE SPFLI-DEPTIME, " Departure Time
ARRTIME TYPE SPFLI-ARRTIME, " Arrival Time
END OF FS_SPFLI.
*" Declaration of Structures to hold Flight information.
"----
DATA:
BEGIN OF FS_SSPFLI,
CARRID TYPE SPFLI-CARRID, " Carrier Id
CONNID TYPE SPFLI-CONNID, " Connection Id
END OF FS_SSPFLI.
*" Declaration of Structure to hold Seats Occupancy information
"----
DATA:
BEGIN OF FS_SFLIGHT,
FLDATE TYPE SFLIGHT-FLDATE, " Flight Date
SEATSMAX TYPE SFLIGHT-SEATSMAX," Maximum Seats
SEATSOCC TYPE SFLIGHT-SEATSOCC," Occupied Seats
END OF FS_SFLIGHT.
*" Tables Declaration to hold Flight information
"----
DATA:
T_SPFLI LIKE
STANDARD TABLE
OF FS_SPFLI.
*" Tables Declaration to hold Flight information
"----
DATA:
T_SSPFLI LIKE STANDARD TABLE OF FS_SPFLI.
*" Tables Declaration to hold Seats Occupancy information
"----
DATA:
T_SFLIGHT LIKE STANDARD TABLE OF FS_SFLIGHT.
*" START-OF-SELECTION EVENT..........................................
"----
START-OF-SELECTION.
PERFORM SELECT_SPFLI.
*" END-OF-SELECTION EVENT..........................................
"----
END-OF-SELECTION.
SET PF-STATUS 'FLIGHT'.
PERFORM DISPLAY_SPFLI.
*" AT USER-COMMAND EVENT..........................................
"----
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'FLIGHT'.
PERFORM DISPLAY_SFLIGHT.
ENDCASE. " CASE SY-UCOMM..
----
Form SELECT_SPFLI
----
This subroutine selects the SPFLI details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM SELECT_SPFLI .
SELECT CARRID " Carrier Id
CONNID " Connection Id
AIRPFROM " Depatrure Airport
AIRPTO " Destination Airport
DEPTIME " Departure Time
ARRTIME " Arrival Time
FROM SPFLI
INTO TABLE T_SPFLI.
IF SY-SUBRC NE 0.
MESSAGE ' NO DATA FOUND ' TYPE 'I'.
ENDIF. " IF SY-SUBRC EQ 0.
ENDFORM. " SELECT_SPFLI
----
Form DISPLAY_SPFLI
----
This subroutine displays the SPFLI details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM DISPLAY_SPFLI .
WRITE:5'CarrID'(001),
15 'ConnID'(002),
30 'Des Airport'(003),
45 'Dept Airport'(004),
60 'Des Time'(005),
75 'Arr Time'(006).
SKIP.
LOOP AT T_SPFLI INTO FS_SPFLI.
WRITE:/ W_CHECK AS CHECKBOX.
WRITE:5 FS_SPFLI-CARRID,
15 FS_SPFLI-CONNID,
30 FS_SPFLI-AIRPFROM,
45 FS_SPFLI-AIRPTO,
60 FS_SPFLI-DEPTIME,
75 FS_SPFLI-ARRTIME.
WRITE:100 W_STAR.
ENDLOOP. " LOOP AT.....
ENDFORM. " DISPLAY_SPFLI
----
Form DISPLAY_SFLIGHT
----
This subroutine displays the SFLIGHT details. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM DISPLAY_SFLIGHT .
DATA:
LW_LINES TYPE I, " No OF Lines
LW_LINENO TYPE I, " Line Number
LW_COUNT TYPE I. " Counter
DESCRIBE TABLE T_SPFLI LINES LW_LINES.
LW_LINES = LW_LINES + 5.
DO LW_LINES TIMES.
READ LINE LW_LINENO
FIELD VALUE W_CHECK INTO W_CHECK
FS_SPFLI-CARRID INTO FS_SPFLI-CARRID
FS_SPFLI-CONNID INTO FS_SPFLI-CONNID.
IF W_CHECK EQ 'X'.
W_STAR = '*'.
MODIFY LINE LW_LINENO FIELD VALUE W_STAR.
MODIFY LINE LW_LINENO FIELD FORMAT W_CHECK INPUT OFF .
ADD 1 TO LW_COUNT.
FS_SSPFLI-CARRID = FS_SPFLI-CARRID.
FS_SSPFLI-CONNID = FS_SPFLI-CONNID.
APPEND FS_SSPFLI TO T_SSPFLI.
CLEAR T_SPFLI.
ENDIF. " IF W_CHECKBOX.....
ADD 1 TO LW_LINENO.
ENDDO. " DO LW_LINES....
IF LW_LINENO EQ 0.
MESSAGE ' NO RECORDS SELECTED' TYPE 'I'.
ENDIF. " IF LW_LINENO.....
SELECT FLDATE " Flight date
SEATSMAX " Maximum Seats
SEATSOCC " Seats occupied
FROM SFLIGHT
INTO TABLE T_SFLIGHT
FOR ALL ENTRIES IN T_SSPFLI
WHERE CARRID EQ T_SSPFLI-CARRID
AND CONNID EQ T_SSPFLI-CONNID.
IF SY-SUBRC NE 0.
MESSAGE ' NO DATA FOUND ' TYPE 'I'.
ENDIF. " IF SY-SUBRC EQ 0.
WRITE:/ 'Flight date '(007),20' Max seats'(008),40'Occ seats'(009).
SKIP.
LOOP AT T_SFLIGHT INTO FS_SFLIGHT.
WRITE:/ FS_SFLIGHT-FLDATE,
20 FS_SFLIGHT-SEATSMAX,
40 FS_SFLIGHT-SEATSOCC.
ENDLOOP. " LOOP AT......
ENDFORM. " DISPLAY_SFLIGHT
Message was edited by:
Haritha
2007 Mar 23 5:33 AM
2007 Mar 23 5:26 AM
hi,
You can create check box using write statement in basic llist.On selecting checkbox it will internal store it as x.check box can have 'X' or ' '.Depending on the contents you can write code as follows.
TABLES: sflight.
DATA: box(1) TYPE c, lines TYPE i, free TYPE i.
START-OF-SELECTION.
SET PF-STATUS 'CHECK'.
GET sflight.
WRITE: box AS CHECKBOX, sflight-fldate.
HIDE: sflight-fldate, sflight-carrid, sflight-connid,
sflight-seatsmax, sflight-seatsocc.
END-OF-SELECTION.
lines = sy-linno - 1.
TOP-OF-PAGE.
WRITE: 'List of flight dates'.
ULINE.
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE: 'Date:', sflight-fldate.
ULINE.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'READ'.
box = space.
SET PF-STATUS 'CHECK' EXCLUDING 'READ'.
DO lines TIMES.
READ LINE sy-index FIELD VALUE box.
IF box = 'X'.
free = sflight-seatsmax - sflight-seatsocc.
IF free > 0.
NEW-PAGE.
WRITE: 'Company:', sflight-carrid,
'Connection: ',sflight-connid,
/ 'Number of free seats:', free.
ENDIF.
ENDIF.
ENDDO.
ENDCASE.
regards,
veeresh
2007 Mar 23 5:27 AM
REPORT zprg1 NO STANDARD PAGE HEADING.
DATA :BEGIN OF w_ekko,
chk TYPE c.
INCLUDE STRUCTURE ekko.
DATA : END OF w_ekko.
DATA : t_ekko LIKE STANDARD TABLE OF w_ekko.
DATA : t_ekko1 LIKE t_ekko .
DATA : datlow TYPE sy-datum VALUE '20050201',
dathigh TYPE sy-datum VALUE '20050228'.
DATA : lineno TYPE sy-linno VALUE 1.
SELECT * FROM ekko INTO CORRESPONDING FIELDS OF TABLE t_ekko
WHERE aedat BETWEEN datlow AND dathigh.
LOOP AT t_ekko INTO w_ekko.
WRITE:/ w_ekko-chk AS CHECKBOX ,w_ekko-ebeln.
ENDLOOP.
SET PF-STATUS '001'.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'CHEK'.
LOOP AT t_ekko INTO w_ekko.
READ LINE lineno FIELD VALUE w_ekko-chk INTO w_ekko-chk
w_ekko-ebeln INTO w_ekko-ebeln.
APPEND w_ekko TO t_ekko1.
lineno = lineno + 1.
ENDLOOP.
ENDCASE.
DELETE t_ekko1 WHERE chk IS INITIAL.
U need to create a pf status, by clicking on the button on selecting any menu option trigger the event to go to next list.
the above code may help u out.
Regards,
Sujatha.
2007 Mar 23 5:27 AM
Hi Rajesh ,
You can get a check box in the primary list by the follwoeing
Write 😕 v_chk as checkbox.
but i am not sure whether you can trigger an event when a check box on a list is triggred , my feeling it is not possible.
What i would suggest is you add a button (add your custom status , set pf-status ), when the user click on it after checking the checkboox , then perform READ LINE TO get the line where the checkbox has been checked and do your further processing and go to secondary list.
Regards
Arun
2007 Mar 23 5:27 AM
Hi,
Please check the code below.it was created to delete a record which is checked.u can change the code appropriately.
TABLES:MARA.
DATA:VAR,N TYPE SY-INDEX,MAT TYPE MARA-MATNR.
DATA:BEGIN OF GT_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
END OF GT_MARA,
GV_CB,
GV_CBV,
GV_LINES TYPE I,
INDEX TYPE I,
SY_INDEX TYPE I,
GV_LINES1 TYPE I,
MATNR LIKE MARA-MATNR.
SELECT-OPTIONS:S_MATNR FOR MARA-MATNR.
SELECT
MATNR FROM MARA
INTO TABLE GT_MARA
WHERE MATNR IN S_MATNR.
IF SY-SUBRC = 0.
DESCRIBE TABLE GT_MARA LINES GV_LINES.
ENDIF.
LOOP AT GT_MARA.
WRITE:/ GV_CB AS CHECKBOX,
GT_MARA-MATNR.
ENDLOOP.
CLEAR GT_MARA.
WRITE:'Total num of records is ',GV_LINES.
SET PF-STATUS 'DEL'.
AT USER-COMMAND.
IF SY-UCOMM = 'DEL' OR SY-UCOMM = 'PICK'.
DO 50 TIMES.
IF SY-INDEX > 2.
N = SY-INDEX - 2.
READ LINE SY-INDEX FIELD VALUE GV_CB INTO VAR.
READ LINE SY-INDEX FIELD VALUE GT_MARA-MATNR INTO MAT.
IF VAR = 'X'." AND MATNR IS NOT INITIAL.
delete gt_mara WHERE MATNR = MAT.
ENDIF.
CLEAR VAR.
ENDIF.
ENDDO.
DESCRIBE TABLE GT_MARA LINES GV_LINES1.
WRITE:'Total num of records is ',GV_LINES1.
CLEAR:GV_LINES .
LOOP AT GT_MARA.
WRITE:/ GT_MARA-MATNR.
ENDLOOP.
ENDIF.
Rgds,
Prajith
2007 Mar 23 5:28 AM
Hi,
Look at the following code segment.
create a pf-status with 3 buttons <b>SFLIGHT,SELECTALL,DESELECTALL</b>
and simple copy paste this code then u will get an idea.
TABLES: spfli.
Select options.......................................................
"----
SELECTION-SCREEN BEGIN OF BLOCK schedule WITH FRAME TITLE schedule.
SELECT-OPTIONS:
s_carrid FOR spfli-carrid, " Carrier id
s_connid FOR spfli-connid. " Connection id
SELECTION-SCREEN END OF BLOCK schedule.
"----
Structure to hold Flight schedule information. *
"----
DATA:
BEGIN OF fs_schedule,
carrid TYPE spfli-carrid, " Carrier id
connid TYPE spfli-connid, " Connection id
airpfrom TYPE spfli-airpfrom, " Departure air port
airpto TYPE spfli-airpto, " Arrival air port
deptime TYPE spfli-deptime, " Departure time
arrtime TYPE spfli-arrtime, " Arrivel time
END OF fs_schedule.
"----
Structure to hold Flight information. *
"----
DATA:
BEGIN OF fs_flight,
carrid TYPE sflight-carrid, " Carrier id
connid TYPE sflight-connid, " Connection id
fldate TYPE sflight-fldate, " Flight date
seatsmax TYPE sflight-seatsmax, " Maximum seats
seatsocc TYPE sflight-seatsocc, " Occupied seats
END OF fs_flight.
"----
Internal table to hold schedule document information. *
"----
DATA:
t_schedule LIKE
STANDARD TABLE
OF fs_schedule.
"----
Internal table to hold schedule document item information. *
"----
DATA:
t_flight LIKE
STANDARD TABLE
OF fs_flight.
*" Data declarations...................................................
"----
Work variables *
"----
DATA:
w_checkbox TYPE c, " Checkbox
w_star TYPE c. " Asterisk
----
INITIALIZATION. *
----
INITIALIZATION.
PERFORM init.
----
START-OF-SELECTION. *
----
START-OF-SELECTION.
PERFORM selection.
----
END-OF-SELECTION. *
----
END-OF-SELECTION.
PERFORM output.
SET PF-STATUS 'DEMO'.
----
AT LINE-SELECTION. *
----
AT LINE-SELECTION.
IF sy-lsind EQ 1 AND sy-lilli GE 3.
IF fs_schedule-carrid NE ' '.
PERFORM read_and_display.
ELSE.
MESSAGE 'Select currect position'(003) TYPE 'W'.
ENDIF.
ELSE.
MESSAGE 'Select the appropriate line'(004) TYPE 'S'.
ENDIF. " IF sy-lsind EQ 1...........
----
AT USER COMMAND. *
----
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'SFLIGHT'.
PERFORM read_display_flight_details.
WHEN 'SELECTALL'.
PERFORM select_flight_details.
WHEN 'DESELECT'.
PERFORM deselect_flight_details.
ENDCASE.
----
Form init *
----
This subroutine initializes titles to block schedule. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM init.
MOVE 'Flight schedule'(001) TO schedule.
ENDFORM. " Init
----
Form selection *
----
This subroutine retrive data from SFLIGHT. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM selection .
SELECT carrid " Carrier id
connid " Connection id
airpfrom " Departure air port
airpto " Arrival air port
deptime " Departure time
arrtime " Arrivel time
INTO TABLE t_schedule
FROM spfli
WHERE carrid IN s_carrid AND
connid IN s_connid.
IF sy-subrc NE 0.
WRITE 'No records found'(002).
ENDIF. " IF sy-subrc NE 0.
ENDFORM. " Selection
----
Form output *
----
This subroutine prints the output at basic list. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM output.
LOOP AT t_schedule INTO fs_schedule.
SKIP.
WRITE: /20 w_checkbox AS CHECKBOX,
fs_schedule-carrid,
fs_schedule-connid,
fs_schedule-airpfrom,
fs_schedule-airpto,
fs_schedule-deptime,
fs_schedule-arrtime,
w_star.
HIDE: fs_schedule-carrid,
fs_schedule-connid.
ENDLOOP. " LOOP AT t_schedule...
ENDFORM. " Output
----
Form read_and_display *
----
This subroutine prints the output in secondary list. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM read_and_display .
SELECT carrid " Carrier id
connid " Connection id
fldate " Flight date
seatsmax " Maximum seats
seatsocc " Occupied seats
FROM sflight
INTO TABLE t_flight
WHERE carrid EQ fs_schedule-carrid AND
connid EQ fs_schedule-connid.
IF sy-subrc EQ 0.
WRITE /3 sy-uline(65).
LOOP AT t_flight INTO fs_flight.
WRITE: /3 sy-vline, 6 fs_flight-carrid,
16 sy-vline, 18 fs_flight-connid,
28 sy-vline, 31 fs_flight-fldate,
41 sy-vline, 44 fs_flight-seatsmax,
54 sy-vline, 57 fs_flight-seatsmax,
67 sy-vline.
WRITE /3 sy-uline(65).
ENDLOOP. " LOOP AT t_flight...
ELSE.
WRITE 'No records found'(002).
ENDIF. " IF sy-subrc EQ 0.
CLEAR t_flight.
fs_schedule-carrid = ' '.
fs_schedule-connid = ' '.
ENDFORM. " Read_and_display
----
Form read_display_flight_details. *
----
This subroutine prints the output in secondary list. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM read_display_flight_details.
DATA:
BEGIN OF fs_spfli,
carrid LIKE spfli-carrid, " Carrier id
connid LIKE spfli-connid, " Connection id
END OF fs_spfli.
DATA:
lt_spfli LIKE
STANDARD TABLE
OF fs_spfli.
DATA:
lw_lines TYPE i, " Number of lines
lw_lineno TYPE i VALUE 3, " Index
lw_count TYPE i. " Counter
DESCRIBE TABLE t_schedule LINES lw_lines.
DO lw_lines TIMES.
READ LINE lw_lineno
FIELD VALUE w_checkbox INTO w_checkbox
fs_schedule-carrid INTO fs_schedule-carrid
fs_schedule-connid INTO fs_schedule-connid .
IF sy-subrc EQ 0.
IF w_checkbox EQ 'X'.
ADD 1 TO lw_count.
CLEAR w_checkbox.
fs_spfli-carrid = fs_schedule-carrid.
fs_spfli-connid = fs_schedule-connid.
APPEND fs_spfli TO lt_spfli.
CLEAR fs_schedule.
ENDIF. " IF w_checkbox EQ 'X'.
ENDIF. " IF sy-subrc EQ 0.
ADD 1 TO lw_lineno.
ENDDO. " DO lw_lines TIMES.
IF lw_count EQ 0.
MESSAGE 'Select atleast one record'(005) TYPE 'I'.
ELSE.
SELECT carrid " Carrier id
connid " Connection id
fldate " Flight date
seatsmax " Maximum seats
seatsocc " Occupied seats
FROM sflight
INTO TABLE t_flight
FOR ALL ENTRIES
IN lt_spfli
WHERE carrid EQ lt_spfli-carrid
AND connid EQ lt_spfli-connid.
IF sy-subrc EQ 0.
WRITE /3 sy-uline(65).
LOOP AT t_flight INTO fs_flight.
WRITE: /3 sy-vline, 6 fs_flight-carrid,
16 sy-vline, 18 fs_flight-connid,
28 sy-vline, 31 fs_flight-fldate,
41 sy-vline, 44 fs_flight-seatsmax,
54 sy-vline, 57 fs_flight-seatsmax,
67 sy-vline.
WRITE /3 sy-uline(65).
ENDLOOP. " LOOP AT t_flight...
ELSE.
WRITE 'No records found'(002).
ENDIF. " IF sy-subrc EQ 0.
DESCRIBE TABLE t_schedule LINES lw_lines.
lw_lines = 2 * lw_lines + 2.
DO lw_lines TIMES.
READ LINE sy-index FIELD VALUE w_checkbox.
IF w_checkbox = 'X'.
w_checkbox = space.
w_star = '*'.
MODIFY LINE sy-index
FIELD VALUE w_checkbox
w_star
FIELD FORMAT w_checkbox INPUT OFF
COLOR 6 INVERSE ON.
ENDIF. " IF w_checkbox = 'X'.
ENDDO. " Do lw_lines times.
ENDIF. " IF lw_count EQ 0.
ENDFORM. " Read_display_flight_details
----
Form select_flight_details . *
----
This subroutine select all entries. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM select_flight_details .
DATA:
lw_lines TYPE i.
lw_lines = sy-linno.
DESCRIBE TABLE t_schedule LINES lw_lines.
lw_lines = 2 * lw_lines + 2.
DO lw_lines TIMES.
READ LINE sy-index FIELD VALUE w_checkbox w_star.
IF w_checkbox = space AND w_star NE '*'.
w_checkbox = 'X'.
MODIFY LINE sy-index
FIELD VALUE w_checkbox.
ENDIF. " IF w_checkbox = space...
ENDDO. " Do lw_lines times.
ENDFORM. " Select_flight_details
----
Form deselect_flight_details . *
----
This subroutine deselect all entries. *
----
There are no interface parameters to be passed to this subroutine. *
----
FORM deselect_flight_details .
DATA lw_lines TYPE i.
lw_lines = sy-linno.
DESCRIBE TABLE t_schedule LINES lw_lines.
lw_lines = 2 * lw_lines + 2.
DO lw_lines TIMES.
READ LINE sy-index FIELD VALUE w_checkbox.
IF w_checkbox = 'X'.
w_checkbox = space.
MODIFY LINE sy-index
FIELD VALUE w_checkbox.
ENDIF. " IF w_checkbox = 'X'.
ENDDO. " Do lw_lines times.
ENDFORM. " Deselect_flight_details
Regards,
Sandhya<b></b>
2007 Mar 23 5:34 AM
Hi raj,
I think it is only,possible on SELECTION SCREEN but not on the LIST,unless you press F2(Double click) or you have any user buttons.
Regards,
V.Raghavender
2007 Mar 23 5:38 AM
Hi rajareddy....
you can display the checkbox on basic list like this:
<b>data check type .
write check as checkbox .
</b>
but if u want to get the secondary list when u check this check box, you need to assign a pf-status for ur basic list
let me know if u have any more doubts
you can see the following link:
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/dba2c435c111d1829f0000e829fbfe/frameset.htm
Reward points if useful......
Suresh......
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |