‎2008 Aug 16 8:36 AM
hi
i had made an pf status for my report,in which i had list 1 with check box,I had placed an icon for select all & de select all,please tell me the code or logic which needs top be put there inside user commnad,so that if i click on select all icon,my all check shd be ticked,else all ticked shd be removed if deselect icon is clicked.
also plz tell me on my list 2 i don;t want to show this select & deslect icon.
but not able to exclude 2 fcode at same time,please tell me way to do so.
regds
vipin
‎2008 Aug 16 9:44 AM
Try the following code,
In the following code, I am checking for sy-ucomm and triggering a corresponding action.
*----------------------------------------------------------------------*
* FORM TRIGGER_ACTIONS_FOR_UCOMM *
*----------------------------------------------------------------------*
* Subroutine for performing appropriate actions when a user command is*
* is triggered *
*----------------------------------------------------------------------*
* There are no interface parameters to be passed to this subroutine. *
*----------------------------------------------------------------------*
FORM trigger_actions_for_ucomm .
CASE sy-ucomm.
WHEN 'SALL'.
PERFORM mark_all_checkboxes.
WHEN 'DALL'.
PERFORM demark_all_checkboxes.
WHEN 'F15'.
LEAVE SCREEN.
WHEN '&F12'.
LEAVE PROGRAM.
ENDCASE. " CASE SY-UCOMM
ENDFORM. " TRIGGER_ACTIONS_FOR_UCOMM
The following code snippets will give you an idea on how to select or deselect all the checkboxes on the list
*----------------------------------------------------------------------*
* FORM MARK_ALL_CHECKBOXES *
*----------------------------------------------------------------------*
* Subroutine for marking all the checkboxes on the list *
*----------------------------------------------------------------------*
* There are no interface parameters to be passed to this subroutine. *
*----------------------------------------------------------------------*
FORM mark_all_checkboxes .
DO.
READ LINE sy-index.
IF sy-subrc NE 0.
EXIT.
ENDIF. " IF SY-SUBRC NE 0
READ LINE sy-index FIELD VALUE sy-lisel INTO w_lisel.
IF w_lisel+1(1) EQ space AND w_lisel+1(1) NE '-'
AND w_lisel+3(1) NE space.
w_lisel+1(1) = c_flag_x.
MODIFY LINE sy-index FIELD VALUE sy-lisel FROM w_lisel.
ENDIF. " IF W_LISEL+1(1) EQ...
ENDDO.
ENDFORM. " MARK_ALL_CHECKBOXES
*----------------------------------------------------------------------*
* FORM DEMARK_ALL_CHECKBOXES *
*----------------------------------------------------------------------*
* Subroutine for de selecting all the checkboxes on the list *
*----------------------------------------------------------------------*
* There are no interface parameters to be passed to this subroutine. *
*----------------------------------------------------------------------*
FORM demark_all_checkboxes .
DO.
READ LINE sy-index.
IF sy-subrc NE 0.
EXIT.
ENDIF. " IF SY-SUBRC NE 0
READ LINE sy-index FIELD VALUE sy-lisel INTO w_lisel.
IF w_lisel+1(1) EQ c_flag_x.
w_lisel+1(1) = space.
MODIFY LINE sy-index FIELD VALUE sy-lisel FROM w_lisel.
ENDIF. " IF W_LISEL+1(1) EQ...
ENDDO.
ENDFORM. " DEMARK_ALL_CHECKBOXES
‎2008 Aug 16 8:52 AM
hi vipin,
Please check the report , in that i have created some subroutines like clear_all_selected etc,
REPORT ZPO_DISPLAY1 NO STANDARD PAGE HEADING
MESSAGE-ID ZMESS
LINE-SIZE 105
LINE-COUNT 32.
&----
*& Program Includes for Data declaration and program subroutines
&----
INCLUDE ZDATA_TOP4. "Contains Data Declaration
INCLUDE ZFORM_ROUTINES4. "Contains Form Statements used in Program
&----
*& Initialazation Section
&----
INITIALIZATION.
CLEAR S_AEDAT.
S_AEDAT-SIGN = 'I'.
S_AEDAT-OPTION = 'BT'.
S_AEDAT-LOW = SY-DATUM - 90.
S_AEDAT-HIGH = SY-DATUM.
APPEND S_AEDAT.
&----
*& Selection screen parameters validation
&----
AT SELECTION-SCREEN.
LOOP AT S_LIFNR.
CHECK S_LIFNR-OPTION = 'EQ'.
SELECT SINGLE * FROM LFA1 INTO CORRESPONDING FIELDS OF LFA1
WHERE LIFNR = S_LIFNR-LOW.
IF SY-SUBRC NE 0.
MESSAGE E001 WITH 'Vendor' S_LIFNR-LOW 'not found in LFA1'.
ENDIF.
ENDLOOP.
&----
*& At Selection screen on value request
&----
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_LIFNR-LOW.
*CALL SCREEN 101 STARTING AT 50 03
ENDING AT 70 07.
&----
*& Start of selection - Main Program Processing
&----
START-OF-SELECTION.
GET TIME.
STATS-START_TIME = SY-UZEIT.
SET PF-STATUS 'MAIN'. "Copy status 'PICK' From SAPMSSY0 (SE41)
PERFORM DATA_RETRIEVAL.
PERFORM PROCESS_DATA2.
PERFORM DISPLAY_LIST.
PERFORM WRITE_STATISTICS.
&----
*& User selection - AT LINE SELECTION
&----
AT LINE-SELECTION.
CHECK NOT SELECT-EBELN IS INITIAL. "To select valid line from list
PERFORM DISPLAY_ITEM_DETAIL USING SELECT-EBELN.
CLEAR SELECT-EBELN.
&----
*& User selection - AT USER COMMAND
&----
AT USER-COMMAND.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'DSA'.
PERFORM CLEAR_ALL_SELECTED.
WHEN 'DSL'.
PERFORM DISPLAY_ALL_SELECTED.
WHEN 'CHNG'.
PERFORM DISPLAY_ALL_CHANGE.
WHEN 'DISP'.
PERFORM DISPLAY_ALL_ME23.
ENDCASE.
&----
*& Program Pages and Coloum Heading
&----
TOP-OF-PAGE.
CASE WRK-HDRSW.
WHEN '1'.
WRK-TITLE2 = 'PROGRAM SELECTION'(003).
WHEN '2'.
WRK-TITLE2 = 'PROGRAM DETAILS'(004).
WHEN '3'.
WRK-TITLE2 = 'PROGRAM SUMMARY'(005).
WHEN '4'.
WRK-TITLE2 = 'PROGRAM STATISTICS'(006).
ENDCASE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
PERFORM PGH_STANDARD_HEADER USING TEXT-111 WRK-TITLE2.
IF WRK-HDRSW = '2'.
WRITE:/01 SY-VLINE,
02 'VENDOR #'(103),
18 SY-VLINE,
19 'P.O #'(104),
34 SY-VLINE,
35 'ENTRY DATE'(105),
45 SY-VLINE,
46 'USER'(106),
61 SY-VLINE,
62 'LINES'(107),
72 SY-VLINE,
82 'AMOUNT'(108),
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
ENDIF.
FORMAT RESET.
&----
*& Program Pages and Coloum Heading for detail list
&----
TOP-OF-PAGE DURING LINE-SELECTION.
CASE WRK-HDRSW.
WHEN '5'.
WRK-TITLE2 = 'DETAIL LISTING'(201).
ENDCASE.
FORMAT COLOR COL_HEADING.
PERFORM PGH_STANDARD_HEADER USING TEXT-111 WRK-TITLE2.
IF WRK-HDRSW = '5'.
WRITE:/01 SY-VLINE,
02 'VENDOR #'(103),
16 SY-VLINE,
17 'P.O #'(104),
32 SY-VLINE,
33 'ENTRY DATE'(105),
43 SY-VLINE,
44 'USER'(106),
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
FORMAT COLOR COL_KEY INTENSIFIED ON.
WRITE:/01 SY-VLINE,
02 RESULTS-LIFNR,
16 SY-VLINE,
17 RESULTS-EBELN,
32 SY-VLINE,
33 RESULTS-AEDAT MM/DD/YY,
43 SY-VLINE,
44 RESULTS-ERNAM,
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
ENDIF.
FORMAT RESET.
WRITE:/01 SY-VLINE,
02 'P.O #'(104),
14 SY-VLINE,
15 'LINE'(301),
22 SY-VLINE,
23 'DESCRIPTION'(302),
54 SY-VLINE,
58 'QTY ORDERED'(303),
70 SY-VLINE,
71 'QTY RECEIVED'(304),
86 SY-VLINE,
96 'AMOUNT'(305),
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
&----
&----
&----
*& Include ZDATA_TOP4 *
&----
*& Include for Data Definition and Declaration
&----
&----
*& Database Tables Used in the Program
&----
TABLES: EKKO, "P.O Header Data
EKPO, "P.O Line Data
EKET, "Scheduling Agreement Schedule Lines
LFA1. "Vendor master data Check table for EKKO-EBELN
&----
*& Program Selection - Selection Screen Parameters
&----
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS: S_LIFNR FOR EKKO-LIFNR, "Vendor on P.O.
S_BSART FOR EKKO-BSART, "P.O Type.
S_AEDAT FOR EKKO-AEDAT. "P.O Creation Date.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK block1.
&----
*& Data Definition - Internal Tables
&----
TYPES: BEGIN OF LINE_EKKO, "purchase order header
LIFNR LIKE EKKO-LIFNR, "vendor number
EBELN LIKE EKKO-EBELN, "PO number
AEDAT LIKE EKKO-AEDAT, "creation date
ERNAM LIKE EKKO-ERNAM, "created by
END OF LINE_EKKO.
DATA: ITAB_EKKO TYPE STANDARD TABLE OF LINE_EKKO WITH HEADER LINE ,
WA_EKKO TYPE LINE_EKKO.
TYPES: BEGIN OF LINE_EKPO, "purchase order line item
EBELN LIKE EKPO-EBELN, "PO number
EBELP LIKE EKPO-EBELP, "PO line number
LINES(3) TYPE N, "number of lines
NETWR LIKE EKPO-NETWR, "total PO amount
MENGE LIKE EKPO-MENGE, "Quantity ordered
TXZ01 LIKE EKPO-TXZ01, "Line item text
END OF LINE_EKPO.
DATA: ITAB_EKPO TYPE STANDARD TABLE OF LINE_EKPO WITH HEADER LINE,
WA_EKPO TYPE LINE_EKPO.
TYPES: BEGIN OF LINETYPE_RESULTS,
LIFNR LIKE EKKO-LIFNR, "vendor number
EBELN LIKE EKKO-EBELN, "PO number
EBELP LIKE EKPO-EBELP, "PO line number
AEDAT LIKE EKKO-AEDAT, "creation date
ERNAM LIKE EKKO-ERNAM, "created by
LINES(3) TYPE N, "number of lines
NETWR LIKE EKPO-NETWR, "total PO amount
MENGE LIKE EKPO-MENGE, "Quantity ordered
WEMNG LIKE EKET-WEMNG, "Quantity received
TXZ01 LIKE EKPO-TXZ01, "Line item text
END OF LINETYPE_RESULTS.
DATA: RESULTS TYPE STANDARD TABLE OF LINETYPE_RESULTS WITH HEADER LINE,
WA_RESULTS TYPE LINETYPE_RESULTS.
&----
*& Internal table for header and sub-heading
&----
DATA: BEGIN OF WRK,
HDRSW(1),
TITLE2(40),
END OF WRK.
&----
*& Internal table for Statistical Data
&----
DATA: BEGIN OF STATS,
START_TIME LIKE SY-UZEIT,
END_TIME LIKE SY-UZEIT,
PROC_TIME LIKE SY-UZEIT,
RECS_EKPO LIKE SY-DBCNT,
RECS_EKKO LIKE SY-DBCNT,
RECS_EKET LIKE SY-DBCNT,
END OF STATS.
&----
*& Internal table For HIDE Selection
&----
DATA: BEGIN OF SELECT OCCURS 0 ,
EBELN LIKE EKKO-EBELN,
CHECKBOX(1) TYPE C,
END OF SELECT.
DATA: MARK(1) TYPE C VALUE 'X'.
DATA: LINE(3) TYPE N.
DATA: OK_CODE LIKE SY-UCOMM. "For AT USER-COMMAND
&----
&----
&----
*& Include ZFORM_ROUTINES4 *
&----
&----
*& Program Subroutines
&----
&----
*& Form DATA_RETRIEVAL
&----
*& Subroutine to Retrive Data From Database Tables EKKO and EKPO
*& Main Processing Logic
&----
FORM DATA_RETRIEVAL .
SELECT LIFNR EBELN AEDAT ERNAM
FROM EKKO INTO TABLE ITAB_EKKO
WHERE BSART IN S_BSART
AND AEDAT IN S_AEDAT
AND LIFNR IN S_LIFNR.
DESCRIBE TABLE
ITAB_EKKO LINES LINE.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
STATS-RECS_EKKO = LINE.
*ADD SY-DBCNT TO STATS-RECS_EKKO.
SORT ITAB_EKKO BY EBELN.
DELETE ADJACENT DUPLICATES FROM ITAB_EKKO.
SELECT * FROM EKPO
FOR ALL ENTRIES IN ITAB_EKKO
WHERE EBELN = ITAB_EKKO-EBELN.
CLEAR ITAB_EKPO.
WA_EKPO-EBELN = EKPO-EBELN.
ADD 1 TO WA_EKPO-LINES.
ADD EKPO-NETWR TO WA_EKPO-NETWR.
ADD 1 TO STATS-RECS_EKPO.
WA_EKPO-EBELP = EKPO-EBELP.
WA_EKPO-MENGE = EKPO-MENGE.
WA_EKPO-TXZ01 = EKPO-TXZ01.
APPEND WA_EKPO TO ITAB_EKPO.
ENDSELECT.
*ADD SY-DBCNT TO STATS-RECS_EKPO.
SORT ITAB_EKPO BY EBELN.
LOOP AT ITAB_EKPO INTO WA_EKPO.
READ TABLE ITAB_EKKO INTO WA_EKKO WITH KEY EBELN = WA_EKPO-EBELN.
MOVE-CORRESPONDING WA_EKKO TO WA_RESULTS.
MOVE-CORRESPONDING WA_EKPO TO WA_RESULTS.
APPEND WA_RESULTS TO RESULTS.
ENDLOOP.
&----
*& Equivalent Select Statement for fetching data from EKKO and EKPO
&----
SELECT * FROM EKKO WHERE BSART IN S_BSART
AND AEDAT IN S_AEDAT
AND LIFNR IN S_LIFNR.
CLEAR RESULTS.
SELECT * FROM EKPO WHERE EBELN = EKKO-EBELN.
ADD 1 TO WA_RESULTS-LINES.
ADD EKPO-NETWR TO WA_RESULTS-NETWR.
ENDSELECT.
*
WA_RESULTS-LIFNR = EKKO-LIFNR.
WA_RESULTS-EBELN = EKKO-EBELN.
WA_RESULTS-AEDAT = EKKO-AEDAT.
WA_RESULTS-ERNAM = EKKO-ERNAM.
APPEND WA_RESULTS TO RESULTS.
ENDSELECT.
&----
ENDFORM. " DATA_RETRIEVAL
&----
*& Form DISPLAY_LIST
&----
*& Subroutine to Display Basic list for Purchase order
----
FORM DISPLAY_LIST .
DATA: TOT_LINES(3) TYPE N.
DATA: TOT_AMT LIKE EKPO-NETWR.
DATA: WRT_FLAG(1) TYPE C.
SORT RESULTS BY LIFNR EBELN.
NEW-PAGE.
WRK-HDRSW = '2'.
LOOP AT RESULTS INTO WA_RESULTS.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
AT END OF EBELN.
MOVE 'X' TO WRT_FLAG.
ENDAT.
ADD 1 TO TOT_LINES.
ADD WA_RESULTS-NETWR TO TOT_AMT.
IF WRT_FLAG = 'X'.
WRITE:/01 SY-VLINE,
02 SELECT-CHECKBOX AS CHECKBOX,
04 WA_RESULTS-LIFNR,
18 SY-VLINE,
19 WA_RESULTS-EBELN HOTSPOT ON,
34 SY-VLINE,
35 WA_RESULTS-AEDAT MM/DD/YY,
45 SY-VLINE,
46 WA_RESULTS-ERNAM,
61 SY-VLINE,
62 TOT_LINES,
72 SY-VLINE,
73 TOT_AMT,
105 SY-VLINE.
SELECT-EBELN = WA_RESULTS-EBELN.
HIDE: SELECT-EBELN.
CLEAR SELECT-EBELN.
WRITE:/01 SY-ULINE(105).
CLEAR: WRT_FLAG,
TOT_LINES,
TOT_AMT.
ENDIF.
FORMAT RESET.
FORMAT COLOR COL_GROUP INTENSIFIED ON.
AT END OF LIFNR.
SUM.
WRITE:/01 SY-VLINE,
02 'Total For Vendor:'(002),
WA_RESULTS-LIFNR,
34 SY-VLINE,
45 SY-VLINE,
61 SY-VLINE,
72 SY-VLINE,
73 WA_RESULTS-NETWR,
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
ENDAT.
FORMAT RESET.
ENDLOOP.
ENDFORM. " DISPLAY_LIST
&----
*& Form PGH_STANDARD
&----
*& Subroutine for printing page header and coloum heading
&----
FORM PGH_STANDARD_HEADER USING L_TITLE1 L_TITLE2.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
PERFORM PGH_WRITE_DATE_TIME.
PERFORM PGH_WRITE_TITLE USING L_TITLE1.
PERFORM PGH_WRITE_REPORT_PAGE.
PERFORM PGH_WRITE_USERID.
PERFORM PGH_WRITE_TITLE USING L_TITLE2.
PERFORM PGH_WRITE_SYSTEM_CLIENT.
FORMAT RESET.
ENDFORM. " PGH_STANDARD
FORM PGH_WRITE_USERID.
WRITE:/01 SY-VLINE.
WRITE:02 'USERID:',
10 SY-UNAME.
ENDFORM.
FORM PGH_WRITE_DATE_TIME.
WRITE:/01 SY-ULINE.
WRITE:/01 SY-VLINE.
WRITE:02 'DATE:',
10 SY-DATUM MM/DD/YYYY,
105 SY-VLINE.
ENDFORM.
FORM PGH_WRITE_TITLE USING L_TITLE.
DATA: L_LINSZ LIKE SY-LINSZ.
DATA: L_TITLEL LIKE SY-TABIX.
DATA: L_START LIKE SY-TABIX.
L_LINSZ = SY-LINSZ.
L_TITLEL = STRLEN( L_TITLE ).
L_START = ( L_LINSZ / 2 ) - ( L_TITLEL / 2 ).
POSITION L_START.
WRITE: L_TITLE.
ENDFORM.
FORM PGH_WRITE_REPORT_PAGE.
DATA: L_LINSZ LIKE SY-LINSZ.
DATA: L_START LIKE SY-TABIX.
L_LINSZ = SY-LINSZ.
L_START = L_LINSZ - 24.
POSITION L_START.
WRITE:/01 SY-VLINE,
02 'REPORT:', SY-REPID, 47 'PAGE NO:', (2) SY-PAGNO.
POSITION L_LINSZ.
WRITE: SY-VLINE.
ENDFORM.
FORM PGH_WRITE_SYSTEM_CLIENT.
DATA: L_LINSZ LIKE SY-LINSZ.
DATA: L_START LIKE SY-TABIX.
L_LINSZ = SY-LINSZ.
L_START = L_LINSZ - 30.
POSITION L_START.
WRITE: 'SYSTEM:', SY-SYSID, '/', SY-MANDT.
POSITION L_LINSZ.
WRITE: SY-VLINE.
WRITE:/01 SY-ULINE.
ENDFORM.
&----
*& Form WRITE_SELECTION
&----
*& Subroutine to Display Statistical data For Program
*& i.e Start time, End time, Process time, and No. of Records fetched
*& from tables
&----
FORM WRITE_STATISTICS .
NEW-PAGE.
WRK-HDRSW = '4'.
GET TIME.
STATS-END_TIME = SY-UZEIT.
IF STATS-END_TIME > STATS-START_TIME.
STATS-PROC_TIME = STATS-END_TIME - STATS-START_TIME.
ELSE.
STATS-PROC_TIME = '240000'.
STATS-PROC_TIME = STATS-PROC_TIME - STATS-START_TIME.
STATS-PROC_TIME = STATS-PROC_TIME + STATS-END_TIME.
ENDIF.
FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.
WRITE:/01 SY-VLINE,
02 'START TIME'(113),
25 SY-VLINE,
36 STATS-START_TIME USING EDIT MASK '__:__:__',
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
WRITE:/01 SY-VLINE,
02 'END TIME'(114),
25 SY-VLINE,
36 STATS-END_TIME USING EDIT MASK '__:__:__',
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
WRITE:/01 SY-VLINE,
02 'PROCESSING TIME'(115),
25 SY-VLINE,
36 STATS-PROC_TIME USING EDIT MASK '__:__:__',
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
WRITE:/01 SY-VLINE,
02 'EKKO RECORDS READ'(116),
25 SY-VLINE,
31 STATS-RECS_EKKO,
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
WRITE:/01 SY-VLINE,
02 'EKPO RECORDS READ'(116),
25 SY-VLINE,
31 STATS-RECS_EKPO,
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
WRITE:/01 SY-VLINE,
02 'EKET RECORDS READ'(116),
25 SY-VLINE,
31 STATS-RECS_EKET,
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
FORMAT RESET.
ENDFORM. " WRITE_SELECTION
&----
*& Form PROCESS_DATA2
&----
*& Subroutine to Fetch Data from EKET table for Detailed List
*&----
FORM PROCESS_DATA2 .
LOOP AT RESULTS INTO WA_RESULTS .
CLEAR WA_RESULTS-WEMNG.
SELECT * FROM EKET WHERE EBELN = WA_RESULTS-EBELN
AND EBELP = WA_RESULTS-EBELP.
ADD EKET-WEMNG TO WA_RESULTS-WEMNG.
ADD 1 TO STATS-RECS_EKET.
ENDSELECT.
MODIFY RESULTS FROM WA_RESULTS .
ENDLOOP.
ENDFORM. " PROCESS_DATA2
&----
*& Form DISPLAY_ITEM_DETAIL
*&----
*& Subroutine to Display Detailed list for selected purchase order's
&----
FORM DISPLAY_ITEM_DETAIL USING L_EBELN.
SET PARAMETER ID 'BES' FIELD L_EBELN.
CALL TRANSACTION 'ME23' AND SKIP FIRST SCREEN.
WRK-HDRSW = '5'.
SET PF-STATUS 'STLI'. "Standard Status From SAPMSSY0 (SE41)
FORMAT COLOR COL_GROUP INTENSIFIED OFF.
LOOP AT RESULTS WHERE EBELN = L_EBELN.
WRITE: /01 SY-VLINE,
02 RESULTS-EBELN,
14 SY-VLINE,
15 RESULTS-EBELP,
22 SY-VLINE,
23 RESULTS-TXZ01,
54 SY-VLINE,
58(15) RESULTS-MENGE,
70 SY-VLINE,
71(15) RESULTS-WEMNG,
86 SY-VLINE,
87 RESULTS-NETWR,
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
AT END OF EBELN.
SUM.
WRITE:/01 SY-VLINE,
02 'TOTAL FOR P.O #', RESULTS-EBELN,
54 SY-VLINE,
70 SY-VLINE,
86 SY-VLINE,
87 RESULTS-NETWR,
105 SY-VLINE.
WRITE:/01 SY-ULINE(105).
ENDAT.
ENDLOOP.
FORMAT RESET.
ENDFORM. " DISPLAY_ITEM_DETAIL
&----
*& Form DISPLAY_ALL_SELECTED
&----
*& Subroutine to Display All selected P.O on Basic list
&----
FORM DISPLAY_ALL_SELECTED .
DATA: LINE_NUMBER LIKE SY-LILLI.
LINE_NUMBER = 1.
DO.
CLEAR: SELECT-CHECKBOX,
SELECT-EBELN.
READ LINE LINE_NUMBER FIELD VALUE SELECT-CHECKBOX
SELECT-EBELN.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ADD 1 TO LINE_NUMBER.
CHECK SELECT-CHECKBOX = 'X'.
NEW-PAGE.
PERFORM DISPLAY_ITEM_DETAIL USING SELECT-EBELN.
ENDDO.
ENDFORM. " DISPLAY_ALL_SELECTED
&----
*& Form CLEAR_ALL_SELECTED
&----
*& Subroutine to Clear All selected P.O on Basic list
&----
FORM CLEAR_ALL_SELECTED .
DATA: LINE_NUMBER LIKE SY-LILLI.
LINE_NUMBER = 1.
DO.
READ LINE LINE_NUMBER FIELD VALUE SELECT-CHECKBOX
SELECT-EBELN.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
IF SELECT-CHECKBOX = 'X'.
CLEAR: SELECT-CHECKBOX.
MODIFY LINE LINE_NUMBER FIELD VALUE SELECT-CHECKBOX
SELECT-EBELN.
ENDIF.
ADD 1 TO LINE_NUMBER.
ENDDO.
ENDFORM. " CLEAR_ALL_SELECTED
&----
&----
&----
*& Form DISPLAY_ALL_CHANGE
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_ALL_CHANGE .
DATA: LINE_NUMBER LIKE SY-LILLI.
LINE_NUMBER = 1.
DO.
CLEAR: SELECT-CHECKBOX,
SELECT-EBELN.
READ LINE LINE_NUMBER FIELD VALUE SELECT-CHECKBOX
SELECT-EBELN.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ADD 1 TO LINE_NUMBER.
CHECK SELECT-CHECKBOX = 'X'.
NEW-PAGE.
PERFORM DISPLAY_ITEM_DETAIL_CHANGE USING SELECT-EBELN.
ENDDO.
ENDFORM. " DISPLAY_ALL_CHANGE
&----
*& Form DISPLAY_ITEM_DETAIL_CHANGE
&----
text
----
-->P_SELECT_EBELN text
----
FORM DISPLAY_ITEM_DETAIL_CHANGE USING L_EBELN.
SET PARAMETER ID 'BES' FIELD L_EBELN.
CALL TRANSACTION 'ME22' AND SKIP FIRST SCREEN.
ENDFORM. " DISPLAY_ITEM_DETAIL_CHANGE
&----
*& Form DISPLAY_ALL_ME23
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_ALL_ME23 .
DATA: LINE_NUMBER LIKE SY-LILLI.
LINE_NUMBER = 1.
DO.
CLEAR: SELECT-CHECKBOX,
SELECT-EBELN.
READ LINE LINE_NUMBER FIELD VALUE SELECT-CHECKBOX
SELECT-EBELN.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ADD 1 TO LINE_NUMBER.
CHECK SELECT-CHECKBOX = 'X'.
NEW-PAGE.
PERFORM DISPLAY_ITEM_DETAIL_ME23 USING SELECT-EBELN.
ENDDO.
ENDFORM. " DISPLAY_ALL_ME23
&----
*& Form DISPLAY_ITEM_DETAIL_ME23
&----
text
----
-->P_SELECT_EBELN text
----
FORM DISPLAY_ITEM_DETAIL_ME23 USING L_EBELN.
SET PARAMETER ID 'BES' FIELD L_EBELN.
CALL TRANSACTION 'ME23' AND SKIP FIRST SCREEN.
ENDFORM. " DISPLAY_ITEM_DETAIL_ME23
Yogesh N
‎2008 Aug 16 9:44 AM
Try the following code,
In the following code, I am checking for sy-ucomm and triggering a corresponding action.
*----------------------------------------------------------------------*
* FORM TRIGGER_ACTIONS_FOR_UCOMM *
*----------------------------------------------------------------------*
* Subroutine for performing appropriate actions when a user command is*
* is triggered *
*----------------------------------------------------------------------*
* There are no interface parameters to be passed to this subroutine. *
*----------------------------------------------------------------------*
FORM trigger_actions_for_ucomm .
CASE sy-ucomm.
WHEN 'SALL'.
PERFORM mark_all_checkboxes.
WHEN 'DALL'.
PERFORM demark_all_checkboxes.
WHEN 'F15'.
LEAVE SCREEN.
WHEN '&F12'.
LEAVE PROGRAM.
ENDCASE. " CASE SY-UCOMM
ENDFORM. " TRIGGER_ACTIONS_FOR_UCOMM
The following code snippets will give you an idea on how to select or deselect all the checkboxes on the list
*----------------------------------------------------------------------*
* FORM MARK_ALL_CHECKBOXES *
*----------------------------------------------------------------------*
* Subroutine for marking all the checkboxes on the list *
*----------------------------------------------------------------------*
* There are no interface parameters to be passed to this subroutine. *
*----------------------------------------------------------------------*
FORM mark_all_checkboxes .
DO.
READ LINE sy-index.
IF sy-subrc NE 0.
EXIT.
ENDIF. " IF SY-SUBRC NE 0
READ LINE sy-index FIELD VALUE sy-lisel INTO w_lisel.
IF w_lisel+1(1) EQ space AND w_lisel+1(1) NE '-'
AND w_lisel+3(1) NE space.
w_lisel+1(1) = c_flag_x.
MODIFY LINE sy-index FIELD VALUE sy-lisel FROM w_lisel.
ENDIF. " IF W_LISEL+1(1) EQ...
ENDDO.
ENDFORM. " MARK_ALL_CHECKBOXES
*----------------------------------------------------------------------*
* FORM DEMARK_ALL_CHECKBOXES *
*----------------------------------------------------------------------*
* Subroutine for de selecting all the checkboxes on the list *
*----------------------------------------------------------------------*
* There are no interface parameters to be passed to this subroutine. *
*----------------------------------------------------------------------*
FORM demark_all_checkboxes .
DO.
READ LINE sy-index.
IF sy-subrc NE 0.
EXIT.
ENDIF. " IF SY-SUBRC NE 0
READ LINE sy-index FIELD VALUE sy-lisel INTO w_lisel.
IF w_lisel+1(1) EQ c_flag_x.
w_lisel+1(1) = space.
MODIFY LINE sy-index FIELD VALUE sy-lisel FROM w_lisel.
ENDIF. " IF W_LISEL+1(1) EQ...
ENDDO.
ENDFORM. " DEMARK_ALL_CHECKBOXES
‎2008 Aug 16 10:22 AM
please also tell me.if i just need to display the only 1 icon on a display list,than how to hide them through pf status.
set pf status 'TEST' excluding 'PRNT' 'DSA'.
this is not working,do i need to write again n again for each icon.
‎2008 Aug 16 10:30 AM
>set pf status 'TEST' excluding 'PRNT' 'DSA'.
type-pools: slis.
data: it_ucomm type slis_t_extab.
append 'PRNT' to it_ucomm.
append 'DSA' to it_ucomm.
set pf-status 'TEST' excluding it_ucomm.if you have multiple functions to exclude then you have to use the above approach.