当我们在做应用程序开发的时候经常要使用到table控件,比如我们用table控件显示所有的的记录条目,有时候一条记录信息很长,我们在table中只显示少数几个字段,可能某个字段用详细代替,当我们点击详细的时候弹出一个窗口,这种情况如果用alv实现比较方便,但table控件确不是十分好理解,
下面给出实现方式:
我们在table控件里加一列 为详细 列用linktoaction
在其event下添加一个方法:go_detail
data:
lr_component type ref to if_wd_component,
lr_window_manager type ref to if_wd_window_manager,
lr_window type ref to if_wd_window.
DATA lo_nd_t_chanl TYPE REF TO if_wd_context_node.
DATA lo_el_t_chanl TYPE REF TO if_wd_context_element.
DATA ls_t_chanl TYPE wd_this->Element_t_chanl.
DATA lo_nd_s_chanl TYPE REF TO if_wd_context_node.
*每次进入刷新node
lo_nd_t_chanl = wd_context->get_child_node( name = wd_this->wdctx_t_chanl ).
* lo_nd_t_chanl->bind_structure( ls_t_chanl ).
lo_nd_s_chanl = wd_context->get_child_node( name = wd_this->wdctx_s_chanl ).
* lo_el_t_chanl = lo_nd_t_chanl->get_element( ).
** get all declared attributes
* lo_el_t_chanl->get_static_attributes(
* IMPORTING
* static_attributes = ls_t_chanl ).
CALL METHOD context_element->get_static_attributes
IMPORTING
static_attributes = ls_t_chanl
.
CALL METHOD lo_nd_t_chanl->set_lead_selection
EXPORTING
element = context_element
.
lo_nd_s_chanl->bind_structure( ls_t_chanl ).
lr_component = wd_comp_controller->wd_get_api( ).
lr_window_manager = lr_component->get_window_manager( ).
lr_window = lr_window_manager->create_window( window_name = 'CHANL_DETAIL'
TITLE = '频道详细信息' ).
lr_window->open( ).
注意 这个方法里 一定要添加一个参数:
context_element importing refto if_wd_context_element
阅读(2966) | 评论(0) | 转发(0) |