1.16 UI Element:Radio Button & CheckBox使用

本实例测试Radio Button Group,CheckBox Group等的使用。

注:DropdownByKey,DropdownByIndex使用方式和RadioButtonGroupByKey,RadioButtonGroupByIndex一致。

1.创建Component及Main View;

2.Main View的Context;

创建Context节点:NODE_CBG_TEXT;

设置属性Cardinality:0..n;

创建Attributes:TEXTS,类型TEXTS;

创建Context节点:NODE_RGB_BI;

设置属性Cardinality:0..n;

创建Attributes:TEXTS,类型STRING;

创建Context节点:NODE_CHECKBOX;

设置属性Cardinality:1..1;

创建Attributes: CHECKED,类型char1;

创建Attributes: TEXT,类型string;

创建单独Attributes:SEL_KEY,类型String;

3.Main View的Layout;

创建UI Element:RadioButtonGroupByIndex;

设置属性

colCount:3;

texts: 绑定节点Attribute MAIN.NODE_RGB_BI.TEXTS;

onSelect: 绑定Action,SEL_RBG_BI;

创建UI Element:RadioButtonGroupByKey;

设置属性

colCount:1;

selectedKey:绑定Attributes,MAIN.SEL_KEY;

onSelect:绑定Action, SEL_RBG_BK;

创建UI Element:CheckBoxGroup;

设置属性

colCount:1;

texts:绑定节点Attribute, MAIN.NODE_CBG_TEXT.TEXTS

创建UI Element:Button,绑定Action: GET_CHB_SEL;

创建UI Element:CheckBox;

设置属性

onToggle:绑定Action,TOG_CHECKBOX;

checked:绑定节点Attribute, NODE_CHECKBOX.CHECKED;

创建UI Element:Button,绑定Action: GET_CHECK;

4.实现Action方法;

WDDOINIT方法中调用初始化方法;

创建Method: INIT_RBG_KEY,初始化Radio Button Group By Key;

代码实例:

  DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lo_node_info TYPE REF TO if_wd_context_node_info.
DATA:lt_valueset TYPE wdr_context_attr_value_list.
DATA:ls_valueset TYPE wdr_context_attr_value. "获取节点
lo_node_info = wd_context->get_node_info( ).
"初始化radio button选项
ls_valueset-value = '1'.
ls_valueset-text = 'test radio1'.
APPEND ls_valueset TO lt_valueset.
ls_valueset-value = '2'.
ls_valueset-text = 'test radio2'.
APPEND ls_valueset TO lt_valueset.
"绑定值
lo_node_info->set_attribute_value_set(
name = 'SEL_KEY'
value_set = lt_valueset
). 

创建Method: INIT_RBG_INDEX,初始化Radio Button Group By Index;

代码实例:

 "初始化radio button group值
DATA:lt_rgb_text TYPE wd_this->Elements_node_rgb_bi.
DATA:ls_rgb_text LIKE LINE OF lt_rgb_text.
DATA:lo_node TYPE REF TO if_wd_context_node.
ls_rgb_text-texts = 'test11'.
APPEND ls_rgb_text TO lt_rgb_text.
ls_rgb_text-texts = 'test22'.
APPEND ls_rgb_text TO lt_rgb_text.
ls_rgb_text-texts = 'test33'.
APPEND ls_rgb_text TO lt_rgb_text. lo_node = wd_context->get_child_node( name = WD_THIS->WDCTX_NODE_RGB_BI ).
lo_node->bind_table( lt_rgb_text ). 

创建Method: INIT_CBG,初始化CheckBox Group;

代码实例:

  DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lt_cbg_text TYPE wd_this->Elements_node_cbg_text.
DATA:ls_cbg_text LIKE LINE OF lt_cbg_text. ls_cbg_text-texts = 'test1'.
APPEND ls_cbg_text TO lt_cbg_text.
ls_cbg_text-texts = 'test2'.
APPEND ls_cbg_text TO lt_cbg_text.
ls_cbg_text-texts = 'test3'.
APPEND ls_cbg_text TO lt_cbg_text. lo_node = wd_context->get_child_node( name = WD_THIS->WDCTX_NODE_CBG_TEXT ).
lo_node->bind_table( lt_cbg_text ).

Action:SEL_RBG_BI,选择Radio Button Group By Index触发;

代码实例:

 DATA:lv_index TYPE string.
