Web Dynpro for ABAP (读取、更改、添加或删除存储于控制器上下文中的信息) 学习笔记(上下文节点)

如何读取、更改、添加或删除存储于控制器上下文中的信息?



访问上下文节点

请注意下列重要信息:
• 对于每个控制器(<ctrl>),都会生成名称为IF_<ctrl> 的界面。
• 对于控制器上下文的每个节点<node>,都会在此界面中生成常量
(WDCTX_<node>),并将该节点的名称(大写字母)作为该常量的值。
该常量用于访问上下文节点。
可由标准属性WD_CONTEXT 访问上下文根节点。可使用get_child_node( )
方法识别上下文根节点的子节点。该方法返回对类型IF_WD_CONTEXT_NODE
的节点实例的参考。get_child_node( ) 方法需要节点名称,也可以使
用包含所需节点实例的父节点中的元素索引。在这种情况下,父节点是
上下文根节点,仅含有一个元素。因此索引参数为1(缺省= 父元素
的提前选择)。

访问节点元素

访问上下文节点后,可通过调用方法get_element( ) 在该节点的提前选
择期间获得对元素的参考。该方法返回对类型IF_WD_CONTEXT_ELEMENT
的元素实例的参考。


含有索引n 的元素可使用方法get_element( index = n ) 进行访问。使
用方法get_element_count( ) 可以获得集合中的元素数量


属性值的读取和更改


在上下文中,下列信息尤为重要:
• 对于控制器上下文的每个节点<node>,在界面IF_<ctrl> 中隐式
生成结构类型element_<node>。结构字段相当于构成节点元素的属
性。该常量可用于为变量设置类型,并由上述方法进行填充。
• 另外,对于控制器上下文的每个节点<node>,在界面IF_<ctrl>
中会隐式生成标准表类型element_<node>。该表的行类型是
element_<node>。该常量可用于为包含多个节点元素属性的内部
表设置类型。


更改节点元素的属性值
如果已确定对特定节点元素的参考,则不仅可使用合适的获取器模式读取
属性值,还可通过调用相关的设置器方案更改现有属性值。
方法set_attribute( ) 可用于更改节点元素任意属性的值。如果使用方
法set_static_attributes( ) 进行静态定义,可更改多个属性。


向上下文节点添加新元素
对于这一点,我们已讨论了如何读取和更改存储在控制器上下文中的数
据。现在,我们将讨论如何将新元素添加到上下文节点中。
将新元素添加到节点中需要两步。第一步是创建元素,稍后可将这一元素
可添加到特定的上下文节点。定义属性值后,新元素可添加到上下文节
点。这一过程与向内部表中添加新行一样。第一步可定义具有正确行类型
的工作区域单元值,第二步可将工作区域插入到内部表中。

创建新节点元素
为了创建可添加到特定上下文节点的元素,必须首先确定对该节点
的参考。这可以使用指向上下文根节点的标准属性WD_CONTEXT 的
get_child_node( ) 方法来完成。



向上下文节点中添加元素
最后,可使用与节点参考相关的方法bind_element( ) 将元素(还不是上
下文节点的一部分)添加到节点中。该方法具有两个导入参数:
• 通过参数new_item 提交元素参考。
• 参数set_initial_elements 用来定义新元素是否只是简单地添加到
元素集合(值= abap_false)中,或替换集合(值= abap_true)中
的所有当前元素。



将结构绑定到上下文节点
在ABAP 程序中,数据集作为结构来处理。但是,要显示UI 中的结构元
素,必须把结构内容复制到上下文元素中。也就是说,必须定义一个新元
素,并设置属性值,且必须将元素绑定到相应的上下文节点。
把结构内容作为新元素复制到上下文节点中有一个更简单的方法。您可使
用参数new_item 通过方法bind_structure( ) 来提交结构,而不是使用
方法bind_element( ) 来提交元素参考。对于bind_element( ) 方法,
可对当前集合进行扩展或替换(参数set_initial_elements)。



将内部表绑定到上下文节点
在ABAP 程序中,具有相同结构的多个数据集将作为内部表进行处理。但
是,要在UI 中显示数据集,那么内部表中有多少行,就必须将内部表内
容复制到多少个上下文元素中。
最好的方法是使用方法bind_table( )。内部表通过参数new_items 提
交。当前集合可以扩展或替换(参数set_initial_elements)。



从上下文节点中删除元素
要从集合中移除元素,则必须调用方法remove_element( )。必须使用参
数element 提交对元素的参考。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值