-----------------------------------2007-6-27---------------------
自定义输出字段的ALV控件
标准列表输出
对write语句格式化
Read语句的简单使用
ALV控件
(Auto List View)是SAP中显示数据的重要控件
自定义输出字段的ALV控件
主要函数:REUSE_ALV_LIST_DISPLAY
Eg.
TABLES MAKT.
*ALV使用到的类库
TYPE-POOLS:SLIS.
*一列描述
DATA: WA_ALV_FILED TYPE SLIS_FIELDCAT_ALV.
*列描述内表,列清单
DATA: WA_ALV_FILEDCAT TYPE SLIS_T_FIELDCAT_ALV.
*定义内表
DATA ITAB_MAKT LIKE TABLE OF MAKT WITH HEADER LINE.
SELECT * INTO TABLE ITAB_MAKT FROM MAKT.
*定义字段
WA_ALV_FILED-COL_POS = 1.
WA_ALV_FILED-FIELDNAME = 'MANDT'.
WA_ALV_FILED-SELTEXT_M = 'COL1'.
APPEND WA_ALV_FILED TO WA_ALV_FILEDCAT.
WA_ALV_FILED-COL_POS = 1.
WA_ALV_FILED-FIELDNAME = 'MATNR'.
WA_ALV_FILED-SELTEXT_M = 'COL2'.
APPEND WA_ALV_FILED TO WA_ALV_FILEDCAT.
WA_ALV_FILED-COL_POS = 1.
WA_ALV_FILED-FIELDNAME = 'SPRAS'.
WA_ALV_FILED-SELTEXT_M = 'COL3'.
APPEND WA_ALV_FILED TO WA_ALV_FILEDCAT.
WA_ALV_FILED-COL_POS = 1.
WA_ALV_FILED-FIELDNAME = 'MAKTX'.
WA_ALV_FILED-SELTEXT_M = 'COL14'.
APPEND WA_ALV_FILED TO WA_ALV_FILEDCAT.
*调用ALV显示表单数据
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
IT_FIELDCAT = WA_ALV_FILEDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = ITAB_MAKT
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
标准列表输出
ULINE AT /(91)----------à输出横线,长度91
Sy-vline:输出竖线
WRITE: (15) <WA> “<WA>占用15各字符的宽度
其它相关系统参数:
SY-PAGNO |
当前页号 |
SY-DATUM |
当前时间 |
SY-LINSZ |
当前报表宽度 |
SY-LINCT |
当前报表长度 |
SPACE |
空字串 |
SY-SUBRC |
执行状态0表示成功 |
SY-UNAME |
用户名 |
SY-UZEIT |
当前时间 |
SY-TCODE |
当前TCODE |
SY-LSIND |
列表索引页 |
SY-LISTI |
上一个列表的索引 |
SY-LILLI |
绝对列表中选中的行号 |
SY-CUROW |
屏幕上的行 |
SY-CUCOL |
光标列 |
SY-CPAGE |
列表的当前显示页 |
SY-STARO |
真实行号 |
SY-LISEL |
选择行的内容,长度为255 |
SY-LINNO |
当前行 |
Eg.
*这些语句可以写在select循环中
uline (60).
write: /(12) sy-vline, (30) 'test', sy-vline.
uline /(50).
对write语句格式化
Read语句的简单使用
READ TABLE <itab> [INTO <wa>] <key-option> COMPARING <fields>.
READ TABLE <itab> [INTO <wa>] <key-option> TRANSPORTING <fields>.
Eg.
READ TABLE ITAB INTO LINE INDEX 5 TRANSPORTING COL2.