‎2006 Aug 01 11:28 AM
Hello All,
can any one give me a simple table control program with code,which used buttons like GETDATA,UPDATE,DELET data, also select one row and multiple row at a time.
Rajesh
‎2006 Aug 01 11:39 AM
Hi Rajesh,
chk the link below for the example
http://members.aol.com/_ht_a/skarkada/sap/table_control/table_control.htm
Reward points for the helpful.
Regards,
Harini
‎2006 Aug 01 11:41 AM
Check this out
<b>For Inserting a Row</b>
<b>For Deletion of a Row</b>
You can go through this document...
http://esnips.com/doc/48bd95e8-facc-4932-b923-465ba59bad24/Table-Control.pdf
‎2006 Aug 01 11:51 AM
hi example code for Insertion deletion is ::
PROCESS BEFORE OUTPUT.
MODULE STATUS_0001.
PROCESS AFTER INPUT.
*MODULE VALIDATE_VBELN.
MODULE USER_COMMAND_0001.
PROCESS BEFORE OUTPUT.
LOOP AT IT_VBRP WITH CONTROL TAB1 CURSOR TAB1-TOP_LINE.
MODULE STATUS_0002.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT IT_VBRP.
ENDLOOP.
MODULE USER_COMMAND_0002.
PROCESS BEFORE OUTPUT.
LOOP AT IT_VBRP WITH CONTROL TAB1 CURSOR TAB1-TOP_LINE.
MODULE STATUS_0002.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT IT_VBRP.
ENDLOOP.
MODULE USER_COMMAND_0002.
PROGRAM ZTRAN3_ASHOK_03 .
&----
*& Module pool ZTRAN1_ASHOK_03 *
*& *
&----
*& *
*& *
&----
CONTROLS:TAB1 TYPE TABLEVIEW USING SCREEN '0002',
TAB2 TYPE TABLEVIEW USING SCREEN '0003'.
TABLES: VBRP,
VBRK.
DATA: V_VBELN LIKE VBRK-VBELN.
DATA: BEGIN OF IT_VBRP OCCURS 0,
POSNR LIKE VBRP-POSNR,
NTGEW LIKE VBRP-NTGEW,
BRGEW LIKE VBRP-BRGEW,
GEWEI LIKE VBRP-GEWEI,
CHK,
END OF IT_VBRP.
DATA: V_TABIX TYPE SY-TABIX,
V_CHECK TYPE C,
N TYPE I.
MODULE STATUS_0001 OUTPUT.
SET PF-STATUS 'ASH'.
SET TITLEBAR 'AS1'.
ENDMODULE. " STATUS_0001 OUTPUT
&----
*& Module STATUS_0003 OUTPUT
&----
text
----
MODULE STATUS_0003 OUTPUT.
SET PF-STATUS 'xxxxxxxx'.
SET TITLEBAR 'AS3'.
*MOVE-CORRESPONDING IT_VBRP TO VBRP.
*SET CURSOR FIELD 'MODIFY'.
ENDMODULE. " STATUS_0003 OUTPUT
&----
*& Module STATUS_0002 OUTPUT
&----
text
----
MODULE STATUS_0002 OUTPUT.
SET PF-STATUS 'xxxxxxxx'.
SET TITLEBAR 'AS2'.
*MOVE-CORRESPONDING IT_VBRP TO VBRP.
LOOP AT SCREEN.
IF SCREEN-NAME = 'IT_VBRP-POSNR'.
SCREEN-INPUT = 0.
ENDIF.
IF SCREEN-NAME = 'IT_VBRP-NTGEW'.
SCREEN-INPUT = 0.
ENDIF.
IF SCREEN-NAME = 'IT_VBRP-BRGEW'.
SCREEN-INPUT = 0.
ENDIF.
IF SCREEN-NAME = 'IT_VBRP-GEWEI'.
SCREEN-INPUT = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE. " STATUS_0002 OUTPUT
&----
*& Module VALIDATE_VBELN INPUT
&----
text
----
*MODULE VALIDATE_VBELN INPUT.
**SELECT SINGLE VBELN FROM VBRK INTO V_VBELN WHERE VBELN = VBRK-VBELN.
**IF SY-SUBRC <> 0.
**MESSAGE E001(ZASH) WITH 'THIS VBELN IS NOT AVAILABLE IN VBRK'.
**ENDIF.
*
*ENDMODULE. " VALIDATE_VBELN INPUT
&----
*& Module USER_COMMAND_0001 INPUT
&----
text
----
MODULE USER_COMMAND_0001 INPUT.
SELECT POSNR
NTGEW
BRGEW
GEWEI
FROM VBRP
INTO TABLE IT_VBRP WHERE VBELN = VBRK-VBELN.
CASE SY-UCOMM.
WHEN 'DISP'.
CALL SCREEN '0002'.
DESCRIBE TABLE IT_VBRP LINES TAB1-LINES.
WHEN 'CHAN'.
CALL SCREEN '0003'.
DESCRIBE TABLE IT_VBRP LINES TAB2-LINES.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0001 INPUT
&----
*& Module USER_COMMAND_0002 INPUT
&----
text
----
module USER_COMMAND_0002 input.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
endmodule. " USER_COMMAND_0002 INPUT
&----
*& Module USER_COMMAND_0003 INPUT
&----
text
----
module USER_COMMAND_0003 input.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'DELE'.
*LOOP AT IT_VBRP WHERE CHK = 'X'.
DELETE IT_VBRP WHERE CHK = 'X'."INDEX SY-TABIX.
DESCRIBE TABLE IT_VBRP LINES TAB2-LINES.
*ENDLOOP.
*DESCRIBE TABLE IT_VBRP LINES N."TAB2-LINES.
*DESCRIBE TABLE IT_VBRP LINES SY-LOOPC.
WHEN 'INSE'.
LOOP AT IT_VBRP WHERE CHK = 'X'.
CLEAR IT_VBRP.
V_TABIX = SY-TABIX + 1.
INSERT IT_VBRP INDEX V_TABIX. "TAB2-CURRENT_LINE."
DESCRIBE TABLE IT_VBRP LINES TAB2-LINES.
ENDLOOP.
WHEN 'MODI'.
MESSAGE I003(ZASH) WITH 'THE RECORD IS UPDATED'.
*INSERT IT_VBRP INDEX TAB2-CURRENT_LINE.
*INSERT IT_VBRP INDEX TAB2-CURRENT_LINE.
*WHEN 'MODI'.
*LOOP AT
*MODIFY IT_VBRP INDEX TAB2-CURRENT_LINE.
*WHEN 'SAVE'.
*WRITE : 'ASHOK'.
ENDCASE.
endmodule. " USER_COMMAND_0003 INPUT
&----
*& Module V_CHECK0003 INPUT
&----
text
----
module V_CHECK0003 input.
IF V_CHECK = 'X'.
IT_VBRP-CHK = 'X'.
ELSE.
CLEAR IT_VBRP-CHK.
ENDIF.
MODIFY IT_VBRP INDEX TAB2-CURRENT_LINE.
endmodule. " V_CHECK0003 INPUT
&----
*& Module XYZ OUTPUT
&----
text
----
module XYZ output.
IF TAB2-CURRENT_LINE = 1.
SET CURSOR FIELD IT_VBRP-POSNR.
ENDIF.
endmodule. " XYZ OUTPUT