• WDA学习(13):Use ALV as Hierarchy


    2.5 Use ALV as Hierarchy

           本实例展示如何让ALV显示层次表结构,以及标准表如何表示层次表结构。

    1.创建项目,使用ALV组件

     

     声明使用ALV Component

     

     2.修改MAIN视图组件

    Properties页签

    声明MAIN视图组件使用ALV组件及接口控制器

     

     Layout页签:

    创建ViewContainerUIElement作为显示ALV Table的容器

     

     Context页签

    创建NODE_SFLIGHT上下文节点,

     

     

     Methods页签

    实现WDDOINIT方法;

    获取sflight数据库表数据到上下文节点;

    将节点数据和ALV组件绑定;

    设置ALV组件显示为层次表结构;

    实例代码:

     DATA:lo_node TYPE REF TO if_wd_context_node.
      DATA:lo_element TYPE REF TO if_wd_context_element.
      DATA:lt_sflight TYPE wd_this->Elements_node_sflight.
      "获取node_sflight节点
      lo_node = wd_context->get_child_node( 'NODE_SFLIGHT' ).
    
      "获取数据
      SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_sflight FROM sflight.
      "节点绑定数据
      lo_node->bind_table( lt_sflight ).

    点击魔术棒,实例化ALV组件

     插入代码:

    "实例化ALV组件
      DATA:lo_cmp_usage type ref to if_wd_component_usage.
      lo_cmp_usage =   wd_this->wd_cpuse_alv( ).
      if lo_cmp_usage->has_active_component( ) is initial.
        lo_cmp_usage->create_component( ).
      endif.

    点击魔术棒,调用ALV组件提供的set_data方法,ALV组件绑定上下文节点数据

     "设置ALV数据和节点数据绑定
      DATA:lo_INTERFACECONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE .
      lo_INTERFACECONTROLLER = wd_this->wd_cpifc_alv( ).
      lo_interfacecontroller->set_data(
    *     only_if_new_descr =                 " wdy_boolean
        r_node_data = lo_node               " ref to if_wd_context_node
      ).

    点击魔术棒,调用ALV组件提供的get_model方法,获取ALV表配置对象

     实例代码:

     "设置ALV显示为hierarchy
      DATA lv_value TYPE REF TO cl_salv_wd_config_table.
      lv_value = lo_interfacecontroller->get_model( ).
    
      "通过cl_salv_wd_config_table对象,设置显示类型
      lv_value->if_salv_wd_table_settings~set_display_type(
        IF_SALV_WD_C_TABLE_SETTINGS=>DISPLAY_TYPE_HIERARCHY ).
    
      "设置某一列为层级显示列
      DATA:lo_column TYPE REF TO cl_salv_wd_column.
      lo_column = lv_value->if_salv_wd_column_settings~get_column( 'CARRID' ).
      lo_column->IF_SALV_WD_COLUMN_HIERARCHY~SET_HIERARCHY_COLUMN( abap_true ).
    
      "设置最后一个层次列展开或收拢
      lv_value->IF_SALV_WD_TABLE_HIERARCHY~SET_LAST_HIER_COLUMN_AS_LEAF( abap_false ).

    3.设置Window,设置VIEW1容器嵌入ALV视图

     

     4.创建Web Dynpro Application,测试运行

  • 相关阅读:
    python--将jenkins配置的任务导出到Excel
    python--终端工具之subprocess
    jquery-触底加载无限滚动
    python-比较字典value的最大值
    Linux-查看cpu核数和个数、查看内存的命令
    python读取本地正在运行的docker容器
    关于get 和post 方法的比较
    git相关的一篇不错的文章
    Java 函数调用是传值还是传引用? 从字节码角度来看看!
    Unity3D移动平台动态读取外部文件全解析
  • 原文地址:https://www.cnblogs.com/tangToms/p/12899698.html
Copyright © 2020-2023  润新知