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,测试运行

 

posted @ 2020-05-16 11:42  渔歌晚唱  阅读(259)  评论(0编辑  收藏  举报