创建BOL的步骤就不说了,自己找,学习这个之前,需要自己先找个SAP CRM资料预习一下

T-CODE:BSP_WD_CMPWB

1.创建组件:输入组件名:ZLYTEST03,点击创建按钮,回车,选择包和请求。。。回车,回车,回车,知道创建成功,进入组件里。

2.加入BOL:点击运行时资源库编辑器,点击修改右键'MODEL',添加自建的或者标准的BOL。保存,F3退出一下,再进入,会带出BOL浏览器按钮。

3.创建视图:点击组件结构浏览器,选择视图,右键,‘创建搜索页面’,选择搜索节点和结果节点(此节点需要在BOL中添加)。单选或者多选。。选择需要做链接的字段(如无,则下一步),如果需要结果视图中增加按钮,可自行添加,点击继续,完成。

4.配置SEARCH界面和RESULT界面,需要那些字段自己加。

5.运行,会出现上面配置的搜索条件和搜索界面界面(如果是自己一个个建的,需要将查询和结果视图加到视图集中,将视图集加到WINDOWS中)

6.搜索代码实现:在查询视图的事件处理器中,重定义查询(如果已经在BOL里写了查询代码的,自行解决)

DATA:
LR_QUERY_SERVICE TYPE REF TO CL_CRM_BOL_DQUERY_SERVICE,
LR_MESSAGE_SERVICE TYPE REF TO CL_BSP_WD_MESSAGE_SERVICE,
LV_MESSAGE TYPE STRING,
LR_SEL_PARAMS TYPE REF TO IF_BOL_BO_COL,
LR_COL TYPE REF TO IF_BOL_BO_COL,
LR_PARAM TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,
LR_ITERATOR TYPE REF TO IF_BOL_BO_COL_ITERATOR,
LS_SELECTION TYPE GENILT_SELECTION_PARAMETER,
LT_PARAMS TYPE GENILT_SELECTION_PARAMETER_TAB,
LV_MAX_HITS TYPE I,
LR_VALUENODE TYPE REF TO CL_BSP_WD_VALUE_NODE,
GS_CLAUSE TYPE STRING,
GT_CLAUSE TYPE TABLE OF STRING,
GT_EKKO TYPE TABLE OF EKKO,
GW_EKKO TYPE EKKO.. "获取当前查询节点
LR_QUERY_SERVICE ?= ME->TYPED_CONTEXT->SEARCHQUERYNODE->COLLECTION_WRAPPER->GET_CURRENT( ). "检查查询节点实例化
CHECK LR_QUERY_SERVICE IS BOUND. "清空结果节点内容
ME->TYPED_CONTEXT->SEARCHRESULTNODE->COLLECTION_WRAPPER->CLEAR( ). "获取查询对象
LR_SEL_PARAMS = LR_QUERY_SERVICE->GET_SELECTION_PARAMS( ). "获取最大值
LR_QUERY_SERVICE->GET_PROPERTY_AS_VALUE( EXPORTING IV_ATTR_NAME = 'MAX_HITS'
IMPORTING EV_RESULT = LV_MAX_HITS ). "获取查询对象的BOL迭代器^_^
LR_ITERATOR = LR_SEL_PARAMS->GET_ITERATOR( ). "迭代器循环获取查询对象的值
LR_PARAM = LR_ITERATOR->GET_FIRST( ). WHILE LR_PARAM IS BOUND.
LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
IF LS_SELECTION-LOW IS NOT INITIAL OR LS_SELECTION-HIGH IS NOT INITIAL."选择条件有值
IF LS_SELECTION-LOW IS NOT INITIAL AND LS_SELECTION-HIGH IS NOT INITIAL AND LS_SELECTION-OPTION = 'BT'.
CONCATENATE LS_SELECTION-ATTR_NAME 'BETWEEN' LS_SELECTION-LOW 'AND' LS_SELECTION-HIGH INTO GS_CLAUSE SEPARATED BY ' '.
ENDIF.
IF LS_SELECTION-LOW IS NOT INITIAL.
IF LS_SELECTION-OPTION <> 'EQ' AND LS_SELECTION-OPTION <> 'NE'.
REPLACE ALL OCCURRENCES OF '*' IN LS_SELECTION-LOW WITH '%'.
CONCATENATE '''' LS_SELECTION-LOW '''' INTO LS_SELECTION-LOW.
CONCATENATE LS_SELECTION-ATTR_NAME 'LIKE' LS_SELECTION-LOW INTO GS_CLAUSE SEPARATED BY ' '.
ELSE.
CONCATENATE LS_SELECTION-ATTR_NAME LS_SELECTION-OPTION LS_SELECTION-LOW INTO GS_CLAUSE SEPARATED BY ' '.
ENDIF.
ENDIF.

APPEND GS_CLAUSE TO GT_CLAUSE.
ENDIF.
* APPEND LS_SELECTION TO LT_PARAMS.
LR_PARAM = LR_ITERATOR->GET_NEXT( ).
ENDWHILE. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_EKKO
FROM EKKO WHERE (GT_CLAUSE). DATA: LR_REF_ANY TYPE REF TO DATA,
LR_VALUE_NODE TYPE REF TO CL_BSP_WD_VALUE_NODE. CREATE OBJECT LR_COL TYPE CL_CRM_BOL_BO_COL. LOOP AT GT_EKKO INTO GW_EKKO.
GET REFERENCE OF GW_EKKO INTO LR_REF_ANY.
CREATE OBJECT LR_VALUE_NODE
TYPE
CL_BSP_WD_VALUE_NODE
EXPORTING
IV_DATA_REF = LR_REF_ANY.
LR_COL->ADD( LR_VALUE_NODE ). ENDLOOP. ME->TYPED_CONTEXT->SEARCHRESULTNODE->COLLECTION_WRAPPER->ADD_COLLECTION( LR_COL ).

好了,到这里,搜索视图搞定了。。。可以运行起来看看了

CRM WEB UI 01 BOL向导创建的搜索的更多相关文章

  1. crm web ui

    1:View中的field对应于model中的attribute. 2:custom controller具有更长的生存时间,能够在view中共享一些数据. 3:window是component的一个 ...

  2. CRM WEB UI 03搜索界面新建按钮调到详细界面

    这个和上一个差不多,简单说下: 1.因为NEW是在创建搜索界面的时候加的,所以此时只需在结果界面重定义NEW事件: method EH_ONNEW. OP_NEW( ). endmethod. 2.结 ...

  3. CRM WEB UI 02搜索跳转到详细界面

    结合上一个,在上一个中,创建的是选择链接字段EBELN. 下面来实现点击EBELN跳转到详细界面: 1.创建ZLYTEST03_H组件,做详细界面. 2.创建概览页 DETOV. 3.创建视图集 DE ...

  4. CRM WEB UI 04明细界面添加按钮

    好了,这个是个人测试玩的,略风骚...请自行鉴阅 1.明细的组件控制器中增加全局控制属性字段: 2.概览页中工具栏相关方法,重定义GET_BUTTONS METHOD IF_BSP_WD_TOOLBA ...

  5. SAP CRM 在Web UI中创建搜索帮助

    多数情况下,在Web UI为一个特定的字段提供搜索帮助需要在事务SE11中创建搜索帮助. (注:也可以通过在SE24中创建一个类并实现实现IF_BSP_WD_CUSTOM_F4_CALLBACK接口来 ...

  6. Dynamics CRM 中Web API中的深度创建(Deep Insert)

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. Atitit.web ui  组件化 vs  mvc

    Atitit.web ui  组件化 vs  mvc   组件化  与 mvc并不矛盾..单双方适用的地方有所不同.. React推荐以组件的方式去重新思考UI构成,将UI上每一个功能相对独立的模块定 ...

  8. 10个优秀的JavaScript Web UI库/框架推荐

    在进行Web开发时,并非所有的库都适合你的项目,但你仍需要收藏一些Web UI设计相关的库或框架,以在你需要的时候,加快你的开发效率. 本文为你带来10款非常优秀的基于JavaScript的Web U ...

  9. WEB UI 整理

    当下对于网站前段开发人员来说,很少有人不使用一些JS框架或者WEB UI库,因此这些可以有效提高网站前段开发速度,并且能够统一开发环境,对于不同浏览器的兼容性也不需要程序员操心,有了这些优点,当然大家 ...

随机推荐

  1. Long类型转json时前端js丢失精度解决方案

    一.问题背景 Java后端开发过程中,尤其是id字段,因数值太大,通过json形式传输到前端后,在js解析时,会丢失精度. 如果对精度丢失没有什么概念,可以看一个知乎的帖子,来感受一下:https:/ ...

  2. 测试常用的Linux命令总结

    列出常用的命令和最常用的用法,排名不分先后:) 1. find在/home目录下查找以.txt结尾的文件名find /home -name "*.txt"同上,但忽略大小写find ...

  3. 17秋 软件工程 团队第三次作业 预则立&他山之石

    题目:团队作业-预则立&&他山之石 团队: 我说嘻(xì)哈(hà)你说侠 17秋 软件工程 团队第三次作业 预则立&他山之石 1.确立团队选题,建立和初步熟悉团队git的协作 ...

  4. window7安装python的xgboost库方法

    window7安装python的xgboost库方法 1.下载xgboost-master.zip文件,而不是xgboost-0.4a30.tar.gz,xgboost-0.4a30.tar.gz是更 ...

  5. QT移植无法启动 This application failed to start because it could not find or load the QT platform

    QT配置好在自己机器上可以运行,但在别人机器上一直弹出 "This application failed to start because it could not find or load ...

  6. Common-io,FileUtils工具类的使用

    package Cristin.Common.File; import org.apache.commons.io.FileUtils; import org.apache.commons.io.fi ...

  7. JAVA9新特性——JShell使用笔记

    前言:JShell是java 9的新特性之一,由于在之前学校java8的lambda表达式的时候,就希望有这么一个可以交互的界面来快速响应编写的代码.刚好java9出来了,就对它把玩起来了... 内容 ...

  8. [转][C++]佛祖保佑,永无bug。C++ BUG解决方案

    // // _oo0oo_ // o8888888o // 88" . "88 // (| -_- |) // 0\ = /0 // ___/`---'\___ // .' \\| ...

  9. 部署NTP服务器进行时间同步

    NTP服务端:linl_S    IP:10.0.0.15 NTP客户端:lin_C    IP:10.0.0.16 NTP服务概述 1.原理 NTP(Network TimeProtocol,网络时 ...

  10. MySQL学习(十一)

    MySQL的函数 1 数学函数 2 字符串函数 3 日期和时间函数 4 条件判断函数 5 系统信息函数 6 加密解密函数 7 其他函数 2 字符串函数 length计算的是字节长度 char_leng ...