SAP WebDynpro开发 创建一个WebDynpro程序实现两个页面简单跳转
1.运行Tcode:SE80,选择Web Dynpro组件/接口,输入对象名

2.输入描述

3.创建完成

4.创建两个视图:START AND RESULT



5.在 START 视图的 layout 页签,ROOTUIELEMENTCONTAINER中添加 label , input和button:



6.在 label 的属性中添加如下:

7.在 button 的属性中添加如下,主要是 onaction 事件。


8.在 inbound plugs表中添加如下(outbound plugs上一步onaction事件时有设置了一个)

9.创建START 视图的CONTEXT


10.将 input 值和 name 绑定:
解释:CONTEXT须和VIEWS上的某些控件的特定属性绑定,这样当我们改变了CONTEXT的某个节点的数据,那么相应控件的值也会跟着改变,比如这个我们创建了CONTEXT的一个节点下的NAME字段用于存放和绑定INPUT BOX里面的VALUE属性。
11.在 RESULT 视图,添加 text_view和button。

button属性设置如下

12.在 RESULT 视图的 context 中添加如下 node 和 attribute :

13.将 TEXT_VIEW_RE 的 text 属性和 name 绑定

14.在RESULT视图的 inbound plugs中添加如下:

15.在 COMPONENTCONTROLLER中添加 main node 和 name attribute,将 start view和result view 中的 main和 COMPONENTCONTROLLER中的 main 绑定。
解释:建立CONPONENT CONTROLLER中的CONTEXT节点并且和VIEW CONTEXT相应节点映射,这样就相当于把全局变量和局部变量相关联

成功映射
16.在 result 的 Methods页签WDDOMODIFYVIEW 中添加以下代码:

DATA lo_nd_main TYPE REF TO if_wd_context_node. DATA lo_el_main TYPE REF TO if_wd_context_element. * DATA ls_main TYPE wd_this->element_main. "应该为:element_result01 DATA lv_name TYPE string. "wd_this->element_main-name. "应该为element_result01-name * navigate from <CONTEXT> to <MAIN> via lead selection lo_nd_main = wd_context->get_child_node( name = 'RESULT01' "wd_this->wdctx_main "应该为:wdctx_result01 ). * @TODO handle non existant child * IF lo_nd_main IS INITIAL. * ENDIF. * get element via lead selection lo_el_main = lo_nd_main->get_element( ). * @TODO handle not set lead selection IF lo_el_main IS INITIAL . BREAK-POINT. ENDIF . * get single attribute lo_el_main->get_attribute( EXPORTING name = 'NAME' IMPORTING value = lv_name ). CONCATENATE 'welcome to wda,' lv_name INTO lv_name SEPARATED BY space. lo_el_main->set_attribute( EXPORTING name = 'NAME' value = lv_name ).
解释一下如上代码注释的部分数据,见如下两图框框


17.在 ONACTIONBACK 中添加以下代码:

DATA lo_nd_main TYPE REF TO if_wd_context_node. DATA lo_el_main TYPE REF TO if_wd_context_element. DATA lv_name TYPE string. * navigate from <CONTEXT> to <MAIN> via lead selection lo_nd_main = wd_context->get_child_node( name = 'RESULT01' ). * @TODO handle non existant child * IF lo_nd_main IS INITIAL. * ENDIF. * get element via lead selection lo_el_main = lo_nd_main->get_element( ). * @TODO handle not set lead selection IF lo_el_main IS INITIAL . ENDIF . * get single attribute lo_el_main->get_attribute( EXPORTING name = `NAME` IMPORTING value = lv_name ). CLEAR lv_name. lo_el_main->set_attribute( EXPORTING name = 'NAME' value = lv_name ). wd_this->fire_tostart_plg( ).
18.将 result 和 start view 拖到窗口,创建双向导航链接。
解释:建立VIEWS之间的导航,我们需要分别在不同的VIEWS里面插入相应的OUTBOUND 和INBOUND PLUG,并最终在WINDOWS里面建立他们的NAVIGATION LINK。


设置完成就是如此(如下时RESULT的设置)

19.将SATART VIEW设为缺省(默认第一屏)

20.创建 web dynpro application进行测试,搞定。

posted on 2022-02-25 16:36 seven1314pp 阅读(968) 评论(0) 收藏 举报
浙公网安备 33010602011771号