zoukankan      html  css  js  c++  java
  • 单选按钮实现alv格式显示和报表下载功能

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

    这是选择ALVLOOK执行的结果


    这是选择DOWMLOAD之后,下载到文件的内容,对于列名以及格式问题正在学习中。大神勿喷,初学阶段,奉上自己的学习心得,希望大家共同进步。

    *定义工作区

    DATA a_spfli LIKE TABLE OF spfli WITH HEADER LINE .

    DATA: name TYPE string"注name的类型必须为string

    name 'C:Users engbeiDesktopdownload.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


    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.

  • 相关阅读:
    类的组合
    类的继承和派生
    面向对象编程
    正则表达式
    sys模块 logging模块 序列化模块
    time 模块,random模块,os模块
    递归函数
    interface有没有继承Object
    UTF-8和GBK的区别
    九皇后
  • 原文地址:https://www.cnblogs.com/tb176/p/3896149.html
Copyright © 2011-2022 走看看