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

help regarding 'table controls' and 'internal table' updation

Former Member
0 Likes
454

Hi all.

Basically this is what i have done..... I have created a table control in module pool program. I declared an Internal table and also have populated it from a database table. I have also used insert statement to insert an blank record in the table control view and delete statements to delete any record, also in the table control view... .

But I am not able to update any new record into an Internal table or the original table ..

Any Ideas how to do it ,Gurus

Thanks

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
427

HEllo,

Check thsi simple report.


REPORT ZTFH_TABLECONTROL .


TABLES : ZEMPTABLE.
DATA : SELLINE .
DATA : FLD(20).
DATA : LINNO TYPE I , OFF TYPE I.
DATA : ITAB LIKE ZEMPTABLE OCCURS 10 WITH HEADER LINE.

CONTROLS  : CON_TAB TYPE TABLEVIEW USING SCREEN 100.

SELECT * FROM ZEMPTABLE INTO TABLE ITAB.
DESCRIBE TABLE ITAB LINES CON_TAB-LINES.

CALL SCREEN 100.

*&---------------------------------------------------------------------*
*&      Module  EXT_COMM  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE EXT_COMM INPUT.
LEAVE PROGRAM.
ENDMODULE.                 " EXT_COMM  INPUT

*&---------------------------------------------------------------------*
*&      Module  TAB_UPDATE  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE TAB_UPDATE INPUT.
CASE SY-UCOMM.
WHEN 'DEL'.
      IF SELLINE = 'X'.
        DELETE ITAB WHERE EMPNO = ITAB-EMPNO.
        MESSAGE I000(ZYF_DEL).
      ENDIF.

WHEN 'UPD'.
    IF SELLINE = 'X'.

         MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
         MESSAGE I001(ZYF_DEL).

    ENDIF.

 WHEN 'INS'.
     IF SELLINE = 'X'.
      GET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
      SET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
      IF FLD CP 'ITAB*' AND SY-SUBRC = 0.
        IF LINNO >= 1.
          LINNO = LINNO + CON_TAB-TOP_LINE - 1.
          CLEAR ITAB.
          INSERT ITAB INDEX LINNO.
          CON_TAB-LINES = CON_TAB-LINES + 1.
        ELSE.
          CLEAR ITAB.
          APPEND ITAB.
          CON_TAB-LINES = CON_TAB-LINES + 1.
        ENDIF.
      ENDIF.

    ENDIF.
 WHEN 'SAV'.
  MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
  MESSAGE I002(ZYF_DEL).

ENDCASE.
ENDMODULE.                 " TAB_UPDATE  INPUT




“ FLOW LOGIC

PROCESS BEFORE OUTPUT.
 MODULE STATUS_0100.

LOOP AT ITAB WITH CONTROL CON_TAB.

ENDLOOP.

PROCESS AFTER INPUT.
 MODULE USER_COMMAND_0100.

MODULE EXT_COMM AT EXIT-COMMAND.


LOOP AT ITAB.
MODULE TAB_UPDATE.
ENDLOOP.	


REgards,

Vasanth

Hi all.

Basically this is what i have done..... I have created a table control in module pool program. I declared an Internal table and also have populated it from a database table. I have also used insert statement to insert an blank record in the table control view and delete statements to delete any record, also in the table control view... .

But I am not able to update any new record into an Internal table or the original table ..

Any Ideas how to do it ,Gurus

Thanks

2 REPLIES 2
Read only

Former Member
0 Likes
427

Hi

To transfer the data from table control to internal table and update it, you need to create a module in PAI:

PROCESS.

  LOOP AT ITAB.
      MODULE MODIFY_ITAB.
  ENDLOOP.

MODULE MODIFY_ITAB.
  MODIFY ITAB LINE <TABLE CONTROL>-CURRENT_LINE.
ENDMODULE.

Max

Read only

Former Member
0 Likes
428

HEllo,

Check thsi simple report.


REPORT ZTFH_TABLECONTROL .


TABLES : ZEMPTABLE.
DATA : SELLINE .
DATA : FLD(20).
DATA : LINNO TYPE I , OFF TYPE I.
DATA : ITAB LIKE ZEMPTABLE OCCURS 10 WITH HEADER LINE.

CONTROLS  : CON_TAB TYPE TABLEVIEW USING SCREEN 100.

SELECT * FROM ZEMPTABLE INTO TABLE ITAB.
DESCRIBE TABLE ITAB LINES CON_TAB-LINES.

CALL SCREEN 100.

*&---------------------------------------------------------------------*
*&      Module  EXT_COMM  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE EXT_COMM INPUT.
LEAVE PROGRAM.
ENDMODULE.                 " EXT_COMM  INPUT

*&---------------------------------------------------------------------*
*&      Module  TAB_UPDATE  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE TAB_UPDATE INPUT.
CASE SY-UCOMM.
WHEN 'DEL'.
      IF SELLINE = 'X'.
        DELETE ITAB WHERE EMPNO = ITAB-EMPNO.
        MESSAGE I000(ZYF_DEL).
      ENDIF.

WHEN 'UPD'.
    IF SELLINE = 'X'.

         MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
         MESSAGE I001(ZYF_DEL).

    ENDIF.

 WHEN 'INS'.
     IF SELLINE = 'X'.
      GET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
      SET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
      IF FLD CP 'ITAB*' AND SY-SUBRC = 0.
        IF LINNO >= 1.
          LINNO = LINNO + CON_TAB-TOP_LINE - 1.
          CLEAR ITAB.
          INSERT ITAB INDEX LINNO.
          CON_TAB-LINES = CON_TAB-LINES + 1.
        ELSE.
          CLEAR ITAB.
          APPEND ITAB.
          CON_TAB-LINES = CON_TAB-LINES + 1.
        ENDIF.
      ENDIF.

    ENDIF.
 WHEN 'SAV'.
  MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
  MESSAGE I002(ZYF_DEL).

ENDCASE.
ENDMODULE.                 " TAB_UPDATE  INPUT




“ FLOW LOGIC

PROCESS BEFORE OUTPUT.
 MODULE STATUS_0100.

LOOP AT ITAB WITH CONTROL CON_TAB.

ENDLOOP.

PROCESS AFTER INPUT.
 MODULE USER_COMMAND_0100.

MODULE EXT_COMM AT EXIT-COMMAND.


LOOP AT ITAB.
MODULE TAB_UPDATE.
ENDLOOP.	


REgards,

Vasanth