如何获得控件的属性

如何在代码中获得控件的属性

1)创建节点:注意节点元素类型

2)在方法WDDOMODIFYVIEW获得view绑定在节点my_node上

method WDDOMODIFYVIEW .
  DATA LO_ND_MY_NODE TYPE REF TO IF_WD_CONTEXT_NODE.
  DATA LO_EL_MY_NODE TYPE REF TO IF_WD_CONTEXT_ELEMENT.
  DATA LS_MY_NODE TYPE WD_THIS->ELEMENT_MY_NODE.
  DATA LV_MY_VIEW LIKE LS_MY_NODE-MY_VIEW.
* navigate from <CONTEXT> to <MY_NODE> via lead selection
  LO_ND_MY_NODE = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_MY_NODE ).

* get element via lead selection
  LO_EL_MY_NODE = LO_ND_MY_NODE->GET_ELEMENT(  ).

  lv_my_view = view.
* get single attribute
  LO_EL_MY_NODE->SET_ATTRIBUTE(
    EXPORTING
      NAME =  `MY_VIEW`
      VALUE = LV_MY_VIEW ).
endmethod.
View Code

我们这边已button控件为例子,需要取得text的属性值

3)通过button事件,知道button的ID值,根据button的ID值通过view的相关方法知道button的所有属性及方法,在通过button的所有属性和方法得到button的属性值,以下有部分代码实现此功能。

METHOD onactionget_data.
  DATA lo_nd_my_node TYPE REF TO if_wd_context_node.
  DATA lo_el_my_node TYPE REF TO if_wd_context_element.
  DATA ls_my_node TYPE wd_this->element_my_node.
  DATA lv_my_view LIKE ls_my_node-my_view.
  FIELD-SYMBOLS <fs> TYPE wdr_event_parameter.
  FIELD-SYMBOLS <f1> TYPE wdr_event_parameter-value.
  DATA l_id TYPE string.
  FIELD-SYMBOLS <fs3> TYPE string.
  DATA cl_button TYPE REF TO cl_wd_button.
  DATA flag TYPE char1.
  DATA lv_text4 TYPE string.
  DATA: lv_len TYPE I,
        lv_fla TYPE char1.

  CLEAR flag.
*   navigate from <CONTEXT> to <MY_NODE> via lead selection
  lo_nd_my_node = wd_context->get_child_node( name = wd_this->wdctx_my_node ).
  lo_el_my_node = lo_nd_my_node->get_element(  ).
  READ TABLE wdevent->parameters ASSIGNING  <fs> WITH KEY name = 'ID'.
  ASSIGN  <fs>-value->* TO <fs3>.   “读取button属性值得button ID号

*   get single attribute
  lo_el_my_node->get_attribute(
    EXPORTING
      name =  `MY_VIEW`
    IMPORTING
      value = lv_my_view ).

  IF <fs3> IS ASSIGNED.
    cl_button ?= lv_my_view->get_element(  <fs3> ).  ”根据ID号通过View的方法,取得该ID是哪个控件的所有属性和方法等
  ENDIF.

**************************************************************************
  DATA lo_nd_shuzi TYPE REF TO if_wd_context_node.
  DATA lo_el_shuzi TYPE REF TO if_wd_context_element.
  DATA ls_shuzi TYPE wd_this->element_shuzi.
  DATA lv_text LIKE ls_shuzi-text.
  DATA lv_text1 TYPE string.
  lo_nd_shuzi = wd_context->get_child_node( name = wd_this->wdctx_shuzi ).
  lo_el_shuzi = lo_nd_shuzi->get_element(  ).
  cl_button->get_text(                “得到该button的text属性值
  RECEIVING value = lv_text1 ).
  lo_el_shuzi->get_attribute(
  EXPORTING
  name =  `TEXT`
  IMPORTING
  value = lv_text ).

  CLEAR lv_len.
  lv_len = STRLEN( lv_text ).
  IF lv_len >= 2.
    lv_len = lv_len - 1.
    lv_fla = lv_text+lv_len(1).
  IF lv_fla <> '+' and lv_fla <> '*'
     and lv_fla <> '/' and lv_fla <> '-'.
    wd_this->zjisuan( IMPORTING e_text = lv_text4
    ).
    IF lv_text4 NA  '+*/-'.
      flag = 'X'.
    ENDIF.
  ENDIF.
 ENDIF.
  IF lv_text = '0' OR lv_text IS INITIAL.
    lv_text = lv_text1.
  ELSE.
    CONCATENATE lv_text lv_text1 INTO lv_text.
    CONDENSE lv_text NO-GAPS.
  ENDIF.
  IF lv_text1 = 'C'.
    lv_text = '0'.
  ENDIF.
  IF flag = 'X'.
    lv_text = lv_text4.
  ENDIF.
*   set single attribute
  lo_el_shuzi->set_attribute(
      EXPORTING
      name =  `TEXT`
      value = lv_text ).
ENDMETHOD.

 

转载于:https://www.cnblogs.com/caizjian/p/4329547.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值