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

at user-command with input on

Former Member
0 Likes
596

Hi,

In the below code i am using an option input on ,where the user has to give the inputs manually.

After giving the input,if i give save the values which are fetched from itab are saved in ztable.

wa_new-idrum1 which is given by user is not saving in ztable.

Suggest some ideas.

Regards,

Bathri.

  LOOP AT IT_NEW INTO WA_NEW.
    SKIP.
    WRITE : / SY-TABIX,
              WA_NEW-MATNR,
              WA_NEW-MENGE LEFT-JUSTIFIED,
              40 WA_NEW-IDRUM1 LEFT-JUSTIFIED INPUT ON.
  ENDLOOP.


  SET PF-STATUS 'ZWORK'.

AT USER-COMMAND.
  CASE SY-UCOMM.
    WHEN 'SAVE'.
      LOOP AT IT_NEW INTO WA_NEW.
        MOVE : WA_NEW-MATNR TO ZWORK-MATNR,
               WA_NEW-MENGE TO ZWORK-MENGE,
               WA_NEW-IDRUM1 TO ZWORK-IDRUM1.
        MODIFY ZWORK.
      ENDLOOP.
  ENDCASE.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
509

Cause the internal table is not modified at list when user enter the values no update of ztable done. To correct try something like following

DATA: BEGIN OF IT_NEW OCCURS 100,
        MATNR  TYPE MATNR,
        MENGE  TYPE MENGE_D,
        IDRUM1 TYPE CHAR20,
       END OF IT_NEW.
DATA WA_NEW LIKE LINE OF IT_NEW.
DATA MENGE TYPE CHAR20.

START-OF-SELECTION.
  SELECT  * FROM MSEG UP TO 60 ROWS
    APPENDING CORRESPONDING FIELDS OF TABLE IT_NEW.
  LOOP AT IT_NEW INTO WA_NEW.
    SKIP.
    WRITE : / SY-TABIX,
              WA_NEW-MATNR,
              WA_NEW-MENGE LEFT-JUSTIFIED,
              40 WA_NEW-IDRUM1 LEFT-JUSTIFIED INPUT ON.
  ENDLOOP.
  SET PF-STATUS 'ZWORK'.

AT USER-COMMAND.
  CASE SY-UCOMM.
    WHEN 'SAVE'.
      DO.
        CLEAR: ZWORK,MENGE.
        READ LINE SY-INDEX
        FIELD VALUE WA_NEW-MATNR  INTO ZWORK-MATNR
                    WA_NEW-MENGE  INTO MENGE
                    WA_NEW-IDRUM1 INTO ZWORK-IDRUM1.
        IF SY-SUBRC NE '0'.
          EXIT.
        ENDIF.
        DO.
          REPLACE '.' WITH '' INTO MENGE.
          IF SY-SUBRC NE '0'.
            EXIT.
          ENDIF.
        ENDDO.
        REPLACE ',' WITH '.' INTO MENGE.
        CONDENSE MENGE NO-GAPS.
        ZWORK-MENGE = MENGE.
        IF ZWORK-MATNR IS NOT INITIAL.
          MODIFY ZWORK.
        ENDIF.
      ENDDO.
  ENDCASE.

2 REPLIES 2
Read only

Former Member
0 Likes
510

Cause the internal table is not modified at list when user enter the values no update of ztable done. To correct try something like following

DATA: BEGIN OF IT_NEW OCCURS 100,
        MATNR  TYPE MATNR,
        MENGE  TYPE MENGE_D,
        IDRUM1 TYPE CHAR20,
       END OF IT_NEW.
DATA WA_NEW LIKE LINE OF IT_NEW.
DATA MENGE TYPE CHAR20.

START-OF-SELECTION.
  SELECT  * FROM MSEG UP TO 60 ROWS
    APPENDING CORRESPONDING FIELDS OF TABLE IT_NEW.
  LOOP AT IT_NEW INTO WA_NEW.
    SKIP.
    WRITE : / SY-TABIX,
              WA_NEW-MATNR,
              WA_NEW-MENGE LEFT-JUSTIFIED,
              40 WA_NEW-IDRUM1 LEFT-JUSTIFIED INPUT ON.
  ENDLOOP.
  SET PF-STATUS 'ZWORK'.

AT USER-COMMAND.
  CASE SY-UCOMM.
    WHEN 'SAVE'.
      DO.
        CLEAR: ZWORK,MENGE.
        READ LINE SY-INDEX
        FIELD VALUE WA_NEW-MATNR  INTO ZWORK-MATNR
                    WA_NEW-MENGE  INTO MENGE
                    WA_NEW-IDRUM1 INTO ZWORK-IDRUM1.
        IF SY-SUBRC NE '0'.
          EXIT.
        ENDIF.
        DO.
          REPLACE '.' WITH '' INTO MENGE.
          IF SY-SUBRC NE '0'.
            EXIT.
          ENDIF.
        ENDDO.
        REPLACE ',' WITH '.' INTO MENGE.
        CONDENSE MENGE NO-GAPS.
        ZWORK-MENGE = MENGE.
        IF ZWORK-MATNR IS NOT INITIAL.
          MODIFY ZWORK.
        ENDIF.
      ENDDO.
  ENDCASE.

Read only

0 Likes
509

Hi,

Thank you very much.Its working fine.

Regards,

Bathri.