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

Updating database table using Table Control

Former Member
0 Likes
314

hi ABAPers,

i have a problem while updating the database table using table control,

please,check the code

Code in Top Include:

Tables: MARA,

MAKT.

DATA: BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

END OF ITAB.

*data:ok_code(20).

CONTROLS TC1 TYPE TABLEVIEW USING SCREEN 2000.

*

*DATA: cols LIKE LINE OF TC1-cols,

  • lines TYPE i.

Screen_1000:Code in PAI

module USER_COMMAND_1000 input.

CASE SY-UCOMM.

WHEN 'DISPLAY'.

SELECT SPRAS MAKTX FROM MAKT INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR = MARA-MATNR.

IF SY-DBCNT IS INITIAL.

MESSAGE I127(ZKC_MSGCLS).

ELSE.

SET SCREEN 2000.

ENDIF.

WHEN 'EXIT'.

LEAVE PROGRAM.

SET SCREEN 0.

ENDCASE.

endmodule. " USER_COMMAND_1000 INPUT

Screen_2000 PAI Code

module USER_COMMAND_2000 input.

CASE SY-UCOMM.

WHEN 'UPDATE'.

  • LOOP AT TC1-cols INTO cols WHERE index GT 2.

  • IF cols-screen-input = '0'.

  • cols-screen-input = '1'.

  • ELSEIF cols-screen-input = '1'.

  • cols-screen-input = '0'.

  • ENDIF.

  • MODIFY TC1-cols FROM cols INDEX sy-tabix.

  • ENDLOOP.

WHEN 'EXIT'.

LEAVE PROGRAM.

SET SCREEN 0.

WHEN 'BACK'.

SET SCREEN 1000.

ENDCASE.

endmodule. " USER_COMMAND_2000 INPUT

Screen_2000 Code outside PBO

LOOP AT itab WITH CONTROL TC1 CURSOR TC1-TOP_LINE.

MODULE ctrl_pai.

ENDLOOP.

Screen_2000 Code outside PAI

LOOP AT itab.

ENDLOOP.

regards,

vinod

1 REPLY 1
Read only

Former Member
0 Likes
280

Hi,

i am sending you one code,just refer that and change your modify statement.

REPORT demo_dynpro_tabcont_loop_at.

CONTROLS flights TYPE TABLEVIEW USING SCREEN 100.
DATA: cols LIKE LINE OF flights-cols,
      lines TYPE i.

DATA: ok_code TYPE sy-ucomm,
      save_ok TYPE sy-ucomm.

DATA: itab TYPE TABLE OF demo_conn.
TABLES demo_conn.

SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE itab.

LOOP AT flights-cols INTO cols WHERE index GT 2.
  cols-screen-input = '0'.
  MODIFY flights-cols FROM cols INDEX sy-tabix.
ENDLOOP.

CALL SCREEN 100.

MODULE status_0100 OUTPUT.
  SET PF-STATUS 'SCREEN_100'.
  DESCRIBE TABLE itab LINES lines.
  flights-lines = lines.
ENDMODULE.

MODULE cancel INPUT.
  LEAVE PROGRAM.
ENDMODULE.

MODULE read_table_control INPUT.
  MODIFY itab FROM demo_conn INDEX flights-current_line.
ENDMODULE.

MODULE user_command_0100 INPUT.
  save_ok = ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN 'TOGGLE'.
      LOOP AT flights-cols INTO cols WHERE index GT 2.
        IF  cols-screen-input = '0'.
          cols-screen-input = '1'.
        ELSEIF  cols-screen-input = '1'.
          cols-screen-input = '0'.
        ENDIF.
        MODIFY flights-cols FROM cols INDEX sy-tabix.
      ENDLOOP.
    WHEN 'SORT_UP'.
      READ TABLE flights-cols INTO cols WITH KEY selected = 'X'.
      IF sy-subrc = 0.
        SORT itab STABLE BY (cols-screen-name+10) ASCENDING.
        cols-selected = ' '.
        MODIFY flights-cols FROM cols INDEX sy-tabix.
      ENDIF.
    WHEN 'SORT_DOWN'.
      READ TABLE flights-cols INTO cols WITH KEY selected = 'X'.
      IF sy-subrc = 0.
        SORT itab STABLE BY (cols-screen-name+10) DESCENDING.
        cols-selected = ' '.
        MODIFY flights-cols FROM cols INDEX sy-tabix.
      ENDIF.
    WHEN 'DELETE'.
      READ TABLE flights-cols INTO cols WITH KEY screen-input = '1'.
      IF sy-subrc = 0.
        LOOP AT itab INTO demo_conn WHERE mark = 'X'.
          DELETE itab.
        ENDLOOP.
      ENDIF.
  ENDCASE.
ENDMODULE.

<b>

flow logic:</b>

PROCESS BEFORE OUTPUT.
  MODULE STATUS_0100.
    LOOP AT ITAB INTO DEMO_CONN WITH CONTROL FLIGHTS.
  ENDLOOP.

PROCESS AFTER INPUT.
  MODULE CANCEL AT EXIT-COMMAND.
  LOOP AT ITAB.
    module read_table_control.
  ENDLOOP.
  module user_command_0100.

Regards,

pankaj singh

<b>

      • reward if helpful</b>