经常会有需求让在标准的order加个assign block,那就来简单说一下:

1.创建assign block组件ZXXXXXX

2.添加BTORDER节点和GUID属性

3.创建表视图(可配置,根据情况是否按钮),在表的初始化中DO_INIT_CONTEXT或者DO_PREPARE_OUTPUT中根据GUID带出block信息

  1. METHOD do_init_context.
  2. DATA:gr_order TYPE REF TO if_bol_bo_property_access,
  3. gw_order TYPE crmst_guid_btil,
  4. lr_col TYPE REF TO if_bol_bo_col,
  5. lr_valuenode TYPE REF TO cl_bsp_wd_value_node,
  6. gt_log TYPE TABLE OF zcrm_proce_log,
  7. gw_log LIKE LINE OF gt_log,
  8. gt_text TYPE TABLE OF zdelay_reason,
  9. gw_text LIKE LINE OF gt_text,
  10. gw_struct TYPE zcrms0046,
  11. lr_line TYPE REF TO zcrms0046.
  12. REFRESH:gt_log.
  13. CLEAR:gw_log.
  14. super->do_init_context( ).
  15.  
  16. gr_order = me->typed_context->btorder->collection_wrapper->get_current( ).
  17. IF gr_order IS BOUND.
  18. gr_order->get_properties(
  19. IMPORTING
  20. es_attributes = gw_order ).
  21. SELECT * INTO TABLE gt_log FROM zcrm_proce_log WHERE guid = gw_order-crm_guid.
  22. SELECT * INTO TABLE gt_text FROM zdelay_reason WHERE spras = sy-langu.
  23. SORT gt_text BY estat.
  24. ENDIF.
  25. * SELECT * INTO TABLE gt_log FROM zcrm_proce_log WHERE guid = gw_order-crm_guid.
  26. CREATE OBJECT lr_col TYPE cl_crm_bol_bo_col.
  27. LOOP AT gt_log INTO gw_log.
  28. MOVE-CORRESPONDING gw_log TO gw_struct.
  29. READ TABLE gt_text INTO gw_text WITH KEY estat = gw_log-zzdlyrsn BINARY SEARCH.
  30. IF sy-subrc = .
  31. gw_struct-in_pro_des = gw_text-text.
  32. ENDIF.
  33. CREATE DATA lr_line.
  34. CREATE OBJECT lr_valuenode
  35. EXPORTING
  36. iv_data_ref = lr_line.
  37. lr_valuenode->set_properties( gw_struct ).
  38. lr_col->add( lr_valuenode ).
  39. ENDLOOP.
  40.  
  41. me->typed_context->proce->collection_wrapper->set_collection( lr_col ).
  42.  
  43. ENDMETHOD.

将组件添加InterfaceView 并把BTorder节点添加。

将组件添加到BT116H_SRVO的ComponentUsage

