UI基础四:简单的assign block
经常会有需求让在标准的order加个assign block,那就来简单说一下:
1.创建assign block组件ZXXXXXX
2.添加BTORDER节点和GUID属性
3.创建表视图(可配置,根据情况是否按钮),在表的初始化中DO_INIT_CONTEXT或者DO_PREPARE_OUTPUT中根据GUID带出block信息
- METHOD do_init_context.
- DATA:gr_order TYPE REF TO if_bol_bo_property_access,
- gw_order TYPE crmst_guid_btil,
- lr_col TYPE REF TO if_bol_bo_col,
- lr_valuenode TYPE REF TO cl_bsp_wd_value_node,
- gt_log TYPE TABLE OF zcrm_proce_log,
- gw_log LIKE LINE OF gt_log,
- gt_text TYPE TABLE OF zdelay_reason,
- gw_text LIKE LINE OF gt_text,
- gw_struct TYPE zcrms0046,
- lr_line TYPE REF TO zcrms0046.
- REFRESH:gt_log.
- CLEAR:gw_log.
- super->do_init_context( ).
- gr_order = me->typed_context->btorder->collection_wrapper->get_current( ).
- IF gr_order IS BOUND.
- gr_order->get_properties(
- IMPORTING
- es_attributes = gw_order ).
- SELECT * INTO TABLE gt_log FROM zcrm_proce_log WHERE guid = gw_order-crm_guid.
- SELECT * INTO TABLE gt_text FROM zdelay_reason WHERE spras = sy-langu.
- SORT gt_text BY estat.
- ENDIF.
- * SELECT * INTO TABLE gt_log FROM zcrm_proce_log WHERE guid = gw_order-crm_guid.
- CREATE OBJECT lr_col TYPE cl_crm_bol_bo_col.
- LOOP AT gt_log INTO gw_log.
- MOVE-CORRESPONDING gw_log TO gw_struct.
- READ TABLE gt_text INTO gw_text WITH KEY estat = gw_log-zzdlyrsn BINARY SEARCH.
- IF sy-subrc = .
- gw_struct-in_pro_des = gw_text-text.
- ENDIF.
- CREATE DATA lr_line.
- CREATE OBJECT lr_valuenode
- EXPORTING
- iv_data_ref = lr_line.
- lr_valuenode->set_properties( gw_struct ).
- lr_col->add( lr_valuenode ).
- ENDLOOP.
- me->typed_context->proce->collection_wrapper->set_collection( lr_col ).
- ENDMETHOD.
将组件添加InterfaceView 并把BTorder节点添加。
将组件添加到BT116H_SRVO的ComponentUsage
在BT116H_SRVO的组件控制器的WD_USAGE_INITIALIZE的方法中添加GUID节点的映射:
- METHOD wd_usage_initialize.
- CONSTANTS:
- lc_node_name_totals TYPE seocmpname VALUE 'ADDPARENTTOTALS',
- lc_komp_name_rel TYPE name_komp VALUE 'PARENTTOTALREL1',
- lc_komp_name_total TYPE name_komp VALUE 'PARENTTOTAL1',
- lc_rel_name_cumulat TYPE string VALUE 'BTHeaderCumulatExt',
- lc_komp_name_cost TYPE string VALUE 'COST_AMOUNT'.
- DATA:
- lr_component_usage TYPE REF TO if_bsp_wd_component_usage,
- lr_context_node TYPE REF TO cl_bsp_wd_context_node,
- lr_property_access TYPE REF TO if_bol_bo_property_access.
- CHECK iv_usage IS BOUND.
- * late instantiation of CuCos for
- * component usages
- CASE iv_usage->usage_name.
- WHEN 'CUBTQualif'.
- get_custom_controller( 'BT116H_SRVO/CUBTQualifCuCo' ).
- WHEN 'CUBTRefObj'.
- get_custom_controller( 'BT116H_SRVO/CUBTRefObjCuCo' ).
- WHEN 'CUBTOrgSet'.
- get_custom_controller( 'BT116H_SRVO/CUBTOrgSetCuCo' ).
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'PARENTNODE' ).
- WHEN 'CUBTAmntAll'.
- get_custom_controller( 'BT116H_SRVO/CUBTAmntAllCuCo' ).
- WHEN 'CUBTDates'.
- get_custom_controller( 'BT116H_SRVO/CUBTDatesCuCo' ).
- WHEN 'CUGSActions'.
- get_custom_controller( 'BT116H_SRVO/CUGSActionsCuCo' ).
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'PARENTNODE' ).
- WHEN 'CUGSText'.
- get_custom_controller( 'BT116H_SRVO/CUGSTextCuCo' ).
- WHEN 'CUBTAcAssign'.
- get_custom_controller( 'BT116H_SRVO/CUBTAcAssignCuCo' ).
- WHEN 'CUBTStatusUS'.
- get_custom_controller( 'BT116H_SRVO/CUBTStatusUSCuCo' ).
- WHEN 'CUBTPartner'.
- get_custom_controller( 'BT116H_SRVO/CUBTPartnerCuCo' ).
- WHEN 'CUBTChangeHistory'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'BTADMINH' ).
- WHEN 'CUBTShipping'.
- * bind shipping usage
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTORDER' " name of component controller node
- iv_node_2_bind = 'BTORDER' ). " name of usage interface node
- WHEN 'CUBTCounter'.
- * bind counter usage
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH' " name of component controller node
- iv_node_2_bind = 'BTADMIN' ). " name of usage interface node
- * custom controller needed for counter link proposal
- get_custom_controller( 'BT116H_SRVO/CUBTCounterCuCo' ).
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
- iv_target_node_name = 'PROPOSALCOMP' " name of custom controller node
- iv_name = 'BT116H_SRVO/CUBTCounterCuCo'
- iv_node_2_bind = 'PROPOSALCOMP' ). " name of usage interface node
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
- iv_target_node_name = 'PROPOSALPROD' " name of custom controller node
- iv_name = 'BT116H_SRVO/CUBTCounterCuCo'
- iv_node_2_bind = 'PROPOSALPROD' ). " name of usage interface node
- WHEN 'CUBTServiceItem'
- OR 'CUBTServicePartItem'
- OR 'CUBTExpenseItem'
- OR 'CUBTToolItem'
- OR 'CUBTSalesItem'.
- * bind single item component usages
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINI'
- iv_node_2_bind = 'BTADMINI' ).
- WHEN 'CUBTSalesQuotItem'.
- * special binding for sales quotation item
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINI'
- iv_node_2_bind = 'BTADMINI' ).
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTITEMS'
- iv_node_2_bind = 'BTITEMS' ).
- WHEN 'CUItemTable' OR 'CUItemTableHeader'.
- * bind item table component usages
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTITEMS'
- iv_node_2_bind = 'BTITEMS' ).
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINI'
- iv_node_2_bind = 'BTADMINI' ).
- WHEN 'CUGSCMOverview' OR 'CUGSCMEdit'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
- iv_name = 'BT116H_SRVO/CUGSCMCuCo'
- iv_target_node_name = 'CMBO'
- iv_node_2_bind = 'CMBUSOBJ' ).
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
- iv_name = 'BT116H_SRVO/CUGSCMCuCo'
- iv_target_node_name = 'ATTRIBUTES'
- iv_node_2_bind = 'ATTRIBUTES' ).
- * bind parent node for locking
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH' " name of component controller node
- iv_node_2_bind = 'PARENTNODE' ). " name of usage interface node
- WHEN 'CUGSSurvey'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'ADMINH' ).
- iv_usage->bind_context_node(
- iv_controller_type = cl_bsp_wd_controller=>co_type_custom
- iv_target_node_name = 'SURVEYVIEWTITLE'
- iv_name = 'BT116H_SRVO/CUGSSurveyCuCo'
- iv_node_2_bind = 'SURVEYVIEWTITLE' ).
- WHEN 'CUBTPayments'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTORDER'
- iv_node_2_bind = 'BTORDER' ).
- WHEN 'CUGSPrices'.
- get_custom_controller( 'BT116H_SRVO/CUGSPricesCuCo' ).
- * bind parent node
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_custom
- iv_name = 'BT116H_SRVO/CUGSPricesCuCo'
- iv_target_node_name = 'BTADMINH' " name of component controller node
- iv_node_2_bind = 'PARENTNODE' ). " name of usage interface node
- * prepare for display of price totals of header
- lr_component_usage = me->get_component_usage( iv_usage->usage_name ).
- lr_context_node = lr_component_usage->get_context_node( lc_node_name_totals ).
- lr_property_access = lr_context_node->collection_wrapper->get_first( ).
- lr_property_access->set_property_as_string( iv_attr_name = lc_komp_name_rel
- iv_value = lc_rel_name_cumulat ).
- lr_property_access->set_property_as_string( iv_attr_name = lc_komp_name_total
- iv_value = lc_komp_name_cost ).
- * Private Notes
- WHEN 'CUPrivNote'.
- CALL METHOD iv_usage->bind_context_node
- EXPORTING
- iv_controller_type = cl_bsp_wd_controller=>co_type_custom
- iv_name = 'BT116H_SRVO/CUPrivNoteCuCo' "#EC NOTEXT
- iv_target_node_name = 'BOROBJECT' "#EC NOTEXT
- iv_node_2_bind = 'BOROBJECT'. "#EC NOTEXT
- WHEN 'CUBTDocFlow'.
- get_custom_controller( 'BT116H_SRVO/CUBTDocFlowCuCo' ).
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'PARENTNODE' ).
- WHEN 'CUBTSolution' OR 'CUBTEMail'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'BTADMINH' ).
- WHEN 'CUGSKnowArtDocFlow'.
- get_custom_controller( 'BT116H_SRVO/CUGSDocFlowCuCo' ).
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'PARENTNODE' ).
- WHEN 'CUBTCategories'.
- get_custom_controller( 'BT116H_SRVO/CUBTCategoriesCuCo' ).
- * bind payment cards
- WHEN 'CUBTPaycards'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTORDER'
- iv_node_2_bind = 'BTORDER' ).
- WHEN 'CUBTFollowUp'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'BTADMINH' ).
- WHEN 'CUCaseLink'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTORDER'
- iv_node_2_bind = 'EXTLINKOBJ' ).
- WHEN 'CUCustomer_H'.
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH'
- iv_node_2_bind = 'BTADMINH' ).
- WHEN 'CUGSProductCatalog'. "#EC NOTEXT
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTITEMS' "#EC NOTEXT
- iv_node_2_bind = 'ITEMS' ). "#EC NOTEXT
- "ADD BY LY 20170927 肖宇,增加in process 接口日志block
- WHEN 'CUZHSI_PROCE'. "#EC NOTEXT
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTORDER' "#EC NOTEXT
- iv_node_2_bind = 'BTORDER' ). "#EC NOTEXT
- "ADD BY LY 20170927 肖宇,增加in process 接口日志block
- WHEN 'ZATTATCH'. "#EC NOTEXT
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTORDER' "#EC NOTEXT
- iv_node_2_bind = 'BTORDER' ). "#EC NOTEXT
- WHEN 'BTSubject'.
- get_custom_controller( 'BT116H_SRVO/CuCoSubjectSet' ).
- **********************************************************************20161117-Begin
- *开发顾问:陈国光
- *业务顾问:龚慧文
- *1,传数据列表中增加一列字段,当点完Upload按钮后,
- *如果上传信息model NO\serial NO\product ID与原有信息不一致,给予黄色警告提示。
- *由操作者决定是否继续上传,不上传则修改上传模板
- *2、 物流信息日志做成一个assignment block,服务工单、退机订单上可以显示每次物流状态等信息的更新记录;
- WHEN 'ZCUZSA_LOGI_INFO'. "#EC NOTEXT
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH' "#EC NOTEXT
- iv_node_2_bind = 'BTADMINH' ). "#EC NOTEXT
- **********************************************************************20161117-End
- **********************************************************************20170117-Begin
- *开发顾问:陈国光
- *业务顾问:张弛
- *FS《HOS_CRM_JP_06_周转机管理增强_V1.0_20170113》
- WHEN 'ZCUZSRV_JA_002'. "#EC NOTEXT
- iv_usage->bind_context_node( iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTADMINH' "#EC NOTEXT
- iv_node_2_bind = 'BTADMINH' ). "#EC NOTEXT
- ********************************************************************** 20170117 -End
- WHEN OTHERS.
- "Detect extension binding
- DATA: lv_binding_source TYPE string.
- lv_binding_source =
- cl_axt_assignment_block_binder=>get_binding_source_4_usage(
- iv_usage->usage_name ).
- IF lv_binding_source IS NOT INITIAL.
- CASE lv_binding_source.
- WHEN 'HEADER'.
- "Bind Extension block
- CALL METHOD iv_usage->bind_context_node
- EXPORTING
- iv_controller_type = cl_bsp_wd_controller=>co_type_component
- iv_target_node_name = 'BTAdminH' " Your node
- iv_node_2_bind = 'PARENT'. " Always PARENT
- ENDCASE.
- ELSE.
- "No extension table
- ENDIF.
- ENDCASE.
- ENDMETHOD.
在OverView Page中将组件视图添加进来,然后在配置中将组件放出,即可显示。
UI基础四:简单的assign block的更多相关文章
- amaze ui各个模块简单说明
amaze ui各个模块简单说明 导航添加依据 http://amazeui.org/css/ 下面内容属学习笔记,如有理解偏差和错误请留言相告,感谢!* =(官网这块写的很详细) 一.基本样式 1 ...
- iOS开发UI篇—Kvc简单介绍
ios开发UI篇—Kvc简单介绍 一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observ ...
- Android UI基础之五大布局
Android UI基础之五大布局 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Andro ...
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- day 68 Django基础四之模板系统
Django基础四之模板系统 本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法 模板渲染的官方文档 关 ...
- day 54 Django基础四之模板系统
Django基础四之模板系统 本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法 模板渲染的官方文档 关于模 ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- 转发-UI基础教程 – 原生App切图的那些事儿
UI基础教程 – 原生App切图的那些事儿 转发:http://www.shejidaren.com/app-ui-cut-and-slice.html 移动APP切图是UI设计必须学会的一项技能,切 ...
- iOS开发UI篇—Modal简单介绍
iOS开发UI篇—Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展⽰出来 Modal的默认效果:新控制器从屏幕的 ...
随机推荐
- JavaScript 拥有动态类型
字符串.数字.布尔.数组.对象.Null.Undefined JavaScript 拥有动态类型 JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: 实例 var x // x ...
- Kibana——日志可视化工具
Kibana 基础入门 kibana产品介绍 Kibana :是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作.Kibana 提供搜索.查看和与存储在 Elasticsearch ...
- HANA 与 Oracle 12c哪一个更快
本文来自于对Which is Faster HANA or Oracle 12C?的阅读笔记,列举了其中的要点.并不代表我的观点. 简介 SAP声称HANA是最快的数据库,因此SAP的新ERP系统S4 ...
- 【Java】【存储&作用域】
[存储] 1. 寄存器.这是最快的保存群裕,因为它位于和其他所有保存方式不同的地方:处理器内部.然而,寄存器的数量有限,所以寄存器是根据需要由编译器分配.我们对此没有直接的控制权,也不可能在自己的程序 ...
- 网页中Div的打印
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 虚拟现实外包公司—北京动点飞扬软件承接VR/AR软件、游戏外包
欢迎通过以下方式联系北京动点飞扬软件外包业务咨询QQ:372900288 (全天在线) 咨询邮箱:SLteam@vip.qq.com 同时我们还承接 HTML5外包. kinect外包.Uni ...
- Redis的EXPIRE过期机制介绍
概述在实际开发过程中经常会遇到一些有时效性数据,比如限时优惠活动,缓存或者验证码之类的.过了一段时间就需要删除这些数据.在关系型数据库中一般都要增加一个字段记录数据的到期时间,然后周期性地检查过期数据 ...
- Java+selenium 爬Boss直聘中职位信息,薪资水平和职位描述
需要下载合适的selenium webdirver jar包和对应浏览器的驱动jar包 import org.openqa.selenium.By; import org.openqa.selen ...
- Data Structure 基本概念
数据(data) 描述客观事物的数值 数据项(data item) 具有原子性,不可分割的最小单位 数据元素(data element)集合的个体,通常由很多数据组成 数据对象(data object ...
- 文件编码检测.ZC
1.今天(20181101) 发现 g文件中的 xml头 和 文件编码不一致,最后发现 貌似是我搞错了,人家的文件 编码方式写的是对的. 我发现的现象是:XML里面写的是"GBK" ...