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

how to use case within read statement

aarif_baig
Active Participant
0 Likes
1,620

pls let me know

pls let me know

5 REPLIES 5
Read only

Former Member
0 Likes
1,143

ORM user_command USING s_ucomm TYPE sy-ucomm

rs_selfield TYPE slis_selfield.

CLEAR wa_itab1.

READ TABLE t_itab1 INTO wa_itab1 INDEX rs_selfield-tabindex.

CASE s_ucomm.

WHEN 'POD'.

SET PARAMETER ID 'BES' FIELD wa_itab1-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

CLEAR wa_itab1.

WHEN 'MAT'.

SET PARAMETER ID 'MAT' FIELD wa_itab1-matnr.

CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

WHEN '&IC1'.

IF rs_selfield-fieldname = 'MATNR'.

SET PARAMETER ID 'MAT' FIELD wa_itab1-matnr.

CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

ELSEIF rs_selfield-fieldname = 'EBELN'.

SET PARAMETER ID 'BES' FIELD wa_itab1-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

WHEN 'PRINT'.

PERFORM multiple_sel.

PERFORM call_form.

CLEAR : f_itab1, f_itab2.

WHEN 'SMART'.

PERFORM multiple_sel.

PERFORM call_smartform.

ENDCASE.

ENDFORM. "user_command

Read only

Former Member
0 Likes
1,143
READ TABLE ITAB WITH KEY MATNR = V_MATNR.
IF SY-SUBRC EQ 0.
 CASE  ITAB-MATNR.
   WHEN '10000000'.
     *do something
   WHEN '2220000000'.
     *do something    
ENDCASE.
ENDIF.
Read only

Former Member
0 Likes
1,143

hi

good

REPORT demo_list_set_cursor_3 LINE-SIZE 30

NO STANDARD PAGE HEADING.

DATA: inp(2) TYPE c, top(2) TYPE c.

SET PF-STATUS 'LINE_NUMBER'.

DO 50 TIMES.

WRITE: / 'Line ', (2) sy-index.

ENDDO.

TOP-OF-PAGE.

WRITE: 'Line number:', inp INPUT ON.

ULINE.

SKIP.

AT USER-COMMAND.

DESCRIBE LIST PAGE 1 TOP-LINES top.

CASE sy-ucomm.

WHEN 'LINE'.

READ LINE 1 FIELD VALUE inp.

SCROLL LIST TO PAGE 1 LINE inp.

inp = inp + top.

SET CURSOR LINE inp OFFSET 6.

ENDCASE.

thanks

mrutyun^

Read only

Former Member
0 Likes
1,143

Usually the read & Case will be used Combinedly in th ALV drilldown by user command ...

please see the LOGIC of it .

FORM USER_COMMAND.
  PERFORM SET_SCROLL_LINE.
  CASE SY-UCOMM.
    WHEN 'ENTE'.
      READ TABLE IT_DATA WITH KEY WERKS = IT_DATA-WERKS
                                  MATNR = IT_DATA-MATNR.
      IF SYST-SUBRC = 0.
        CASE G_FIELD.
          WHEN 'IT_DATA-VALUE1'.
            IF IT_DATA-VALUE1 <> SPACE.
               SUBMIT (IT_DATA-VALUE1) VIA SELECTION-SCREEN AND RETURN.
            ELSE.
               IT_DATA-VALUE1 = 'Enter 1 Press'(001).
            ENDIF.
          WHEN 'IT_DATA-VALUE2'.
            IT_DATA-VALUE2 = 'Enter 2 Press'(001).
        ENDCASE.
        MODIFY IT_DATA INDEX SYST-TABIX.
      ENDIF.
      PERFORM WRITE_REPORT.
      PERFORM POSITION_LIST.
      CASE G_FIELD.
        WHEN 'IT_DATA-EXP'.
          ADD 1 TO PAGE-CURSLINE.
          SET CURSOR FIELD 'IT_DATA-VALUE1' LINE PAGE-CURSLINE.
        WHEN 'IT_DATA-VALUE1'.
          SET CURSOR FIELD 'IT_DATA-VALUE1' LINE PAGE-CURSLINE.
        WHEN 'IT_DATA-VALUE2'.
          SET CURSOR FIELD 'IT_DATA-VALUE2' LINE PAGE-CURSLINE.
      ENDCASE.
    WHEN 'EXPA'.
      PERFORM SET_EXPAND USING '-'.
      PERFORM WRITE_REPORT.
    WHEN 'COLA'.
      PERFORM SET_EXPAND USING '+'.
      PERFORM WRITE_REPORT.
  ENDCASE.
ENDFORM.

Reward points if it is usefull .....

Girish

Read only

Former Member
0 Likes
1,143

then another example is :



select ebeln ebelp statu aedat matnr menge meins netpr peinh
 up to 10 rows
  from ekpo
  into corresponding fields of table it_ekko.


FORM user_command USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.

* Check function code
  CASE r_ucomm.
    WHEN '&IC1'.
*   Check field clicked on within ALVgrid report
    IF rs_selfield-fieldname = 'EBELN'.
*     Read data table, using index of row user clicked on
      READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
*     Set parameter ID for transaction screen field
      SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
*     Sxecute transaction ME23N, and skip initial data entry screen
      CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
    ENDIF.

    WHEN '&DATA_SAVE'.  "user presses SAVE
    loop at it_ekko into wa_ekko.
      if wa_ekko-sel EQ 'X'.
*       Process records that have been selected
      endif.
    endloop.
  ENDCASE.
ENDFORM.

reward points if it is usefull .....

Girish