*&---------------------------------------------------------------------*
*& Report YTEST00A
*&---------------------------------------------------------------------*
*&Violin 2021/3/10
*&---------------------------------------------------------------------*
REPORT ytest00a.
*第7章 表控件Table Control---------------------------------------------------------------------*
*7.1.1手動建立程序,通過表格維護變更內表數據後提交數據庫
DATA: OK_CODE TYPE SY-UCOMM,
SAVE_OK LIKE OK_CODE.
DATA: LINEA TYPE I.
*DATA SP1 LIKE SPFLI OCCURS 0 WITH HEADER LINE.
DATA SP1 LIKE TABLE OF SPFLI WITH HEADER LINE.
DATA DELA_SPFLI LIKE TABLE OF SPFLI WITH HEADER LINE.
SELECT * INTO CORRESPONDING FIELDS OF TABLE SP1 FROM SPFLI.
CALL SCREEN 550.
MODULE CANCEL INPUT.
LEAVE PROGRAM.
ENDMODULE.
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TBL2' ITSELF
CONTROLS: TBL2 TYPE TABLEVIEW USING SCREEN 0550.
*&SPWIZARD: OUTPUT MODULE FOR TC 'TBL2'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE TBL2_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE SP1 LINES TBL2-lines.
ENDMODULE.
*&SPWIZARD: INPUT MODULE FOR TC 'TBL2'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MODIFY TABLE
MODULE TBL2_MODIFY INPUT.
MODIFY SP1
INDEX TBL2-CURRENT_LINE.
ENDMODULE.
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'SAVE'.
MODIFY SPFLI FROM TABLE SP1.
IF SY-SUBRC NE 0.
MESSAGE I005(YMESS) WITH '更新數據錯誤!'.
EXIT.
ELSE.
MESSAGE I005(YMESS) WITH '更新數據OK!'.
ENDIF.
WHEN 'DELETE'.
GET CURSOR LINE LINEA.
CHECK SY-SUBRC = 0.
LINEA = TBL2-TOP_LINE + LINEA - 1.
READ TABLE SP1 INDEX LINEA.
APPEND SP1 TO DELA_SPFLI.
DELETE SP1 INDEX : LINEA.
IF SY-SUBRC NE 0.
MESSAGE I005(YMESS) WITH '更新數據錯誤!'.
EXIT.
ELSE.
MESSAGE I005(YMESS) WITH '更新數據OK!'.
ENDIF.
WHEN 'GETDATA'.
GET CURSOR LINE LINEA.
CHECK SY-SUBRC = 0.
LINEA = TBL2-TOP_LINE - 1.
READ TABLE SP1 INDEX LINEA.
MESSAGE S006(YMESS) WITH SP1-CARRID SP1-CITYFROM.
ENDCASE.
ENDMODULE.
手動建立程序,通過表格維護變更內表數據後提交數據庫
最新推荐文章于 2024-04-23 15:04:20 发布