wdevent->get_data(
EXPORTING
name = 'INDEX'
IMPORTING
value = lv_index
).
lv_index = '选择按钮:' && lv_index.
wd_comp_controller->show_msg( msg = lv_index msg_type = 'S' ). * "方式2:通过绑定值,获取选择
* DATA:lt_el_sets TYPE wdr_context_element_set.
* DATA:lo_element TYPE REF TO if_wd_context_element.
* DATA:lv_str TYPE string.
* DATA:lo_context_node TYPE REF TO IF_WD_CONTEXT_NODE.
* lo_context_node = wd_context->path_get_node( path = `NODE_RGB_BI` ).
* lo_context_node->GET_ATTRIBUTE( EXPORTING NAME = 'TEXTS' IMPORTING value = lv_str ).
* "显示信息
* lv_str = '选择:' && lv_str.
* wd_comp_controller->show_msg( msg = lv_str msg_type = 'S' ).

Action:SEL_RBG_BK,选择Radio Button Group By Key触发;

代码实例:

 DATA:lv_key TYPE string.
wdevent->get_data(
EXPORTING
name = 'KEY'
IMPORTING
value = lv_key
).
lv_key = '选择按钮:' && lv_key.
wd_comp_controller->show_msg( msg = lv_key msg_type = 'S' ).

Action: GET_CHB_SEL,获取Check Box选中项;

代码实例:

  DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lt_cbg_text TYPE wd_this->Elements_node_cbg_text.
DATA:ls_cbg_text LIKE LINE OF lt_cbg_text.
DATA:lv_text TYPE string.
DATA:lo_cbg TYPE REF TO CL_WD_CHECKBOX_GROUP.
lo_cbg ?= wd_this->v_view->GET_ELEMENT( ID = 'CBG1' ). lo_node = wd_context->get_child_node( wd_this->WDCTX_NODE_CBG_TEXT ).
lo_node->GET_STATIC_ATTRIBUTES_TABLE( IMPORTING table = lt_cbg_text ). DATA:lt_el_sets TYPE wdr_context_element_set.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lv_str TYPE string.
DATA:lv_key TYPE string.
DATA:lt_str TYPE string_table.
DATA:ls_str LIKE LINE OF lt_str.
lt_el_sets = wd_context->path_get_node( path = `NODE_CBG_TEXT` )->get_selected_elements( ).
LOOP AT lt_el_sets INTO lo_element.
lo_element->GET_ATTRIBUTE( EXPORTING name = 'TEXTS' IMPORTING value = lv_str ).
APPEND lv_str TO lt_str.
ENDLOOP. CLEAR lv_str.
LOOP AT lt_str INTO ls_str.
lv_str = lv_str && '点击:' && ls_str.
ENDLOOP.
wd_comp_controller->show_msg( msg = lv_str msg_type = 'S' ).

Action: GET_CHECK,获取Check Box是否选择;

代码实例:

   DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_elem TYPE REF TO if_wd_context_element.
DATA:lv_checked TYPE char1.
DATA:lo_checkbox TYPE REF TO CL_WD_CHECKBOX. "设置只读
lo_checkbox ?= wd_this->v_view->GET_ELEMENT( id = 'CB1' ).
lo_checkbox->set_read_only( abap_true ). lo_node = wd_context->get_child_node( name = WD_THIS->WDCTX_NODE_CHECKBOX ).
lo_elem = lo_node->get_element( ).
lo_elem->get_attribute( EXPORTING name = 'CHECKED' IMPORTING value = lv_checked ).
wd_comp_controller->show_msg( msg = '是否选择:' && lv_checked msg_type = 'S' ).

Action: TOG_CHECKBOX,当Checkbox选中时触发;

代码实例:

   DATA:lo_textview TYPE REF TO CL_WD_TEXT_VIEW.
DATA:lo_event TYPE REF TO cl_wd_custom_event.
DATA:lv_checked TYPE char1.
lo_event = wdevent.
lv_checked = lo_event->get_char( name = 'CHECKED' ).
IF lv_checked = 'X'.
"设置文本,
lo_textview ?= wd_this->v_view->GET_ELEMENT( id = 'TV1' ).
lo_textview->set_text( '已选择:hello world' ).
ELSE.
"设置文本,
lo_textview ?= wd_this->v_view->GET_ELEMENT( id = 'TV1' ).
lo_textview->set_text( 'hello world' ).
ENDIF.

