TABLEVIEW 的代码分析
SSOLE
*&---------------------------------------------------------------------*
*& Report ZTEST_BC410_TABLE *
*& *
*&---------------------------------------------------------------------*
*& *
*& 用非向导方式来做TABLEVIEW
*&---------------------------------------------------------------------*
REPORT ZTEST_BC410_TABLE .
.
TABLES: MARA, MAKT.
*定义一个内表,TABLE控件,就参照这个内表来显示.
* INPUT是第一列,用来选择列.CHAR ,1位.
DATA: BEGIN OF GIT_MARA OCCURS 0,
INPUT,
MATNR LIKE MARA-MATNR,
CHKBOX,
MAKTX LIKE MAKT-MAKTX,
TMP,
END OF GIT_MARA.
* OK_CODE的定义
DATA: OK_CODE LIKE SY-UCOMM,
SAVE_OK LIKE OK_CODE.
* 常量的定义,就是选择和没被选择.
CONSTANTS: CNS_SEL VALUE 'X',
CNS_SEL_NO VALUE ' ',
CNS_TRUE VALUE '1',
CNS_FALSE VALUE '0'.
*定义一个TABLEVIEW对象.
CONTROLS TBLC TYPE TABLEVIEW USING SCREEN 1000.
*定义一个结构是TABLE对象的一行
DATA: G_COL LIKE LINE OF TBLC-COLS,
G_SCREEN_FLG VALUE '',
G_DATAR VALUE ''.
CALL SCREEN 500.
START-OF-SELECTION.
CASE SY-UCOMM.
WHEN 'OUTPUT'.
PERFORM FRM_PRT_DATA.
ENDCASE.
*&---------------------------------------------------------------------*
*& Module STATUS_1000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_1000 OUTPUT.
SET PF-STATUS 'STATUS_1000'.
ENDMODULE. " STATUS_1000 OUTPUT
*&---------------------------------------------------------------------*
*& Module CANCEL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CANCEL INPUT.
DATA C_ANTWORT.
IF G_DATAR = CNS_SEL.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = 'MESSAGE'
text_question = 'don"t save it'
TEXT_BUTTON_1 = 'yes'
TEXT_BUTTON_2 = 'no'
DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = ''
START_COLUMN = 25
START_ROW = 6