CRM WEB UI 01 BOL向导创建的搜索
创建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向导创建的搜索的更多相关文章
- crm web ui
1:View中的field对应于model中的attribute. 2:custom controller具有更长的生存时间,能够在view中共享一些数据. 3:window是component的一个 ...
- CRM WEB UI 03搜索界面新建按钮调到详细界面
这个和上一个差不多,简单说下: 1.因为NEW是在创建搜索界面的时候加的,所以此时只需在结果界面重定义NEW事件: method EH_ONNEW. OP_NEW( ). endmethod. 2.结 ...
- CRM WEB UI 02搜索跳转到详细界面
结合上一个,在上一个中,创建的是选择链接字段EBELN. 下面来实现点击EBELN跳转到详细界面: 1.创建ZLYTEST03_H组件,做详细界面. 2.创建概览页 DETOV. 3.创建视图集 DE ...
- CRM WEB UI 04明细界面添加按钮
好了,这个是个人测试玩的,略风骚...请自行鉴阅 1.明细的组件控制器中增加全局控制属性字段: 2.概览页中工具栏相关方法,重定义GET_BUTTONS METHOD IF_BSP_WD_TOOLBA ...
- SAP CRM 在Web UI中创建搜索帮助
多数情况下,在Web UI为一个特定的字段提供搜索帮助需要在事务SE11中创建搜索帮助. (注:也可以通过在SE24中创建一个类并实现实现IF_BSP_WD_CUSTOM_F4_CALLBACK接口来 ...
- Dynamics CRM 中Web API中的深度创建(Deep Insert)
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Atitit.web ui 组件化 vs mvc
Atitit.web ui 组件化 vs mvc 组件化 与 mvc并不矛盾..单双方适用的地方有所不同.. React推荐以组件的方式去重新思考UI构成,将UI上每一个功能相对独立的模块定 ...
- 10个优秀的JavaScript Web UI库/框架推荐
在进行Web开发时,并非所有的库都适合你的项目,但你仍需要收藏一些Web UI设计相关的库或框架,以在你需要的时候,加快你的开发效率. 本文为你带来10款非常优秀的基于JavaScript的Web U ...
- WEB UI 整理
当下对于网站前段开发人员来说,很少有人不使用一些JS框架或者WEB UI库,因此这些可以有效提高网站前段开发速度,并且能够统一开发环境,对于不同浏览器的兼容性也不需要程序员操心,有了这些优点,当然大家 ...
随机推荐
- MongoDB 基本语法笔记
MongoDB常识 MongoDB Shell是MongoDB自带的交互式Javascript shell,所以可直接执行JS脚本,用来对MongoDB进行操作和管理的交互式环境. ObjectId: ...
- Kubernetes简介
Kubernetes is an open-source platform designed to automate deploying, scaling, and operating applica ...
- HDU 5442 Favorite Donut(暴力 or 后缀数组 or 最大表示法)
http://acm.hdu.edu.cn/showproblem.php?pid=5442 题意:给出一串字符串,它是循环的,现在要选定一个起点,使得该字符串字典序最大(顺时针和逆时针均可),如果有 ...
- BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊(分块)
http://www.lydsy.com/JudgeOnline/problem.php?id=2002 题意: 思路:不会LCT,就只好用分块了. 将这n个数分成根号n块,对于每一块中的每一个数,处 ...
- R语言学习 - 非参数法生存分析--转载
生存分析指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析或存活率分析.常用于肿瘤等疾病的标志物筛选.疗效及预后的考 ...
- 【Django】【问题集锦】
参考:http://www.linuxidc.com/Linux/2013-03/80649.htm 1. Django的shell模式下,如果报warning,则再执行一次,也许就好了 2. Dja ...
- python shelve模块
#coding=utf- import shelve f = shelve.open("shelve_test") f['info'] = "alex" f[, ...
- 浅谈 Java JPDA
前言 程序员在坊间有非常多有趣的故事,其中就有这么一则:”这个在我的电脑上是好的,没问题的呀,诺,你看咯,一定是你打开姿势不正确,浏览器版本不正确,操作系统不统一等,总之不是我代码问题(傲娇)”.看到 ...
- Codeforces 1053 B - Vasya and Good Sequences
B - Vasya and Good Sequences 思路: 满足异或值为0的区间,必须满足一下条件: 1.区间中二进制1的个数和为偶数个; 2.区间二进制1的个数最大值的两倍不超过区间和. 如果 ...
- tchart...
using System;using System.Collections;using System.ComponentModel;using System.Drawing; using System ...