WEB UI基础八:链接跳转到标准的工单界面
接以前做的例子,用组件做了个搜索界面,明细里添加了object_id的链接:
method GET_P_OBJECT_ID.
"#EC NEEDED
** generated by search page wizard if me->running_in_f4_popup( ) = abap_false.
case iv_property.
when if_bsp_wd_model_setter_getter=>fp_fieldtype.
rv_value = cl_bsp_dlc_view_descriptor=>field_type_event_link.
when if_bsp_wd_model_setter_getter=>fp_onclick.
rv_value = 'CLICKONLINK'.
endcase.
endif.
endmethod.
DATA lv_index TYPE i.
DATA: lv_action TYPE c.
cl_thtmlb_util=>get_event_info(
EXPORTING
iv_event = htmlb_event_ex
IMPORTING
ev_index = lv_index ).
DATA lr_node TYPE REF TO if_bol_bo_property_access.
lr_node ?= me->typed_context->searchresultnode->collection_wrapper->find( iv_index = lv_index ).
DATA lv_guid TYPE CRMT_OBJECT_GUID." REF TO data.
DATA lv_obj TYPE crmt_object_id. lr_node->get_property_as_value(
EXPORTING
iv_attr_name = 'OBJECT_ID'
IMPORTING
ev_result = lv_obj ).
SELECT SINGLE GUID INTO LV_GUID FROM CRMD_ORDERADM_H WHERE OBJECT_ID = LV_OBJ.
DATA: lv_bol_core TYPE REF TO cl_crm_bol_core.
lv_bol_core = cl_crm_bol_core=>get_instance( ).
lv_bol_core->start_up( 'BT' ).
DATA lr_entity TYPE REF TO cl_crm_bol_entity.
lr_entity = lv_bol_core->get_root_entity( iv_object_name = 'BTOrder' iv_object_guid = LV_GUID ). * 将跟对象传递到window_controller
DATA lr_col TYPE REF TO cl_crm_bol_entity_col.
CREATE OBJECT lr_col.
lr_col->if_bol_bo_col~add( lr_entity ).
DATA: lr_window TYPE REF TO cl_bsp_wd_window.
lr_window = me->view_manager->get_window_controller( ).
lr_window->call_outbound_plug( iv_outbound_plug = 'DEFAULT'
iv_data_collection = lr_col ).
method OP_DEFAULT.
CONSTANTS lv_ui_action TYPE crmt_ui_actions VALUE 'B'. "display
DATA lr_ent TYPE REF TO if_bol_bo_property_access.
DATA lr_descriptor_object TYPE REF TO cl_crm_ui_descriptor_object. lr_ent ?= iv_data_collection->get_first( ).
CATCH SYSTEM-EXCEPTIONS move_cast_error = .
lr_descriptor_object ?= lr_ent.
ENDCATCH.
IF sy-subrc NE .
CALL METHOD cl_crm_uiu_bt_navigate=>prepare_col_for_navigate
EXPORTING
ir_collection = iv_data_collection
iv_ui_action = lv_ui_action
EXCEPTIONS
no_nav_descriptor_inserted =
OTHERS = .
ENDIF.
IF sy-subrc EQ .
DATA lr_nav TYPE REF TO if_crm_ui_navigation_service.
lr_nav = cl_crm_ui_navigation_service=>get_instance( me ).
* Navigate to Target Component
lr_nav->navigate_dynamically( iv_data_collection ).
ENDIF.
endmethod.
上面是做成通用的,下面是给单独事件的:
METHOD eh_onclickno. DATA: lv_index TYPE int4,
* lr_comp_controller TYPE REF TO cl_bt111s_o_bspwdcomponen_impl,
* lr_cuco TYPE REF TO cl_bt111s_o_cucosearch_impl,
lr_entity TYPE REF TO if_bol_bo_property_access,
lv_event TYPE REF TO cl_htmlb_event_tableview,
lr_msg_srv TYPE REF TO cl_bsp_wd_message_service,
lv_subrc TYPE sy-subrc,
lv_tableview_ex TYPE REF TO cl_thtmlb_table_view. CALL METHOD cl_thtmlb_util=>get_event_info
EXPORTING
iv_event = htmlb_event_ex
IMPORTING
ev_index = lv_index. * set entity as current one
lr_entity ?= me->typed_context->result->collection_wrapper->find( iv_index = lv_index ). CHECK lr_entity IS BOUND. DATA l_guid TYPE crmd_orderadm_h-guid.
CALL METHOD lr_entity->get_property_as_string
EXPORTING
iv_attr_name = 'GUID'
* iv_use_iso_format = ABAP_FALSE
RECEIVING
rv_result = l_guid. DATA lr_core TYPE REF TO cl_crm_bol_core.
DATA lr_bt TYPE REF TO cl_crm_bol_entity.
lr_core = cl_crm_bol_core=>get_instance( ).
*初始化 BT为组件集名称
lr_core->start_up( 'BT' ). TRY.
CALL METHOD lr_core->get_root_entity
EXPORTING
iv_object_name = 'BTOrder'
iv_object_guid = l_guid " 单句对应的GUID
RECEIVING
rv_result = lr_bt.
CATCH cx_crm_genil_model_error .
ENDTRY. CHECK lr_bt IS BOUND. RAISE EVENT history_trigger. DATA: lr_nav_descr TYPE REF TO if_bol_bo_property_access.
DATA: lr_navigation TYPE REF TO if_crm_ui_navigation_service.
DATA: lr_col TYPE REF TO cl_crm_bol_bo_col.
DATA: rv_value_node TYPE REF TO cl_bsp_wd_value_node. cl_crm_ui_descriptor_obj_srv=>create_ui_object_based(
EXPORTING iv_ui_object_type = 'BT116_SRVO'
iv_ui_object_action = 'B'
RECEIVING rr_result = lr_nav_descr ). CHECK lr_nav_descr IS BOUND.
lr_navigation = cl_crm_ui_navigation_service=>get_instance( me ).
CHECK lr_navigation IS BOUND. * Check whether navigation is supported
IF lr_navigation->is_dynamic_nav_supported( lr_nav_descr ) NE abap_true.
RETURN.
ELSE.
CREATE OBJECT lr_col.
lr_col->if_bol_bo_col~add( iv_entity = lr_nav_descr ).
lr_col->if_bol_bo_col~add( iv_entity = lr_bt iv_set_focus = abap_true ).
lr_navigation->navigate_dynamically( lr_col ).
ENDIF. ENDMETHOD.
WEB UI基础八:链接跳转到标准的工单界面的更多相关文章
- 阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页
问题:ios封装完之后,点击里边的按钮会跳转到网页上 ——小卡遇到这个问题就是这样解决的↓↓↓ 解决方法:建议将代码放到</head>标签前,当然,另外存为一个js 文件引用也是可以的呦~ ...
- MVC 【Razor 视图引擎】基础操作 --页面跳转,传值,表单提交
ASPX 与 Razor 仅仅是视图不一样. 新建项目----ASP.NET MVC 4 Web 应用程序------选择模板(空).视图引擎(Razor ) 1.视图中 c# 代码 与 HT ...
- [置顶] 提高生产力:Web开发基础平台WebCommon的设计和实现
Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...
- 提高生产力:Web开发基础平台WebCommon的设计和实现
Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...
- 20165207 Exp9 Web安全基础
目录 20165207 Exp9 Web安全基础 一.实验过程 1.环境配置 2.代理工具burpsuite 2.1 Http proxies -> Use the intercept 3.sq ...
- 【转】谈谈Google Polymer以及Web UI框架的未来
原文转自:http://www.csdn.net/article/2013-05-27/2815450-google-polymer 摘要:开发者Axel Rauschmayer在自己的博客上详解了G ...
- web前端基础知识及快速入门指南
web前端基础知识及快速入门指南 做前端开发有几个月了,虽然说是几个月,但是中间断断续续的上课.考试以及其它杂七杂八的事情,到现在居然一直感觉自己虽然很多前端的知识很眼熟,却也感觉自己貌似也知识在门口 ...
- 【JavaScript】谈谈Google Polymer以及Web UI框架的未来
摘要:开发者Axel Rauschmayer在自己的博客上详解了Google Polymer的设计理念与组成架构,深得Polymer开发者的认同.他认为Polymer这样高互操作性的设计才应该是Web ...
- 20155208徐子涵《网络对抗》Exp9 Web安全基础
20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...
随机推荐
- IT题库7-线程加锁
转载:http://www.cnblogs.com/linjiqin/p/3208843.html 一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏.例如:两个线程T ...
- DP题目推荐合集(洛谷/UVa)
今天下午要参加海淀区的比赛了...这几天临时抱佛脚刷了几道DP,正所谓临阵磨枪,不快也光...下面我 就把最近刷到的,自己觉得不错的动态规划题列出来: 1.P2690 接苹果 :(基础二维DP) 2. ...
- linux系统安装MongoDB
1.在官网https://www.mongodb.org/dl/linux/x86_64下载对应的安装压缩包,我用的是3.2.5,建议使用此版本,版本越高,可能会出现其它未知问题,比如需要glibc高 ...
- python 常用turtle
python 常用turtle 常用命令1 import turtle turtle.bgcolor("black") 设置背景颜色 turtle.onscreenclick(x, ...
- 【DOM练习】百度历史搜索栏
HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <t ...
- Can't locate Params/Validate.pm in @INC (@INC contains: /usr/local/lib64/perl5 /
今天 安装 MHA,管理节点选 mha4mysql-manager-0.58,在初始化时报错 [root@Server3 ~]# masterha_check_repl --conf=/etc/ma ...
- Linux操作系统中系统调用接口
进程控制 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 终止进程 _exit 立即终止当前进程 getdtablesize 进程所能打开的最大文件 ...
- 函数def
函数:把执行一定功能的动作封装到一起>>> def 函数名(形参) 通过一个 函数名(实参) 去调用它,传参来执行功能.动作,输出结果 .定义:def ...
- Mac在Finder中显示隐藏文件
1.显示隐藏文件 打开终端,输入下面的命令: defaults write com.apple.finder AppleShowAllFiles -bool true KillAll Finder ...
- Android中本地广播的实现
其实Android的本地广播并没有什么好讲的,他就是用了一个localbroadcastmanager类来sendbroadcast,以及注册和注销广播,没有什么特点,其中实例该类的时候用了getin ...