在BT116H_SRVO的组件控制器的WD_USAGE_INITIALIZE的方法中添加GUID节点的映射:

  1. METHOD wd_usage_initialize.
  2. CONSTANTS:
  3. lc_node_name_totals TYPE seocmpname VALUE 'ADDPARENTTOTALS',
  4. lc_komp_name_rel TYPE name_komp VALUE 'PARENTTOTALREL1',
  5. lc_komp_name_total TYPE name_komp VALUE 'PARENTTOTAL1',
  6. lc_rel_name_cumulat TYPE string VALUE 'BTHeaderCumulatExt',
  7. lc_komp_name_cost TYPE string VALUE 'COST_AMOUNT'.
  8.  
  9. DATA:
  10. lr_component_usage TYPE REF TO if_bsp_wd_component_usage,
  11. lr_context_node TYPE REF TO cl_bsp_wd_context_node,
  12. lr_property_access TYPE REF TO if_bol_bo_property_access.
  13.  
  14. CHECK iv_usage IS BOUND.
  15.  
  16. * late instantiation of CuCos for
  17. * component usages
  18.  
  19. CASE iv_usage->usage_name.
  20. WHEN 'CUBTQualif'.
  21. get_custom_controller( 'BT116H_SRVO/CUBTQualifCuCo' ).
  22. WHEN 'CUBTRefObj'.
  23. get_custom_controller( 'BT116H_SRVO/CUBTRefObjCuCo' ).
  24. WHEN 'CUBTOrgSet'.
  25. get_custom_controller( 'BT116H_SRVO/CUBTOrgSetCuCo' ).
  26. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  27. iv_target_node_name = 'BTADMINH'
  28. iv_node_2_bind = 'PARENTNODE' ).
  29. WHEN 'CUBTAmntAll'.
  30. get_custom_controller( 'BT116H_SRVO/CUBTAmntAllCuCo' ).
  31. WHEN 'CUBTDates'.
  32. get_custom_controller( 'BT116H_SRVO/CUBTDatesCuCo' ).
  33. WHEN 'CUGSActions'.
  34. get_custom_controller( 'BT116H_SRVO/CUGSActionsCuCo' ).
  35. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  36. iv_target_node_name = 'BTADMINH'
  37. iv_node_2_bind = 'PARENTNODE' ).
  38. WHEN 'CUGSText'.
  39. get_custom_controller( 'BT116H_SRVO/CUGSTextCuCo' ).
  40. WHEN 'CUBTAcAssign'.
  41. get_custom_controller( 'BT116H_SRVO/CUBTAcAssignCuCo' ).
  42. WHEN 'CUBTStatusUS'.
  43. get_custom_controller( 'BT116H_SRVO/CUBTStatusUSCuCo' ).
  44. WHEN 'CUBTPartner'.
  45. get_custom_controller( 'BT116H_SRVO/CUBTPartnerCuCo' ).
  46. WHEN 'CUBTChangeHistory'.
  47. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  48. iv_target_node_name = 'BTADMINH'
  49. iv_node_2_bind = 'BTADMINH' ).
  50. WHEN 'CUBTShipping'.
  51. * bind shipping usage
  52. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  53. iv_target_node_name = 'BTORDER' " name of component controller node
  54. iv_node_2_bind = 'BTORDER' ). " name of usage interface node
  55.  
  56. WHEN 'CUBTCounter'.
  57. * bind counter usage
  58. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  59. iv_target_node_name = 'BTADMINH' " name of component controller node
  60. iv_node_2_bind = 'BTADMIN' ). " name of usage interface node
  61.  
  62. * custom controller needed for counter link proposal
  63. get_custom_controller( 'BT116H_SRVO/CUBTCounterCuCo' ).
  64.  
  65. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
  66. iv_target_node_name = 'PROPOSALCOMP' " name of custom controller node
  67. iv_name = 'BT116H_SRVO/CUBTCounterCuCo'
  68. iv_node_2_bind = 'PROPOSALCOMP' ). " name of usage interface node
  69.  
  70. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
  71. iv_target_node_name = 'PROPOSALPROD' " name of custom controller node
  72. iv_name = 'BT116H_SRVO/CUBTCounterCuCo'
  73. iv_node_2_bind = 'PROPOSALPROD' ). " name of usage interface node
  74.  
  75. WHEN 'CUBTServiceItem'
  76. OR 'CUBTServicePartItem'
  77. OR 'CUBTExpenseItem'
  78. OR 'CUBTToolItem'
  79. OR 'CUBTSalesItem'.
  80. * bind single item component usages
  81. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  82. iv_target_node_name = 'BTADMINI'
  83. iv_node_2_bind = 'BTADMINI' ).
  84. WHEN 'CUBTSalesQuotItem'.
  85. * special binding for sales quotation item
  86. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  87. iv_target_node_name = 'BTADMINI'
  88. iv_node_2_bind = 'BTADMINI' ).
  89.  
  90. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  91. iv_target_node_name = 'BTITEMS'
  92. iv_node_2_bind = 'BTITEMS' ).
  93.  
  94. WHEN 'CUItemTable' OR 'CUItemTableHeader'.
  95. * bind item table component usages
  96. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  97. iv_target_node_name = 'BTITEMS'
  98. iv_node_2_bind = 'BTITEMS' ).
  99.  
  100. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  101. iv_target_node_name = 'BTADMINI'
  102. iv_node_2_bind = 'BTADMINI' ).
  103.  
  104. WHEN 'CUGSCMOverview' OR 'CUGSCMEdit'.
  105. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
  106. iv_name = 'BT116H_SRVO/CUGSCMCuCo'
  107. iv_target_node_name = 'CMBO'
  108. iv_node_2_bind = 'CMBUSOBJ' ).
  109.  
  110. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
  111. iv_name = 'BT116H_SRVO/CUGSCMCuCo'
  112. iv_target_node_name = 'ATTRIBUTES'
  113. iv_node_2_bind = 'ATTRIBUTES' ).
  114.  
  115. * bind parent node for locking
  116. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  117. iv_target_node_name = 'BTADMINH' " name of component controller node
  118. iv_node_2_bind = 'PARENTNODE' ). " name of usage interface node
  119.  
  120. WHEN 'CUGSSurvey'.
  121.  
  122. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  123. iv_target_node_name = 'BTADMINH'
  124. iv_node_2_bind = 'ADMINH' ).
  125.  
  126. iv_usage->bind_context_node(
  127. iv_controller_type = cl_bsp_wd_controller=>co_type_custom
  128. iv_target_node_name = 'SURVEYVIEWTITLE'
  129. iv_name = 'BT116H_SRVO/CUGSSurveyCuCo'
  130. iv_node_2_bind = 'SURVEYVIEWTITLE' ).
  131.  
  132. WHEN 'CUBTPayments'.
  133. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  134. iv_target_node_name = 'BTORDER'
  135. iv_node_2_bind = 'BTORDER' ).
  136. WHEN 'CUGSPrices'.
  137.  
  138. get_custom_controller( 'BT116H_SRVO/CUGSPricesCuCo' ).
  139.  
  140. * bind parent node
  141. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
  142. iv_name = 'BT116H_SRVO/CUGSPricesCuCo'
  143. iv_target_node_name = 'BTADMINH' " name of component controller node
  144. iv_node_2_bind = 'PARENTNODE' ). " name of usage interface node
  145.  
  146. * prepare for display of price totals of header
  147. lr_component_usage = me->get_component_usage( iv_usage->usage_name ).
  148. lr_context_node = lr_component_usage->get_context_node( lc_node_name_totals ).
  149. lr_property_access = lr_context_node->collection_wrapper->get_first( ).
  150. lr_property_access->set_property_as_string( iv_attr_name = lc_komp_name_rel
  151. iv_value = lc_rel_name_cumulat ).
  152. lr_property_access->set_property_as_string( iv_attr_name = lc_komp_name_total
  153. iv_value = lc_komp_name_cost ).
  154.  
  155. * Private Notes
  156. WHEN 'CUPrivNote'.
  157. CALL METHOD iv_usage->bind_context_node
  158. EXPORTING
  159. iv_controller_type = cl_bsp_wd_controller=>co_type_custom
  160. iv_name = 'BT116H_SRVO/CUPrivNoteCuCo' "#EC NOTEXT
  161. iv_target_node_name = 'BOROBJECT' "#EC NOTEXT
  162. iv_node_2_bind = 'BOROBJECT'. "#EC NOTEXT
  163.  
  164. WHEN 'CUBTDocFlow'.
  165. get_custom_controller( 'BT116H_SRVO/CUBTDocFlowCuCo' ).
  166. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  167. iv_target_node_name = 'BTADMINH'
  168. iv_node_2_bind = 'PARENTNODE' ).
  169. WHEN 'CUBTSolution' OR 'CUBTEMail'.
  170. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  171. iv_target_node_name = 'BTADMINH'
  172. iv_node_2_bind = 'BTADMINH' ).
  173.  
  174. WHEN 'CUGSKnowArtDocFlow'.
  175. get_custom_controller( 'BT116H_SRVO/CUGSDocFlowCuCo' ).
  176. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  177. iv_target_node_name = 'BTADMINH'
  178. iv_node_2_bind = 'PARENTNODE' ).
  179. WHEN 'CUBTCategories'.
  180. get_custom_controller( 'BT116H_SRVO/CUBTCategoriesCuCo' ).
  181. * bind payment cards
  182. WHEN 'CUBTPaycards'.
  183. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  184. iv_target_node_name = 'BTORDER'
  185. iv_node_2_bind = 'BTORDER' ).
  186. WHEN 'CUBTFollowUp'.
  187. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  188. iv_target_node_name = 'BTADMINH'
  189. iv_node_2_bind = 'BTADMINH' ).
  190.  
  191. WHEN 'CUCaseLink'.
  192. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  193. iv_target_node_name = 'BTORDER'
  194. iv_node_2_bind = 'EXTLINKOBJ' ).
  195.  
  196. WHEN 'CUCustomer_H'.
  197. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  198. iv_target_node_name = 'BTADMINH'
  199. iv_node_2_bind = 'BTADMINH' ).
  200.  
  201. WHEN 'CUGSProductCatalog'. "#EC NOTEXT
  202. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  203. iv_target_node_name = 'BTITEMS' "#EC NOTEXT
  204. iv_node_2_bind = 'ITEMS' ). "#EC NOTEXT
  205. "ADD BY LY 20170927 肖宇,增加in process 接口日志block
  206. WHEN 'CUZHSI_PROCE'. "#EC NOTEXT
  207. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  208. iv_target_node_name = 'BTORDER' "#EC NOTEXT
  209. iv_node_2_bind = 'BTORDER' ). "#EC NOTEXT
  210. "ADD BY LY 20170927 肖宇,增加in process 接口日志block
  211. WHEN 'ZATTATCH'. "#EC NOTEXT
  212. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  213. iv_target_node_name = 'BTORDER' "#EC NOTEXT
  214. iv_node_2_bind = 'BTORDER' ). "#EC NOTEXT
  215.  
  216. WHEN 'BTSubject'.
  217. get_custom_controller( 'BT116H_SRVO/CuCoSubjectSet' ).
  218. **********************************************************************20161117-Begin
  219. *开发顾问:陈国光
  220. *业务顾问:龚慧文
  221. *1,传数据列表中增加一列字段,当点完Upload按钮后,
  222. *如果上传信息model NO\serial NO\product ID与原有信息不一致,给予黄色警告提示。
  223. *由操作者决定是否继续上传,不上传则修改上传模板
  224. *2 物流信息日志做成一个assignment block,服务工单、退机订单上可以显示每次物流状态等信息的更新记录;
  225. WHEN 'ZCUZSA_LOGI_INFO'. "#EC NOTEXT
  226. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  227. iv_target_node_name = 'BTADMINH' "#EC NOTEXT
  228. iv_node_2_bind = 'BTADMINH' ). "#EC NOTEXT
  229. **********************************************************************20161117-End
  230. **********************************************************************20170117-Begin
  231. *开发顾问:陈国光
  232. *业务顾问:张弛
  233. *FS《HOS_CRM_JP_06_周转机管理增强_V1.0_20170113》
  234. WHEN 'ZCUZSRV_JA_002'. "#EC NOTEXT
  235. iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
  236. iv_target_node_name = 'BTADMINH' "#EC NOTEXT
  237. iv_node_2_bind = 'BTADMINH' ). "#EC NOTEXT
  238. ********************************************************************** 20170117 -End
  239.  
  240. WHEN OTHERS.
  241. "Detect extension binding
  242. DATA: lv_binding_source TYPE string.
  243. lv_binding_source =
  244. cl_axt_assignment_block_binder=>get_binding_source_4_usage(
  245. iv_usage->usage_name ).
  246.  
  247. IF lv_binding_source IS NOT INITIAL.
  248. CASE lv_binding_source.
  249. WHEN 'HEADER'.
  250. "Bind Extension block
  251. CALL METHOD iv_usage->bind_context_node
  252. EXPORTING
  253. iv_controller_type = cl_bsp_wd_controller=>co_type_component
  254. iv_target_node_name = 'BTAdminH' " Your node
  255. iv_node_2_bind = 'PARENT'. " Always PARENT
  256.  
  257. ENDCASE.
  258. ELSE.
  259. "No extension table
  260. ENDIF.
  261. ENDCASE.
  262. ENDMETHOD.