WDA学习(23):UI Element:Radio Button Group & CheckBox Group使用的更多相关文章

  1. How to get the value of a form element : check box and radio button

    Getting a radio element and it’s checked value Radio buttons in a form can be grouped together using ...

  2. 第19讲- UI组件之_Button、checkbox、radio

    第19讲 UI组件之_Button.checkbox.radio 四.按钮Button Button继承自TextView,间接继承自View.当用户对按钮进行操作的时候,触发相应事件,如点击,触摸. ...

  3. Check Box、Radio Button、Combo Box控件使用

    Check Box.Radio Button.Combo Box控件使用 使用控件的方法 1.拖动控件到对话框 2. 定义控件对应的变量(值变量或者控件变量) 3.响应控件各种消息 Check Box ...

  4. MFC中Radio Button使用方法

    先为对话框加上2个radio button,分别是Radio1和Radio2. 问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了? 关键是选上,“默认”只要放在OnInitDi ...

  5. Visual Studio中Radio Button组绑定变量方法(DDX_Radio方法)

    需求描述:Visual Studio 创建的界面程序中又许多 Radio Button,希望这些所有的Radio Button统一绑定到一个变量上,这个变量一旦改变,Radio Button的选中状态 ...

  6. VC单选按钮控件(Radio Button)用法(转)

    先为对话框加上2个radio button,分别是Radio1和Radio2. 问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了? 关键是选上,“默认”只要放在OnInitDi ...

  7. MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

    本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的侠义的 ...

  8. MFC radio button 绑定变量用法

    我们在对话框中拖动一个radio button控件,然后点击类向导,结果却发现在Member Variables里看不到Radio控件的ID.这是为什么? 2.1 三个Radio Button,ID分 ...

  9. Angular js Radio Button

    症状: 绑定一个list   radio button 老是只能绑定一行,纠结了很久 ,回家发现  原来是 name 用了同一个  ,坑啊,记录下 免得下次再犯. 之前的代码 <ul> & ...

  10. Cocostudio学习笔记(2) Button + CheckBox

    这篇记录了两个控件的使用流程:Button 和 CheckBox. ------------------------------------------------------------------ ...

随机推荐

  1. mysql常用的查询语句

    好记性不如烂笔头! 查询表中全部信息: select * from 表名 查询表中指定列的信息: select 列1,列2 from 表名 数据去重: select distinct 列... fro ...

  2. db2查看表结构、表索引

    1.1 db2查看表结构 SELECT * FROM "SYSIBM".syscolumns WHERE TBNAME = 'table_name ' AND TBCREATOR ...

  3. vue3项目在页面退出时弹窗确认--用vant组件Dialog弹窗在路由改变的时候不生效问题

    写vue3的H5项目的时候有个需求是回退时弹窗确认是否退出当前页面 一.第一个办法------使用onbeforeRouteLeave路由钩子 const formRouteAbi = localSt ...

  4. 【DM论文阅读杂记】复杂社区网络

    Paper Title Community Structure in Time-Dependent, Multiscale, and Multiplex Networks Basic algorith ...

  5. python json表格化输出

    需求 将json数据以表格形式输出 超长文本换行输出 能显示中文 在linux终端输出 实现 首先数据的模样.既然是表格化输出,那必然传入的数据是一个数组(废话),如果一个项文本很长需要换行输出,那这 ...

  6. CCF-CSP准备

    dfs序,unique vector sort(que+1,que+1+cnt); len = unique(que+1,que+cnt+1)-que-1; for(int i = 1;i <= ...

  7. 牛客算法进阶——树形dp

    1. 小G有一个大树(求树的重心) 删除该点后最大连通块的节点数最小 设f[x]表示以x为根的子树大小,那么删除x之后的各子树大小为f[to]和n-f[x] 求max(max(f[to]),n-f[x ...

  8. 剑指 Offer 栈与队列

    09. 用两个栈实现队列 没啥意思 不要想复杂了 就是暴力 class CQueue { public: CQueue() { } /* 一个主栈 一个缓存栈 来回导 得到队头 copy后一端变空了 ...

  9. 3 - 标准数据加密(DES)及其备选

    标准数据加密(DES)及其备选 我的博客 原书:<Understanding Cryptography: A Text book for Students and Practitioners&g ...

  10. Mybatis缓存(3)

    10.4.3二级缓存