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

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



访问上下文节点

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

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

访问节点元素

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

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

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


属性值的读取和更改

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


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

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

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


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

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

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

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

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

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

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


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

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

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


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


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


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


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


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


你可能感兴趣的:(web,dynpro)