在OverView Page中将组件视图添加进来,然后在配置中将组件放出,即可显示。

UI基础四:简单的assign block的更多相关文章

  1. amaze ui各个模块简单说明

    amaze ui各个模块简单说明 导航添加依据 http://amazeui.org/css/  下面内容属学习笔记,如有理解偏差和错误请留言相告,感谢!* =(官网这块写的很详细) 一.基本样式 1 ...

  2. iOS开发UI篇—Kvc简单介绍

    ios开发UI篇—Kvc简单介绍 一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observ ...

  3. Android UI基础之五大布局

    Android  UI基础之五大布局 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Andro ...

  4. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  5. day 68 Django基础四之模板系统

      Django基础四之模板系统   本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法   模板渲染的官方文档 关 ...

  6. day 54 Django基础四之模板系统

    Django基础四之模板系统   本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法   模板渲染的官方文档 关于模 ...

  7. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  8. 转发-UI基础教程 – 原生App切图的那些事儿

    UI基础教程 – 原生App切图的那些事儿 转发:http://www.shejidaren.com/app-ui-cut-and-slice.html 移动APP切图是UI设计必须学会的一项技能,切 ...

  9. iOS开发UI篇—Modal简单介绍

    iOS开发UI篇—Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展⽰出来 Modal的默认效果:新控制器从屏幕的 ...

随机推荐

  1. JavaScript 拥有动态类型

    字符串.数字.布尔.数组.对象.Null.Undefined JavaScript 拥有动态类型 JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: 实例 var x // x ...

  2. Kibana——日志可视化工具

    Kibana 基础入门 kibana产品介绍 Kibana :是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作.Kibana 提供搜索.查看和与存储在 Elasticsearch ...

  3. HANA 与 Oracle 12c哪一个更快

    本文来自于对Which is Faster HANA or Oracle 12C?的阅读笔记,列举了其中的要点.并不代表我的观点. 简介 SAP声称HANA是最快的数据库,因此SAP的新ERP系统S4 ...

  4. 【Java】【存储&作用域】

    [存储] 1. 寄存器.这是最快的保存群裕,因为它位于和其他所有保存方式不同的地方:处理器内部.然而,寄存器的数量有限,所以寄存器是根据需要由编译器分配.我们对此没有直接的控制权,也不可能在自己的程序 ...

  5. 网页中Div的打印

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. 虚拟现实外包公司—北京动点飞扬软件承接VR/AR软件、游戏外包

    欢迎通过以下方式联系北京动点飞扬软件外包业务咨询QQ:372900288 (全天在线)   咨询邮箱:SLteam@vip.qq.com   同时我们还承接 HTML5外包. kinect外包.Uni ...

  7. Redis的EXPIRE过期机制介绍

    概述在实际开发过程中经常会遇到一些有时效性数据,比如限时优惠活动,缓存或者验证码之类的.过了一段时间就需要删除这些数据.在关系型数据库中一般都要增加一个字段记录数据的到期时间,然后周期性地检查过期数据 ...

  8. Java+selenium 爬Boss直聘中职位信息,薪资水平和职位描述

      需要下载合适的selenium webdirver jar包和对应浏览器的驱动jar包 import org.openqa.selenium.By; import org.openqa.selen ...

  9. Data Structure 基本概念

    数据(data) 描述客观事物的数值 数据项(data item) 具有原子性,不可分割的最小单位 数据元素(data element)集合的个体,通常由很多数据组成 数据对象(data object ...

  10. 文件编码检测.ZC

    1.今天(20181101) 发现 g文件中的 xml头 和 文件编码不一致,最后发现 貌似是我搞错了,人家的文件 编码方式写的是对的. 我发现的现象是:XML里面写的是"GBK" ...