创建一个简单的ALV实例。

先看一下效果。

WebDynpro for ABAP 简单ALV实例

下面是创建步骤:

先创建一个Web Dynpro组件。

WebDynpro for ABAP 简单ALV实例

添加ALV组件

WebDynpro for ABAP 简单ALV实例

在COMPONENTCONTROLLER 的Properties中添加ALV组件。

WebDynpro for ABAP 简单ALV实例

 

在View中添加两个控件,一个Button一个ViewContainerUIElement。

WebDynpro for ABAP 简单ALV实例

WebDynpro for ABAP 简单ALV实例

WebDynpro for ABAP 简单ALV实例

设置VCU_ALV

WebDynpro for ABAP 简单ALV实例

WebDynpro for ABAP 简单ALV实例

 

 

设置Button的Text和事件onAction。

WebDynpro for ABAP 简单ALV实例

添加Context

WebDynpro for ABAP 简单ALV实例

WebDynpro for ABAP 简单ALV实例

WebDynpro for ABAP 简单ALV实例

页面加载时绑定ALV控件

WebDynpro for ABAP 简单ALV实例

  DATA: dyn_node TYPE REF TO if_wd_context_node.
  dyn_node = wd_context->get_child_node( name = 'LT_MARA' ).
  DATA: lo_interfacecontroller type ref to iwci_salv_wd_table.
  lo_interfacecontroller =   wd_this->wd_cpifc_alv( ).
  lo_interfacecontroller->set_data( dyn_node ).

点击Search按钮时显示数据。

WebDynpro for ABAP 简单ALV实例

  DATA lo_nd_lt_mara TYPE REF TO if_wd_context_node.
  DATA lt_lt_mara TYPE wd_this->Elements_lt_mara.
* navigate from <CONTEXT> to <LT_MARA> via lead selection
  lo_nd_lt_mara = wd_context->get_child_node( name = wd_this->wdctx_lt_mara ).
* @TODO handle non existant child
* IF lo_nd_lt_mara IS INITIAL.
* ENDIF.
** @TODO compute values
** e.g. call a model function
*
  SELECT INTO TABLE lt_lt_mara FROM MARA UP TO 50 ROWS.
  lo_nd_lt_mara->bind_table( new_items = lt_lt_mara set_initial_elements = abap_true ).

然后保存**各项。

创建测试程序

WebDynpro for ABAP 简单ALV实例

 

点击Test测试结果OK。

WebDynpro for ABAP 简单ALV实例

 

附:
事件响应顺序
页面加载
WDDOINIT
WDDOMODIFYVIEW 页面加载
按钮事件
WDDOBEFOREACTION
ONACTIONSEARCH 按钮事件
WDDOAFTERACTION
WDDOMODIFYVIEW

相关文章: