zoukankan      html  css  js  c++  java
  • ALV报表入门

      

    一 .什么是ALV

          SAP提供一套ALV(Application List viewer.)的功能模块,可以对输出报表的样式作修饰,提高报表输出的可读性和功能性,对于动态报表程序是一个很有效率的工具。一般的ALV报表有一个表头,再加上表内容,并附加一些如排序,分类汇总,合计或下载为本地文件等预设功能。ALV报表显示方式基本上有2种,一种是Grid方式,一种是List方式,分别调用不同的Function来实现。

    二.ALV式样

    1. REUSE_ALV_GRID_DISPLAY

    2. REUSE_ALV_LIST_DISPLAY

    3.ALV工具栏

    三.ALV函数的调用

          当完成从数据库抽取数据或上传数据,并将数据存放到内部表(IT_ABC)后,开始调用下面的ALV函数模块。

    1.指定数据类型组

    TYPE-POOLS: SLIS.

    DATA:

    IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,    "ALV输出项目编辑用

    WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,     "ALV输出项目编辑用

    WA_LAYOUT   TYPE SLIS_LAYOUT_ALV.         "ALV样式设定用

    2.调出函数模块

    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

       EXPORTING

           IS_LAYOUT     = WA_LAYOUT

           IT_FIELDCAT   = IT_FIELDCAT

       TABLES

           T_OUTTAB      = IT_TAB.

       ......

     3. 函数的各项说明

    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

       EXPORTING

           I_STRUCTURE_NAME                       =   已经存在SAP系统中的结构

           IS_LAYOUT                                     =   布局             

           IT_FIELDCAT                                  =   自定义

           IT_SORT                                        =   对项目的一个排序

           IT_EVENTS                                    =   标题部分

       ......

    四.使用ALV的注意事项

    1.在ALV中,需要注意所有添加的需要显示的列,都必须在相应的内表中有对应的字段,否则,只要使用合计或者分类汇总都会导致程序的崩溃。

    2.在SAP ABAP程序中,字符串的大小写很重要,在单引号包围的字符串中,一般来说都应该用大写,特别是在调用一些系统的方法时传入字符串参数时,例如在ALV中,

    Call Function ‘REUSE_ALV_GRID_DISPLAY’时,

    传入的下面的两个参数:

    i_callback_pf_status_set = ‘SET_PF_STATUS’

    i_callback_user_command  = ‘USER_COMMAND’

    就必须使用大写字符串,否则就会出现Perform_not_found的系统错误。

    3.另外,传入到ALV中的列对应的字段名称也必须使用大写字母,否则数据不会显示出来。

    五.相关参数说明

    1.构造SLIS_FIELDCAT_ALV常用参数说明

    CLEAR WA_FIELDCAT.

    WA_FIELDCAT-FIELDNAME        = ‘MTART‘.      “指定从内表中的输出的数据项目

    WA_FIELDCAT-SELTEXT_L         = ‘品目タイプ‘.    “上面指定项目显示时的名称(长文本)

    WA_FIELDCAT-SELTEXT_M        = ‘品目タイプ‘.    “上面指定项目显示时的名称(中文本)

    WA_FIELDCAT-SELTEXT_S        = ‘品目タイプ‘.    “上面指定项目显示时的名称(短文本)

    WA_FIELDCAT-REPTEXT_DDIC  = ‘品目タイプ‘.    “上面指定项目显示时的名称(定义文本)

    WA_FIELDCAT-OUTPUTLEN        = 15.               “列的显示宽度

    WA_FIELDCAT-HOTSPOT           = ‘X’.              “设置热点状态

       ......

      APPEND WA_FIELDCAT TO IT_FIELDCAT.

    注意:有多少个项目列要显示就要这样向内部表IT_FIELDCAT中追加记录多少次。

    2.构造SLIS_LAYOUT_ALV常用参数说明

     LAYOUT-ZEBRA                       = ‘X’.                        “斑马线样式

     LAYOUT-COLWIDTH_OPTIMIZE = 'X'.                        “列宽度自动根据内容优化

     LAYOUT-NO_COLHEAD             = ‘X’.                        “列名称不显示

     LAYOUT-NO_VLINE                  = ‘X’.                        “不表示区分用的垂直线

     LAYOUT-EDIT                          = ‘X’.                        “列值可编辑,只用于GRID

     LAYOUT-WINDOW_TITLEBAR    = ‘ALV窗体的标题’.     “一行

       ......

    六.通常调用所使用参数

      CALL FUNCTION'REUSE_ALV_LIST_DISPLAY'

        EXPORTING

          IT_FIELDCAT           = IT_FIELDCAT            "输出项目列文本信息(表头)

          IS_LAYOUT              = L_LAYOUT                "输出列表样式信息

        TABLES

          T_OUTTAB               = IT_ALVOUT               "输出的数据信息(明细)

        EXCEPTIONS

          PROGRAM_ERROR    = 1                   

          OTHERS                  = 2.    

    另一种简便的方法:

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

         EXPORTING

           I_STRUCTURE_NAME         = 'TY_OUT_FILE'         "输出项目列文本信息(表头)

           IS_LAYOUT                       = L_LAYOUT                "输出列表样式信息

          TABLES

           T_OUTTAB                         = TAB_OUT_FILE        "输出的数据信息(明细)

         EXCEPTIONS

           PROGRAM_ERROR              = 1

           OTHERS                            = 2.

    注:TY_OUT_FILE构造必须是数据字典中已经存在的对象。

    输出项目繁多时,建议先在数据字典系统中创建构造,然后使用后一种调用方法,这样可免去对输出列表头信息的繁琐编辑处理,使代码行也缩短。

  • 相关阅读:
    windows本地提权——2003笔记
    Windows与linux添加用户命令
    反弹shell集锦
    提权-特权升级
    常见端口
    git泄露利用脚本
    Thinkphp5命令执行利用
    Thinkphp2.1漏洞利用
    打ms15-034补丁出现“此更新 不适用于您的计算机”
    Hyda爆破
  • 原文地址:https://www.cnblogs.com/bluedy1229/p/1672075.html
Copyright © 2011-2022 走看看