WDA学习(22):WDA PLG,Application跳转传参
1.15 WDA PLG,Application跳转传参
本实例Outbound Plugs页面跳转传参,URL跳转Application传参。
1.创建Component:Z_TEST_WDA_L6;
2.创建Main View;
Context页签:
创建Context Node:NODE_PARAM;
创建Attribute:CARRID,类型spfli-carrid;
创建Attribute:CONNID,类型spfli-connid;
Layout页签:
创建Toolbar组件,创建Button组件,open new application window,绑定Action:OPEN_NEW;
创建两个INPUT组件,分别绑定NODE_PARAM.CARRID,NODE_PARAM.CONNID;
创建Button组件,search,绑定Action: SEARCH;
Outbound Plugs页签:
创建TO_DETAIL,设置传递参数CARRID,CONNID;
3.Methods页签,Action及Method代码实现;
代码实例:ONACTIONSEARCH,获取页面输入Carrid,Connid,跳转到Detail页面查询数据并显示;
DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lt_node_param TYPE wd_this->elements_node_param.
DATA:ls_node_param TYPE wd_this->element_node_param.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_param ).
lo_element = lo_node->get_element( ).
lo_element->get_static_attributes(
IMPORTING
static_attributes = ls_node_param
).
wd_this->fire_to_detail_plg(
carrid = ls_node_param-carrid
connid = ls_node_param-connid
).
代码实例:ONACTIONOPEN_NEW,通过URL打开新的Application,并传递参数Carrid,Connid;
DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lt_node_param TYPE wd_this->elements_node_param.
DATA:ls_node_param TYPE wd_this->element_node_param.
DATA:lv_url TYPE string.
DATA:lv_parameter TYPE string.
DATA:lo_component TYPE REF TO if_wd_component.
DATA:lo_window_manager TYPE REF TO if_wd_window_manager.
DATA:lo_window TYPE REF TO if_wd_window.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_param ).
lo_element = lo_node->get_element( ).
lo_element->get_static_attributes( IMPORTING static_attributes = ls_node_param ).
"获取application url
cl_wd_utilities=>construct_wd_url(
EXPORTING
application_name = 'Z_TEST_WDA_L7'
IMPORTING
out_absolute_url = lv_url
).
"添加parameter
lv_parameter = ls_node_param-carrid.
cl_http_server=>if_http_server~append_field_url(
EXPORTING
name = 'CARRID'
value = lv_parameter
CHANGING
url = lv_url
).
"设置参数
CLEAR lv_parameter.
lv_parameter = ls_node_param-connid.
cl_http_server=>if_http_server~append_field_url(
EXPORTING
name = 'CONNID'
value = lv_parameter
CHANGING
url = lv_url
).
lo_component = wd_comp_controller->wd_get_api( ).
lo_window_manager = lo_component->get_window_manager( ).
lo_window = lo_window_manager->create_external_window( url = lv_url ).
lo_window->open( ).
4.创建Detail View,显示查询到信息;
Context页签,创建节点NODE_SPFLI,结构和Spfli一致;
Layout页签,创建Table组件,绑定节点NODE_SPFLI;
Inbound Plugs页签:
代码实例:实现通过传入参数获取数据绑定NODE_SPFLI节点;
DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lt_spfli TYPE wd_this->elements_node_spfli.
DATA:ls_spfli TYPE wd_this->element_node_spfli. SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_spfli
FROM spfli
WHERE carrid = carrid
AND connid = connid.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_spfli ).
lo_node->bind_table( new_items = lt_spfli set_initial_elements = abap_true ).
5.创建Component: Z_TEST_WDA_L7;
创建Main View;
Context页签:创建NODE_SFLIGHT,结构和Sflight一致;
Layout页签:创建Table组件,绑定NODE_SFLIGHT,显示信息;
Methods页签:创建Method,INIT_SFLIGHT;
在View的WDDOINIT方法中调用INIT_SFLIGHT方法;
代码实例:INIT_SFLIGHT,通过Application URL传递参数获取对弈Sflight信息;
主要通过wdr_task=>client_window->
if_wdr_client_info_object~get_parameter方法获取URL中传递参数;
DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lv_string TYPE string.
DATA:lv_carrid TYPE spfli-carrid.
DATA:lv_connid TYPE spfli-connid.
"获取数据
DATA:lt_sflight TYPE wd_this->elements_node_sflight.
DATA:ls_sflight TYPE wd_this->element_node_sflight.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_sflight ). "获取carrid
lv_string = wdr_task=>client_window->if_wdr_client_info_object~get_parameter( 'CARRID' ).
lv_carrid = lv_string.
"获取connid
CLEAR lv_string.
lv_string = wdr_task=>client_window->if_wdr_client_info_object~get_parameter( 'CONNID' ).
lv_connid = lv_string.
"查询数据
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_sflight
FROM sflight
WHERE carrid = lv_carrid
AND connid = lv_connid.
"获取节点
lo_node->bind_table( new_items = lt_sflight set_initial_elements = abap_true ).
最新文章
- JVM学习笔记:Java运行时数据区域
- golang channel 用法转的
- IE 下加载jQuery
- N的N次方(高校俱乐部)
- [codevs1557]热浪
- thrift概述
- UVA 11292 Dragon of Loowater(简单贪心)
- C#常见问题总结(二)
- 博客搬家一下到CSDN
- Linux终端命令全面介绍
- Pytorch快速入门及在线体验
- spring-boot 速成(5) profile区分环境
- HBase学习之路 (八)HBase大牛博客
- 【LOJ】#2032. 「SDOI2016」游戏
- 如何在Jenkins中使用环境变量
- android 自定义照相机Camera黑屏 (转至 http://blog.csdn.net/chuchu521/article/details/8089058)
- mysql误删表,无备份
- Python输出字符串或文件颜色显示
- 补丁patch 漏洞 bug或glitch
- three.js 在vscode的智能提示