*& Report ZLITEST_009 *&
*&---------------------------------------------------------------------* *& *&
*&---------------------------------------------------------------------*
REPORT ZLITEST_009.
TABLES:SPFLI.
DATA: SAVE_OK TYPE SY-UCOMM. DATA: OK_CODE TYPE SY-UCOMM.
START-OF-SELECTION.
SELECT * INTO SPFLI FROM SPFLI WHERE CARRID = 'AA'. WRITE: / SPFLI-CARRID, SPFLI-CONNID, SPFLI-COUNTRYFR,SPFLI-CITYFROM.
HIDE: SPFLI-CARRID,SPFLI-CONNID,SPFLI-COUNTRYFR, SPFLI-CITYFROM,SPFLI-AIRPFROM,SPFLI-COUNTRYTO, SPFLI-CITYTO,SPFLI-AIRPTO. ENDSELECT.
AT LINE-SELECTION. CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module CANCE INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CANCE INPUT. LEAVE PROGRAM.
ENDMODULE. \
TABLE CONTRAL 双击事件和读写属性的互换
测试程序:ZLITEST_012, 源代码如下:
REPORT ZLITEST_012.
DATA:OK_CODE TYPE SY-UCOMM. DATA:SAVE_OK TYPE SY-UCOMM.
DATA:SP1 TYPE TABLE OF SPFLI WITH HEADER LINE. DATA:LINEA TYPE I. DATA:T_MES(50) TYPE C.
SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE SP1.
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TABL1' ITSELF CONTROLS: TABL1 TYPE TABLEVIEW USING SCREEN 0100. DATA: ACOL TYPE SCXTAB_COLUMN. *DATA: ACOL LIKE LINE OF TABL1-COLS. *DATA: ACOL TYPE SCXTAB_COLUMN_IT. CALL SCREEN 100.
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABL1'. DO NOT CHANGE THIS LINE! *&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR MODULE TABL1_CHANGE_TC_ATTR OUTPUT. DESCRIBE TABLE SP1 LINES TABL1-lines. ENDMODULE.
*&SPWIZARD: INPUT MODULE FOR TC 'TABL1'. DO NOT CHANGE THIS LINE! *&SPWIZARD: MODIFY TABLE MODULE TABL1_MODIFY INPUT. MODIFY SP1
INDEX TABL1-CURRENT_LINE. ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'STATUS1'. * SET TITLEBAR 'xxx'.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module CANCE INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CANCE INPUT. LEAVE PROGRAM.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT. DATA: T_NUM(20) TYPE C. SAVE_OK = OK_CODE. CLEAR OK_CODE. CASE SAVE_OK. WHEN 'EXIT'. LEAVE PROGRAM. WHEN 'PICK'.
* MESSAGE 'DOUBLE CLICK' TYPE 'S'. GET CURSOR LINE LINEA. T_NUM = LINEA. CONDENSE T_NUM.
CONCATENATE 'You double click the line' t_num INTO T_MES SEPARATED BY SPACE.
MESSAGE T_MES TYPE 'S'. WHEN 'READWR'.
LOOP AT TABL1-COLS INTO ACOL WHERE INDEX GT 0. IF SY-TABIX = 1.
ACOL-SCREEN-INPUT = '0'. ELSE.
IF ACOL-SCREEN-INPUT = '0'. ACOL-SCREEN-INPUT = '1'. ELSEIF ACOL-SCREEN-INPUT = '1'. ACOL-SCREEN-INPUT = '0'. ENDIF. ENDIF.
MODIFY TABL1-COLS FROM ACOL INDEX SY-TABIX. ENDLOOP. ENDCASE.
ENDMODULE. \
通过表格维护变更内表数据后提交数据库
测试程序;zlitest_013,zlitest_014.源代码如下:
*&---------------------------------------------------------------------*
*& Report ZLITEST_014 *&
*&---------------------------------------------------------------------* *& *&
*&---------------------------------------------------------------------*
REPORT ZLITEST_014.
DATA:OK_CODE TYPE SY-UCOMM. DATA:SAVE_OK TYPE SY-UCOMM.
DATA:LT_SPFLI LIKE TABLE OF SPFLI. DATA:LT_DSPFLI LIKE TABLE OF SPFLI. DATA:LS_SPFLI LIKE SPFLI. DATA:LINEA TYPE I.
SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE LT_SPFLI. CALL SCREEN 100.
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TABL1' ITSELF CONTROLS: TABL1 TYPE TABLEVIEW USING SCREEN 0100.
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABL1'. DO NOT CHANGE THIS LINE! *&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR MODULE TABL1_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE LT_SPFLI LINES TABL1-lines. ENDMODULE.
*&SPWIZARD: INPUT MODULE FOR TC 'TABL1'. DO NOT CHANGE THIS LINE! *&SPWIZARD: MODIFY TABLE MODULE TABL1_MODIFY INPUT. MODIFY LT_SPFLI FROM LS_SPFLI
INDEX TABL1-CURRENT_LINE. ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'STATUS1'. * SET TITLEBAR 'xxx'.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module CANCEL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CANCEL INPUT. LEAVE PROGRAM.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT. DATA:T_MES(20) TYPE C. SAVE_OK = OK_CODE. CLEAR: OK_CODE. CASE SAVE_OK. WHEN 'EXIT'. LEAVE PROGRAM. WHEN 'SAVE'.
MODIFY SPFLI FROM TABLE LT_SPFLI. IF SY-SUBRC NE 0.
MESSAGE 'MODIFY DATA ERROR!' TYPE 'I'. EXIT. ENDIF.
DELETE SPFLI FROM TABLE LT_DSPFLI. IF SY-SUBRC NE 0.