单选按钮实现alv格式显示和报表下载功能
这是程序激活后执行出现的单选按钮,
这是选择ALVLOOK执行的结果
这是选择DOWMLOAD之后,下载到文件的内容,对于列名以及格式问题正在学习中。大神勿喷,初学阶段,奉上自己的学习心得,希望大家共同进步。
*定义工作区
DATA a_spfli LIKE TABLE OF spfli WITH HEADER LINE .
DATA: name TYPE string. "注name的类型必须为string
name = 'C:\Users\tengbei\Desktop\download.txt'.
*定义两个单选按钮 默认为alvlook 默认值为X
PARAMETERS: alvlook RADIOBUTTON GROUP ad1 DEFAULT 'X'.
PARAMETERS: download RADIOBUTTON GROUP ad1 .
*查询的结果集放到内表中
SELECT scarr~carrname spfli~countryfr spfli~cityfrom spfli~cityto spfli~deptime spfli~distance
INTO CORRESPONDING FIELDS OF TABLE a_spfli
FROM scarr INNER JOIN spfli ON spfli~carrid = scarr~carrid.
*定义一个内表存放查询的结果 一共6字段
DATA : BEGIN OF names OCCURS 0,
carrname(10) TYPE c ,
countryfr(10) TYPE c,
cityfrom(10) TYPE c,
cityto(10) TYPE c,
deptime(10) TYPE c,
distance(10) TYPE c,
END OF names.
*后面加一个if判断 分别调用Function
IF alvlook = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_structure_name = 'spfli' "我们查询的航班表
TABLES
t_outtab = a_spfli
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.
ELSE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
write_field_separator = 'X'
confirm_overwrite = 'X'
TABLES
data_tab = a_spfli "我们自定义存放结果集的表
fieldnames = names "我们自定义表可以存a_spfli结果字段
EXCEPTIONS
file_write_error = 1
file_not_found = 19
* DATAPROVIDER_EXCEPTION = 20
* CONTROL_FLUSH_ERROR = 21
* OTHERS = 22
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.