1,取附件内容放到新增的字段里

  METHOD get_attachment.

    DATA: current TYPE REF TO if_bol_bo_property_access.
DATA: dref TYPE REF TO data.
DATA:gv_guid TYPE crmt_object_guid,
ls_business_object TYPE sibflporb,
lt_phioloios TYPE skwf_lpios,
ls_phioloios LIKE LINE OF lt_phioloios,
lt_ios_prop_result TYPE crm_kw_propst,
ls_ios_prop_result LIKE LINE OF lt_ios_prop_result,
lt_prop TYPE sdokproptls,
ls_prop TYPE sdokproptl. FIELD-SYMBOLS:
<nval> TYPE any,
<oval> TYPE any. * get current entity
IF iterator IS BOUND.
current = iterator->get_current( ).
ELSE.
current = collection_wrapper->get_current( ).
ENDIF. current->get_property_as_value(
EXPORTING
iv_attr_name = 'BP_GUID'
IMPORTING
ev_result = gv_guid ). CHECK gv_guid IS NOT INITIAL. "取出BP对应的附件信息
ls_business_object-instid = gv_guid.
ls_business_object-typeid = 'BUS1006'.
ls_business_object-catid = 'BO'.
CALL METHOD cl_crm_documents=>get_info
EXPORTING
business_object = ls_business_object
IMPORTING
phioloios = lt_phioloios
ios_properties_result = lt_ios_prop_result. READ TABLE lt_phioloios INTO ls_phioloios INDEX 1.
IF sy-subrc = 0.
READ TABLE lt_ios_prop_result INTO ls_ios_prop_result WITH KEY objtype = ls_phioloios-objtypelo
class = ls_phioloios-classlo
objid = ls_phioloios-objidlo.
IF sy-subrc = 0.
READ TABLE ls_ios_prop_result-properties INTO ls_prop WITH KEY name = 'KW_RELATIVE_URL'.
IF sy-subrc = 0.
value = ls_prop-value.
ENDIF.
ENDIF.
ENDIF. ENDMETHOD.

2,设置字段类型

METHOD get_p_attachment.

  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 = 'DISPLAY_DOC'.
"...
ENDCASE.

3,设置点击事件

  METHOD eh_ondisplay_doc.
* Added by wizard: Handler for event 'DISPLAY_DOC'
DATA: lv_index TYPE int4,
lr_entity_ext TYPE REF TO if_bol_bo_property_access,"if_bsp_wd_ext_property_access,
lr_entity TYPE REF TO cl_crm_bol_entity,
lr_coco TYPE REF TO cl_gs_cm_bspwdcomponent,
lr_bsp_runtime TYPE REF TO cl_bsp_runtime,
ls_attributes TYPE crmt_cmic_doc_attr,
lr_data TYPE REF TO data.
FIELD-SYMBOLS: <fs_key> TYPE string.
DATA: current TYPE REF TO if_bol_bo_property_access.
DATA: dref TYPE REF TO data.
DATA:gv_guid TYPE crmt_object_guid,
ls_business_object TYPE sibflporb,
lt_phioloios TYPE skwf_lpios,
ls_loio TYPE skwf_io,
lv_url TYPE saeuri,
ls_phioloios LIKE LINE OF lt_phioloios,
lt_ios_prop_result TYPE crm_kw_propst,
ls_ios_prop_result LIKE LINE OF lt_ios_prop_result,
lt_prop TYPE sdokproptls,
ls_prop TYPE sdokproptl. * get index of the table
cl_thtmlb_util=>get_event_info( EXPORTING iv_event = htmlb_event_ex
IMPORTING ev_index = lv_index ).
* get entity from mixed note
lr_entity_ext ?= me->typed_context->result->collection_wrapper->find( iv_index = lv_index ). CHECK lr_entity_ext IS BOUND.
lr_entity_ext->get_property_as_value(
EXPORTING
iv_attr_name = 'BP_GUID'
IMPORTING
ev_result = gv_guid ). CHECK gv_guid IS NOT INITIAL. "取出BP对应的附件信息
ls_business_object-instid = gv_guid.
ls_business_object-typeid = 'BUS1006'.
ls_business_object-catid = 'BO'.
CALL METHOD cl_crm_documents=>get_info
EXPORTING
business_object = ls_business_object
IMPORTING
phioloios = lt_phioloios
ios_properties_result = lt_ios_prop_result. READ TABLE lt_phioloios INTO ls_phioloios INDEX 1.
IF sy-subrc = 0.
READ TABLE lt_ios_prop_result INTO ls_ios_prop_result WITH KEY objtype = ls_phioloios-objtypelo
class = ls_phioloios-classlo
objid = ls_phioloios-objidlo.
IF sy-subrc = 0.
READ TABLE ls_ios_prop_result-properties INTO ls_prop WITH KEY name = 'KW_RELATIVE_URL'.
IF sy-subrc = 0.
ENDIF.
ENDIF.
ls_loio-objtype = ls_phioloios-objtypelo.
ls_loio-class = ls_phioloios-classlo.
ls_loio-objid = ls_phioloios-objidlo. CALL METHOD cl_crm_documents=>get_with_url
EXPORTING
loio = ls_loio
url_type = '2'
IMPORTING
url = lv_url
EXCEPTIONS
no_io = 1
OTHERS = 2. CHECK lv_url IS NOT INITIAL. ls_attributes-url_to_display = lv_url. CONCATENATE gv_doc_display_js 'thtmlbSuppressOnLoadKeyboardFocus(); window.open("' ls_attributes-url_to_display '", ' sy-timlo ')' INTO gv_doc_display_js.
ENDIF. ENDMETHOD.

