一个重定义on_new_focus的例子
2017-02-28 16:36
141 查看
CALL METHOD super->on_new_focus
EXPORTING
focus_bo = focus_bo.
CLEAR
a.
CLEAR b.
CHECK focus_bo IS BOUND.
CALL METHOD focus_bo->get_property_as_value
EXPORTING
iv_attr_name = 'a'
IMPORTING
ev_result = a.
DATA iv_guid TYPE crmt_object_guid.
CALL METHOD focus_bo->get_property_as_value
EXPORTING
iv_attr_name = 'GUID'
IMPORTING
ev_result = iv_guid.
CHECK iv_guid IS NOT INITIAL .
DATA lv_bol_core TYPE REF TO cl_crm_bol_core.
lv_bol_core = cl_crm_bol_core=>get_instance( ).
lv_bol_core->start_up( 'ONEORDER' ).
DATA lv_root TYPE REF TO cl_crm_bol_entity.
TRY.
CALL METHOD lv_bol_core->get_root_entity
EXPORTING
iv_object_name = 'BTOrder'
iv_object_guid = iv_guid
RECEIVING
rv_result = lv_root.
CATCH cx_crm_genil_model_error .
ENDTRY.
CHECK lv_root IS BOUND .
DATA lr_header TYPE REF TO cl_crm_bol_entity.
lr_header = lv_root->get_related_entity( iv_relation_name = 'BTOrderHeader' ).
CHECK lr_header IS BOUND .
DATA lr_datesset TYPE REF TO cl_crm_bol_entity.
lr_datesset = lr_header->get_related_entity( iv_relation_name = 'BTHeaderDatesSet' ).
CHECK lr_datesset IS BOUND .
DATA lr_datesall TYPE REF TO if_bol_entity_col.
lr_datesall = lr_datesset->get_related_entities( iv_relation_name = 'BTDatesAll' ).
CHECK lr_datesall IS BOUND.
DATA lr_iterator TYPE REF TO if_bol_entity_col_iterator.
DATA lr_property_access TYPE REF TO if_bol_bo_property_access.
DATA ls_date TYPE crmst_date_btil.
lr_iterator ?= lr_datesall->get_iterator( ).
CHECK lr_iterator IS BOUND.
lr_property_access ?= lr_iterator->get_first( ).
CHECK lr_property_access IS BOUND.
CALL METHOD lr_property_access->get_properties
IMPORTING
es_attributes = ls_date.
IF ls_date-appt_type = 'Z00000001'.
CONVERT TIME STAMP ls_date-timestamp_from TIME ZONE ls_date-timezone_from INTO DATE b.
ENDIF.
WHILE lr_property_access IS BOUND.
CALL METHOD lr_property_access->get_properties
IMPORTING
es_attributes = ls_date.
IF ls_date-appt_type = 'Z00000001'.
CONVERT TIME STAMP ls_date-timestamp_from TIME ZONE ls_date-timezone_from INTO DATE b.
ENDIF.
lr_property_access ?= lr_iterator->get_next( ).
ENDWHILE.
EXPORTING
focus_bo = focus_bo.
CLEAR
a.
CLEAR b.
CHECK focus_bo IS BOUND.
CALL METHOD focus_bo->get_property_as_value
EXPORTING
iv_attr_name = 'a'
IMPORTING
ev_result = a.
DATA iv_guid TYPE crmt_object_guid.
CALL METHOD focus_bo->get_property_as_value
EXPORTING
iv_attr_name = 'GUID'
IMPORTING
ev_result = iv_guid.
CHECK iv_guid IS NOT INITIAL .
DATA lv_bol_core TYPE REF TO cl_crm_bol_core.
lv_bol_core = cl_crm_bol_core=>get_instance( ).
lv_bol_core->start_up( 'ONEORDER' ).
DATA lv_root TYPE REF TO cl_crm_bol_entity.
TRY.
CALL METHOD lv_bol_core->get_root_entity
EXPORTING
iv_object_name = 'BTOrder'
iv_object_guid = iv_guid
RECEIVING
rv_result = lv_root.
CATCH cx_crm_genil_model_error .
ENDTRY.
CHECK lv_root IS BOUND .
DATA lr_header TYPE REF TO cl_crm_bol_entity.
lr_header = lv_root->get_related_entity( iv_relation_name = 'BTOrderHeader' ).
CHECK lr_header IS BOUND .
DATA lr_datesset TYPE REF TO cl_crm_bol_entity.
lr_datesset = lr_header->get_related_entity( iv_relation_name = 'BTHeaderDatesSet' ).
CHECK lr_datesset IS BOUND .
DATA lr_datesall TYPE REF TO if_bol_entity_col.
lr_datesall = lr_datesset->get_related_entities( iv_relation_name = 'BTDatesAll' ).
CHECK lr_datesall IS BOUND.
DATA lr_iterator TYPE REF TO if_bol_entity_col_iterator.
DATA lr_property_access TYPE REF TO if_bol_bo_property_access.
DATA ls_date TYPE crmst_date_btil.
lr_iterator ?= lr_datesall->get_iterator( ).
CHECK lr_iterator IS BOUND.
lr_property_access ?= lr_iterator->get_first( ).
CHECK lr_property_access IS BOUND.
CALL METHOD lr_property_access->get_properties
IMPORTING
es_attributes = ls_date.
IF ls_date-appt_type = 'Z00000001'.
CONVERT TIME STAMP ls_date-timestamp_from TIME ZONE ls_date-timezone_from INTO DATE b.
ENDIF.
WHILE lr_property_access IS BOUND.
CALL METHOD lr_property_access->get_properties
IMPORTING
es_attributes = ls_date.
IF ls_date-appt_type = 'Z00000001'.
CONVERT TIME STAMP ls_date-timestamp_from TIME ZONE ls_date-timezone_from INTO DATE b.
ENDIF.
lr_property_access ?= lr_iterator->get_next( ).
ENDWHILE.
相关文章推荐
- typedef用于函数定义的一个例子
- 时间比较问题 举一个简单例子说明:比如一个论坛对当天发表的贴子用new图片标记一下
- C++Primer第四版13.5.1. 定义智能指针类的例子被new蒙蔽_BLOCK_TYPE_IS_VALID
- 定义一个继承层次的例子-Shape类Circle类的定义
- 对new functionName()定义一个函数的理解
- PHP定义一个类,设置属性并且使用的例子
- onWindowFocusChanged (boolean hasWindowFocus) 一个很重要的回调函数,执行后才能获取到view的width等属性
- java继承,多态方面的一个问题,定义一个父类对象,用子类new
- c++中的new操作符定位用法(placement new) 的一个例子
- 定义一个特化的模板类并实现四则运算的重载的例子
- 定义一个带边框的宽度可调的小页环境 \newenvironment
- C语言技巧--在结构体中使用函数例子(定义一个指向函数的指针)
- Android学习札记36:一个关于onSaveInstanceState ()方法的例子
- 一个简单的javascript类定义例子
- 定义一个返回结果类型的类[原创] [小例子]
- [JavaScript]类之一---一个简单的javascript类定义例子
- 一个简单的javascript类定义例子
- 用一个闭包定义对象的属性的例子: JavaScript函数重载
- java关于new出一个对象的例子
- onWindowFocusChanged (boolean hasWindowFocus) 一个很重要的回调函数,执行后才能获取到view的width等属性