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.

  • 相关阅读:
    vue-router 路由拦截 beforeEach 添加静态路由 与 动态添加路由
    elementUI el-upload 根据上传的图片高度,进行自适应宽度
    vue 中 字符串分两行显示
    MySQL中的<=>
    Spring mvc再启动时候会打印项里面的所有路径
    一次解决前后台交互问题
    数据库表分区,分表
    支付宝接口
    打印js中一个对象的所有属性的值
    var
  • 原文地址:https://www.cnblogs.com/tb176/p/3896149.html
Copyright © 2011-2022 走看看