效果:

UI上将BP附件放到BP结果中的更多相关文章

  1. 一百一十九:CMS系统之将短信验证码和图形验证码放到memcached缓存中

    将两个验证码的视图都放到common蓝图下 from flask import Blueprint, request, make_responsefrom exts import alidayufro ...

  2. Page_Load接收随机参数放到字典类中

    Page_Load接收随机参数放到字典类中,可以用作签名.普通的接收url的参数可以用作下面这种模式:  int appid =Convert.ToInt32(param["appid&qu ...

  3. 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

    package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayLis ...

  4. spring事务 将多个connection放到一个线程中

    spring事务 将多个connection放到一个线程中

  5. m_Orchestrate learning system---三十五、php数据和js数据的解耦:php数据(php代码)不要放到js代码中

    m_Orchestrate learning system---三十五.php数据和js数据的解耦:php数据(php代码)不要放到js代码中 一.总结 一句话总结:也就是以html为中介,用html ...

  6. JDBC程序优化--提取配置信息放到属性文件中

    JDBC程序优化--提取配置信息放到属性文件中 此处仅仅优化JDBC连接部分,代码如下: public class ConnectionFactory { private static String ...

  7. 西瓜书 5.5 编写过程(标准BP与累计BP)

    话不多说先用numpy表示出数据集 Y=['色泽','根蒂','敲声','纹理','脐部','触感','密度','含糖率','好瓜与否']D=np.array([[2,1,2,3,3,1,0.697, ...

  8. UI自动化测试(三)对页面中定位到的元素对象做相应操作

    前两天分别讲述了UI自动化测试基础以及对页面元素该如何进行定位,这一篇自然就是对定位到的页面元素对象进行相应操作啦. 阅读目录 1.常用操作元素对象的方法 2.鼠标事件操作 3.键盘事件操作 4.We ...

  9. JAVA 如何把request请求的参数,快速放到model对象中

    因为项目需要,需要从request中读取大量的参数. 因为本人过懒,所以写了个方法把request参数,直接放到对应的类中. 参数 String str="aa,bb,cc"; P ...

  10. 将对象的所有属性名放到一个数组中 || 获得对象的所有属性名 || return;不具有原子性 || 怎样自己制作异常|| 判断对象有没有某个属性 || 当传递的参数比需要的参数少的时候,没有的值会被赋予undefined || 获得函数实际传递的参数 || 怎么用函数处理一个对象 || 用一个名字空间定义一个模块所有的函数 || 给一个对象添加方法

    获得对象的所有属性名 || 将对象o的所有属性名放到数组中 var o = {x:1,y:2,z:3}; var arr = []; var i = 0; for(arr[i++] in o){};/ ...

随机推荐

  1. 全国省市区基础数据SQL插入脚本

    整理了一份全国省市区SQL插入脚本,并配上抓取数据读取插入数据库源码,附件下载地址:https://files.cnblogs.com/files/101Love/Region.rar

  2. [源码系列:手写spring] IOC第十一节:Aware接口

    内容介绍 Aware简洁 在Spring框架中,Aware接口是一个非常有用的工具,用于实现Bean与Spring容器及其他资源之间的集成.Aware接口是一个标记接口,其中定义了各种Aware子接口 ...

  3. 【JDBC】总结

    JDBC核心技术 第1章:JDBC概述 1.1 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数 ...

  4. luat编程MQTT的自动重连失败分析

    正确用法 查看代码 --- 模块功能:MQTT客户端处理框架 -- @author openLuat -- @module mqtt.mqttTask -- @license MIT -- @copy ...

  5. java基础之继承,抽象类

    一.继承 :就是子类继承父类的非私有属性和行为 二.特点 1.子类和父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字 格式:super.父类成员变量名 ...

  6. C# 线程(二)——Thread学习

    参照:C#多线程 - .NET开发菜鸟 - 博客园 (cnblogs.com) C# Thread 线程状态知识 - 大圣的笑 - 博客园 (cnblogs.com) 背景: 在.NET Framew ...

  7. EF Core Demo1——初识DbContext

    EF中的上下文(DbContext)简介   DbContext是实体类和数据库之间的桥梁,DbContext主要负责与数据交互,主要作用: 1.DbContext包含所有的实体映射到数据库表的实体集 ...

  8. 使用 GitHub Actions 构建 CosyVoice 项目的运行环境镜像并推送到阿里云容器镜像服务和 GitHub Package Registry

    使用 GitHub Actions 构建 CosyVoice 项目的运行环境镜像并推送到阿里云容器镜像服务和 GitHub Package Registry 概述 本文介绍了如何使用 GitHub A ...

  9. Axure RP仿网易游戏装备饰品APP平台保真交互原型rp源文件

    Axure RP仿网易游戏装备饰品APP平台保真交互原型rp源文件包含以下几个模块: 1.登录和完善信息:绑定steam.获取交易链接.公开设置 2.首页部分:热门关注.数据.热门关注.数据榜.特殊磨 ...

  10. Nacos源码—7.Nacos升级gRPC分析二

    大纲 5.服务变动时如何通知订阅的客户端 6.微服务实例信息如何同步集群节点 5.服务变动时如何通知订阅的客户端 (1)服务注册和服务订阅时发布的客户端注册和订阅事件的处理 (2)延迟任务的执行引擎源 ...