创建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里写了查询代码的,自行解决)

  1. DATA:
  2. LR_QUERY_SERVICE TYPE REF TO CL_CRM_BOL_DQUERY_SERVICE,
  3. LR_MESSAGE_SERVICE TYPE REF TO CL_BSP_WD_MESSAGE_SERVICE,
  4. LV_MESSAGE TYPE STRING,
  5. LR_SEL_PARAMS TYPE REF TO IF_BOL_BO_COL,
  6. LR_COL TYPE REF TO IF_BOL_BO_COL,
  7. LR_PARAM TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,
  8. LR_ITERATOR TYPE REF TO IF_BOL_BO_COL_ITERATOR,
  9. LS_SELECTION TYPE GENILT_SELECTION_PARAMETER,
  10. LT_PARAMS TYPE GENILT_SELECTION_PARAMETER_TAB,
  11. LV_MAX_HITS TYPE I,
  12. LR_VALUENODE TYPE REF TO CL_BSP_WD_VALUE_NODE,
  13. GS_CLAUSE TYPE STRING,
  14. GT_CLAUSE TYPE TABLE OF STRING,
  15. GT_EKKO TYPE TABLE OF EKKO,
  16. GW_EKKO TYPE EKKO..
  17.  
  18. "获取当前查询节点
  19. LR_QUERY_SERVICE ?= ME->TYPED_CONTEXT->SEARCHQUERYNODE->COLLECTION_WRAPPER->GET_CURRENT( ).
  20.  
  21. "检查查询节点实例化
  22. CHECK LR_QUERY_SERVICE IS BOUND.
  23.  
  24. "清空结果节点内容
  25. ME->TYPED_CONTEXT->SEARCHRESULTNODE->COLLECTION_WRAPPER->CLEAR( ).
  26.  
  27. "获取查询对象
  28. LR_SEL_PARAMS = LR_QUERY_SERVICE->GET_SELECTION_PARAMS( ).
  29.  
  30. "获取最大值
  31. LR_QUERY_SERVICE->GET_PROPERTY_AS_VALUE( EXPORTING IV_ATTR_NAME = 'MAX_HITS'
  32. IMPORTING EV_RESULT = LV_MAX_HITS ).
  33.  
  34. "获取查询对象的BOL迭代器^_^
  35. LR_ITERATOR = LR_SEL_PARAMS->GET_ITERATOR( ).
  36.  
  37. "迭代器循环获取查询对象的值
  38. LR_PARAM = LR_ITERATOR->GET_FIRST( ).
  39.  
  40. WHILE LR_PARAM IS BOUND.
  41. LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
  42. IF LS_SELECTION-LOW IS NOT INITIAL OR LS_SELECTION-HIGH IS NOT INITIAL."选择条件有值
  43. IF LS_SELECTION-LOW IS NOT INITIAL AND LS_SELECTION-HIGH IS NOT INITIAL AND LS_SELECTION-OPTION = 'BT'.
  44. CONCATENATE LS_SELECTION-ATTR_NAME 'BETWEEN' LS_SELECTION-LOW 'AND' LS_SELECTION-HIGH INTO GS_CLAUSE SEPARATED BY ' '.
  45. ENDIF.
  46. IF LS_SELECTION-LOW IS NOT INITIAL.
  1. IF LS_SELECTION-OPTION <> 'EQ' AND LS_SELECTION-OPTION <> 'NE'.
  2. REPLACE ALL OCCURRENCES OF '*' IN LS_SELECTION-LOW WITH '%'.
  3. CONCATENATE '''' LS_SELECTION-LOW '''' INTO LS_SELECTION-LOW.
  4. CONCATENATE LS_SELECTION-ATTR_NAME 'LIKE' LS_SELECTION-LOW INTO GS_CLAUSE SEPARATED BY ' '.
  5. ELSE.
  6. CONCATENATE LS_SELECTION-ATTR_NAME LS_SELECTION-OPTION LS_SELECTION-LOW INTO GS_CLAUSE SEPARATED BY ' '.
  7. ENDIF.
  1. ENDIF.
  2.  
  3. APPEND GS_CLAUSE TO GT_CLAUSE.
  1. ENDIF.
  2. * APPEND LS_SELECTION TO LT_PARAMS.
  3. LR_PARAM = LR_ITERATOR->GET_NEXT( ).
  4. ENDWHILE.
  5.  
  6. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_EKKO
  7. FROM EKKO WHERE (GT_CLAUSE).
  8.  
  9. DATA: LR_REF_ANY TYPE REF TO DATA,
  10. LR_VALUE_NODE TYPE REF TO CL_BSP_WD_VALUE_NODE.
  11.  
  12. CREATE OBJECT LR_COL TYPE CL_CRM_BOL_BO_COL.
  13.  
  14. LOOP AT GT_EKKO INTO GW_EKKO.
  15. GET REFERENCE OF GW_EKKO INTO LR_REF_ANY.
  16. CREATE OBJECT LR_VALUE_NODE
  17. TYPE
  18. CL_BSP_WD_VALUE_NODE
  19. EXPORTING
  20. IV_DATA_REF = LR_REF_ANY.
  21. LR_COL->ADD( LR_VALUE_NODE ).
  22.  
  23. ENDLOOP.
  24.  
  25. 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. HDU 4656 Evaluation(MTT)

    题意 \(x_k=bc^{2k}+d\) \(\displaystyle F(x)=\sum_{i=0}^{n-1}a_ix^i\) 给定 \(\{a\},b,c,d,n\) ,求 \(F(x_0), ...

  2. Netty 核心组件笔记

    Netty是一款高效的NIO框架和工具,基于JAVA NIO提供的API实现. 在JAVA NIO方面Selector给Reactor模式提供了基础,Netty结合Selector和Reactor模式 ...

  3. Codeforces 855C. Helga Hufflepuff's Cup----树形DP

    z最近在学习树形DP...好难啊. 在cf上找到了一题c题当模版马克一下. 题目不贴了..>>http://codeforces.com/problemset/problem/855/C& ...

  4. 防止网站检测出Selenium的window.navigator.webdriver属性

    只需在Chromeoptions对象中添加一个属性即可解决 import time from selenium.webdriver import Chrome, ChromeOptions optio ...

  5. hihoCoder 1233 : Boxes(盒子)

    hihoCoder #1233 : Boxes(盒子) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 There is a strange ...

  6. Java 静态方法不能重写但可以被子类静态方法覆盖

    强调 静态方法是属于类的,只存在一份,会被该类的所有对象共享.不可以被重写. 静态方法可以被子类继承,但是不可以被子类重写 class door{ } class wood_Door extends ...

  7. 每日质量NPM包拖拽文件上传_react-dropzone

    一.react-dropzone 官方定义: Simple HTML5-compliant drag'n'drop zone for files built with React.js. 理解: 一个 ...

  8. 6-1 建立客户端与zk服务端的连接

    6-1 建立客户端与zk服务端的连接 zookeeper原生java api使用 会话连接与恢复; 节点的增删改查; watch与acl的相关操作; 导入jar包;

  9. ado_基本连接操作【四】

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data. ...

  10. Discrete Log Algorithms :Baby-step giant-step

    离散对数的求解 1.暴力 2.Baby-step giant-step 3.Pollard’s ρ algorithm …… 下面搬运一下Baby-step giant-step 的做法 这是在 ht ...