首页 > 代码库 > 单选按钮实现alv格式显示和报表下载功能

单选按钮实现alv格式显示和报表下载功能

这是程序激活后执行出现的单选按钮,

<style></style>

这是选择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(10TYPE ,

      countryfr(10TYPE c,

      cityfrom(10TYPE c,

      cityto(10)  TYPE c,

      deptime(10TYPE c,

      distance(10TYPE c,

  END OF names.
*后面加一个if判断 分别调用Function

<style></style>


IF alvlook ‘X‘.
  CALL FUNCTION ‘REUSE_ALV_LIST_DISPLAY‘
   EXPORTING

 i_structure_name               =  ‘spfli‘ "我们查询的航班表

<style></style>


 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.


<style></style>


ELSE.

  CALL FUNCTION ‘GUI_DOWNLOAD‘

    EXPORTING

<style></style>


write_field_separator           ‘X‘

    confirm_overwrite               ‘X‘


<style></style>


  TABLES

      data_tab                        = a_spfli "我们自定义存放结果集的表

     fieldnames                      = names "我们自定义表可以存a_spfli结果字段
  EXCEPTIONS

    file_write_error                1

<style></style>


 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.