Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

menu painter help req??

Former Member
0 Likes
603

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
578

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

4 REPLIES 4
Read only

Former Member
0 Likes
578

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

Read only

Former Member
0 Likes
579

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

Read only

0 Likes
578

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.

Read only

0 Likes
578

>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.