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. Docker中在不同网段下的容器的互联

    首先要启动docker: 拉取busybox镜像: 查看本地是否有这个镜像的命令是: 接下来咱们就要来查询docker的网络: 你会看到一个docker0 这是docker默认的网段,在docker里 ...

  2. delphi获取DOS命令行输出函数 运行CMD命令并获取结果

    procedure TForm1.Button4Click(Sender: TObject); var hReadPipe,hWritePipe:THandle; si:STARTUPINFO; ls ...

  3. 万字长文详解Text-to-SQL

    什么是Text-to-SQL 在各个企业数据量暴涨的现在,Text-to-SQL越来越重要了,所以今天就来聊聊Text-to-SQL. Text-to-SQL是一种将自然语言查询转换为数据库查询的技术 ...

  4. 抽象类和接口的对比、及各自的使用场景--java进阶day02

    1.区别 2.各自的使用场景 1.抽象类的使用场景 如图,有三个类,其中存在共性,我们就会写一个父类并抽取出共性的东西,但有的方法难免会描述不清,所以我们就将其写为了抽象方法,抽象方法又得存在于抽象类 ...

  5. 【Web】Servlet基本概念

    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据, ...

  6. 学习EXTJS6(9)面向对象的基础框架-1

    Ext创造一套精细的对象模型与API,用这套API,可以快速实现对象的定义.创建.继承和扩展:1. 1.创建新类 Ext.define('demo.Demo',{ name: 'usegear', h ...

  7. 我理解的伽马校正(Gamma Correction

    写在前面 我相信几乎所有做图像处理方面的人都听过伽马校正(Gamma Correction)这一个名词,但真正明白它是什么.为什么要有它.以及怎么用它的人其实不多.我也不例外.最初我查过一些资料,但很 ...

  8. java基础之集合(List)、Properties集合

    一.ArrayList集合的方法 1.public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上. 2.public E get(int  ...

  9. 快速开始 Mybatis TypeHandler

    theme: orange MyBatis TypeHandler是MyBatis框架中的举足轻重的组件之一,用于处理Java对象和数据库中的数据类型之间的转换. MyBatis TypeHandle ...

  10. C# Equals 和 GetHashCode 方法认知及Distinct方法解析

    参照: 生成 C# Equals 和 GetHashCode 方法重写 - Visual Studio (Windows) | Microsoft Learn 如何修改字符串内容 - C# | Mic ...