实例演示:a,为input field 设置默认值。
b,根据默认值,调用fm,读取符合条件的数据,并以Table的形式进行展现。
1,在component里分别创建两个节点ST_MARA,T_MARC cardinality 为1:n.
2,在输入,输出视图,分别做mapping,然后input_view视图里,插入一个类型为InputField的UI元素,
在output_view里插入一个Table类型的UI元素,并且做data binding.
3,视图Input_view里的wddoinit方法里添加代码如下。
method WDDOINIT .
DATA:lo_nd_st_mara TYPE REF TO if_wd_context_node,
lo_el_st_mara TYPE REF TO if_wd_context_element,
st_matnr TYPE wd_this->Element_st_mara.
*& first,get node.
CALL METHOD wd_context->get_child_node
EXPORTING
* index = USE_LEAD_SELECTION
name = wd_this->wdctx_st_mara
receiving
child_node = lo_nd_st_mara .
*& get element
CALL METHOD lo_nd_st_mara->get_element
* EXPORTING
* index = USE_LEAD_SELECTION
receiving
node_element = lo_el_st_mara
.
*& set default value
if not lo_el_st_mara is initial.
st_matnr-matnr = '1000-00081'.
st_matnr-mtart = 'ROH'.
*& set single
* CALL METHOD lo_el_st_mara->set_attribute(
* EXPORTING
* value = '1000-00081'
* name = 'MATNR' ) .
*& set structure.
CALL METHOD lo_el_st_mara->set_static_attributes
EXPORTING
static_attributes = st_matnr
.
endif.
endmethod.
4,在component method里增加一个方法get_marc,然后添加代码。
method GET_MARC .
data:lo_nd_st_mara type ref to if_wd_context_node,
lo_el_st_mara type ref to if_wd_context_element,
ls_st_mara type wd_this->element_st_mara,
lt_t_marc type wd_this->Elements_t_marc,
lo_nd_t_marc type ref to if_wd_context_node.
*&1,取输入字段的节点,元素以及输入的值。
CALL METHOD wd_context->get_child_node
EXPORTING
* index = USE_LEAD_SELECTION
name = 'ST_MARA'
receiving
child_node = lo_nd_st_mara .
CALL METHOD lo_nd_st_mara->get_element
* EXPORTING
* index = USE_LEAD_SELECTION
receiving
node_element = lo_el_st_mara
.
CALL METHOD lo_el_st_mara->get_static_attributes
IMPORTING
static_attributes = ls_st_mara .
*& 调用商业逻辑,取到业务数据。
CALL FUNCTION 'ZGET_MARC'
EXPORTING
material = ls_st_mara-matnr
tables
t_marc = lt_t_marc
.
*& 取TABLE的节点名称。
CALL METHOD wd_context->get_child_node
EXPORTING
* index = USE_LEAD_SELECTION
name = wd_this->wdctx_t_marc
receiving
child_node = lo_nd_t_marc .
*&绑定。
CALL METHOD lo_nd_t_marc->bind_table
EXPORTING
new_items = lt_t_marc
set_initial_elements = ABAP_FALSE
* index =
.
endmethod.
5,然后在output_view里的默认事件处理方法里调用次方法。
method HANDLEIN_DEFAULT .
WD_COMP_CONTROLLER->get_marc( ).
endmethod.
6,创建application,激活,测试如下。