版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、密件:仅供汉得公司内部使用HAND Enterprise Solutions Co., Ltd.33/33案例14:Table: Context Change History的使用总结基本信息:版本0.9创建时间2011年6月12日作者李良SAP版本EHP4 FOR SAP ERP 6.0 / NW7.01文档状态草稿最后修改者(某某)最后修改时间 TIME yyyy年M月d日 2011年6月19日关键字(关于案例内容的关键字)修改记录:版本版本作者创建日期备注0.9李良2011年06月09日创建 模板说明 尽量全部使用中文,特殊的专业术语表明英文原版内容,方便公司内部交流。认真填写文档记录和
2、关键字,使得文档内容一目了然。根据各个案例的不同内容替换掉括号里面的内容。文档的每一部分尽量填写完整,原则是初学者能够看的懂,方便公司用此文档培训。图文并茂,讲解清楚明白。目录 TOC o 1-3 h z u HYPERLINK l _Toc296295280 基本信息: PAGEREF _Toc296295280 h 1 HYPERLINK l _Toc296295281 修改记录: PAGEREF _Toc296295281 h 1 HYPERLINK l _Toc296295282 一、场景描述 PAGEREF _Toc296295282 h 3 HYPERLINK l _Toc2962
3、95283 二、应用范围 PAGEREF _Toc296295283 h 3 HYPERLINK l _Toc296295284 三、关键知识 PAGEREF _Toc296295284 h 3 HYPERLINK l _Toc296295285 四、开发步骤补充 PAGEREF _Toc296295285 h 3 HYPERLINK l _Toc296295286 1.Context PAGEREF _Toc296295286 h 3 HYPERLINK l _Toc296295287 2.UI PAGEREF _Toc296295287 h 6 HYPERLINK l _Toc296295
4、288 3.Init初始数据 PAGEREF _Toc296295288 h 19 HYPERLINK l _Toc296295289 4.实现提取change log的方法 PAGEREF _Toc296295289 h 21 HYPERLINK l _Toc296295290 5.Layout: 实现 编辑与不可编辑 PAGEREF _Toc296295290 h 23 HYPERLINK l _Toc296295291 6.Layout: 实现 append 与delete 一条record PAGEREF _Toc296295291 h 24 HYPERLINK l _Toc29629
5、5292 7.Layout: 实现 stop log, continue log, clear log PAGEREF _Toc296295292 h 25 HYPERLINK l _Toc296295293 8.注意 PAGEREF _Toc296295293 h 25 HYPERLINK l _Toc296295294 9.效果 PAGEREF _Toc296295294 h 25 HYPERLINK l _Toc296295295 五、要点说明 PAGEREF _Toc296295295 h 33 HYPERLINK l _Toc296295296 六、深入学习资料链接 PAGEREF
6、_Toc296295296 h 33 HYPERLINK l _Toc296295297 七、相似实例补充 PAGEREF _Toc296295297 h 33场景描述(该案例的目的,案例所假设的业务场景描述。)应用范围(你认为该案例所涉及的内容可以应用于哪些业务场景,可用来解决哪些业务问题?所列业务应用场景越多越清楚明白越好)关键知识(案例所涉及的知识详细讲解。如讲Table:Scroll的案例时,需要将关于Table的与scroll相关的属性和事件作详细的说明,必要时,可以展示一些简单的实验加以说明。另外还有scroll功能实现的要素等。)开发步骤补充Context参照结构sflight创
7、建节点FLIGHTS,包含属性CARRID、CONNID、FLDATE、PRICE、CURRENCY、PLANETYPE、SEATSMAX、SEATSOCC、PAYMENTSUM。删除FLIGHTS节点的Dictionary structure的值。在FLIGHTS节点下添加两个属性,CELL_VARIANT和EXPENDED。创建节点CONTEXT_CHANGES和CONTEXT_CHANGES_SUM。属性与数据类型对照表属性名数据类型默认值CONTEXT_CHANGESCardinality:0.nSelection:0.1NODE_NAMESTRINGSEQUENCEINODE_PAT
8、HSTRINGCHANGE_KINDSTRINGELEMENT_INDEXIATTRIBUTE_NAMESTRINGOLD_VALUESTRINGNEW_VALUESTRINGCONTEXT_CHANGES_SUMCardinality:0.nSelection:0.1NODE_NAMESTRINGSEQUENCEINODE_PATHSTRINGCHANGE_KINDSTRINGELEMENT_INDEXIATTRIBUTE_NAMESTRINGOLD_VALUESTRINGNEW_VALUESTRINGUI创建三个Table,分别于Context的FLIGHTS、CONTEXT_CHANGE
9、S和CONTEXT_CHANGES_SUM。在Table的TABLE_PRICE列下面创建两个CellVariants,分别是TABLE_PRICE_CV_SUM_CONNID和CV_PRICE。在TABLE_PRICE_CV_SUM_CONNID下创建一个名为TV_PRICE的TextView。在CV_PRICE下创建一个名为IP_PRICE的InputField。在TABLE_PAYMENTSUM列下面创建两个类似的CellVariants,分别是TABLE_SUMM_CV_SUM_CONNID和CV_PAYMENTSUM。在TABLE_SUMM_CV_SUM_CONNID下创建一个名为T
10、V_PAYMENTSUM的TextView和一个名为IP_PAYMENTSUM的InputField。在Table下创建一个Table ToolBar。并在上个例子的基础上添加EDIT和NOTEDIT两个按钮。在Table2下创建一个Table ToolBar。并在其下创建一个名为BUTTONCHOICE的ToolBarButtonChoice和一个名为CONDENSE的ToolBarButton。Init初始数据在Component Controller的Attribute里,添加一个新属性。methodWDDOINIT.DATA:lt_flightsTYPEig_componentcont
11、roller=elements_flights,lo_nd_flightsTYPEREFTOif_wd_context_node,lt_sflightTYPETABLEOFsflight,ls_sflightTYPEsflight,ls_attributeTYPEig_componentcontroller=element_flights,ls_sum_connidTYPEwd_this-element_flights.*Readalltheflightdata*cl_net310_flightmodel=read_flights(IMPORTINGe_flights=lt_sflight).
12、select*intocorrespondingfieldsoftablelt_sflightfromsflightupto100rows.*Sumupnummericfieldsfor*eachconnection(ls_sum_connid)LOOPATlt_sflightINTOls_sflight.*DefineinitialfieldvaluesIFsy-tabix=1.ls_sum_connid-carrid=ls_sflight-carrid.ls_sum_connid-connid=ls_sflight-connid.ls_sum_connid-currency=ls_sfli
13、ght-currency.*setthecellvarianttoeverycolumnls_sum_connid-cell_variant=SUM.ENDIF.*Changeofconnection-addlineforlastconnectionand*resetcountersIFls_sflight-connidls_sum_connid-connidORls_sflight-carridls_sum_connid-carrid.*insertthesubtotalrecordtothetablels_sum_connid-expended=X.INSERTls_sum_connidI
14、NTOTABLElt_flights.CLEARls_sum_connid.ls_sum_connid-carrid=ls_sflight-carrid.ls_sum_connid-connid=ls_sflight-connid.ls_sum_connid-currency=ls_sflight-currency.*setthecellvarianttoeverycolumnls_sum_connid-cell_variant=SUM.ENDIF.ls_sum_connid-price=ls_sum_connid-price+ls_sflight-price.ls_sum_connid-se
15、atsmax=ls_sum_connid-seatsmax+ls_sflight-seatsmax.ls_sum_connid-seatsocc=ls_sum_connid-seatsocc+ls_sflight-seatsocc.ls_sum_connid-paymentsum=ls_sum_connid-paymentsum+ls_sflight-paymentsum.MOVE-CORRESPONDINGls_sflightTOls_attribute.*appendthenormalrecordINSERTls_attributeINTOTABLElt_flights.ENDLOOP.*
16、Endoftable:Summup*LastconnectionsumINSERTls_sum_connidINTOTABLElt_flights.*bindthetablelo_nd_flights=wd_context-get_child_node(wd_this-wdctx_flights).lo_nd_flights-bind_table(lt_flights).*Saveasoneglobaltable*wd_this-gt_flights=lt_flights.*这里很重要,初始时,要enablechangelog功能*getthechangelogofcontextwd_this
17、-go_context=wd_context-get_context().wd_this-go_context-enable_context_change_log().endmethod.实现提取change log的方法这里,很重要,我们把 提取change log的方法放在 before action navigation里,因为在这里面,我们还可以进行 check user input的操作,如果放在其他hook method里,不能满足。methodWDDOBEFORENAVIGATION.*Getdatachangedbyuserfromcontextchangelogtodispl
18、aythemwd_this-extract_changed_data().*here,youcanexecutesomechecktotheuserinputdataendmethod.提取change log方法。在ComponentController添加一个新方法。METHODextract_changed_data.DATAlt_change_log_listTYPEwdr_context_change_list.DATAls_change_logTYPEwdr_context_change.DATAlt_context_changesTYPEwd_this-elements_cont
19、ext_changes.DATAls_context_changesTYPEwd_this-element_context_changes.DATAlo_nd_context_changesTYPEREFTOif_wd_context_node.FIELD-SYMBOLSTYPEANY.FIELD-SYMBOLSTYPEANY.*Getactualchangeslt_change_log_list=wd_this-go_context-get_context_change_log(and_reset=abap_false).*Buildlistofactualcontextchangelogc
20、ontenttobedisplayedbyviewLOOPATlt_change_log_listINTOls_change_logWHEREattribute_nameISNOTINITIAL.ls_context_changes-node_name=ls_change_log-node_name.ls_context_changes-sequence=ls_change_log-sequence.ls_context_changes-node_path=ls_change_log-node_path.ls_context_changes-change_kind=ls_change_log-
21、change_kind.ls_context_changes-element_index=ls_change_log-element_index.ls_context_changes-attribute_name=ls_change_log-attribute_name.*Datavaluesareprovidedasgenericdatareferences*ls_context_changes-old_value/new_value:string类型ASSIGNls_change_log-old_value-*TO.ASSIGNls_change_log-new_value-*TO.ls_
22、context_changes-old_value=.ls_context_changes-new_value=.*Saveactualuserinputincontext-willbedisplayedINSERTls_context_changesINTOTABLElt_context_changes.ENDLOOP.*Storedataincontextlo_nd_context_changes=wd_context-get_child_node(wd_this-wdctx_context_changes).lo_nd_context_changes-bind_table(lt_cont
23、ext_changes).ENDMETHOD.Layout: 实现 编辑与不可编辑可编辑(点击 edit):methodONACTIONEDIT.DATAlo_nd_flightsTYPEREFTOif_wd_context_node.DATAlo_el_flightsTYPEREFTOif_wd_context_element.DATAlt_el_flightsTYPEwdr_context_element_set.DATAls_flightsTYPEwd_this-element_flights.*nodelo_nd_flights=wd_context-get_child_node(na
24、me=wd_this-wdctx_flights).*selectedelementslt_el_flights=lo_nd_flights-get_selected_elements(including_lead_selection=abap_false).*setthecell-variantasEDITLOOPATlt_el_flightsINTOlo_el_flights.lo_el_flights-set_attribute(name=CELL_VARIANTvalue=EDIT).lo_el_flights-set_selected(abap_false).ENDLOOP.*don
25、tsettheleadselectionlo_nd_flights-set_lead_selection_index(-1).endmethod.不可编辑(点击 not edit):METHODonactionnot_edit.DATAlo_nd_flightsTYPEREFTOif_wd_context_node.DATAlo_el_flightsTYPEREFTOif_wd_context_element.DATAlt_el_flightsTYPEwdr_context_element_set.DATAls_flightsTYPEwd_this-element_flights.*setth
26、ecellvariantasinitiallo_nd_flights=wd_context-get_child_node(name=wd_this-wdctx_flights).lt_el_flights=lo_nd_flights-get_elements().LOOPATlt_el_flightsINTOlo_el_flights.lo_el_flights-set_attribute(name=CELL_VARIANTvalue=).ENDLOOP.ENDMETHOD.Layout: 实现 append 与delete 一条recordAppendmethodONACTIONAPPEND
27、_LINE.datalo_nd_flightstypereftoif_wd_context_node.datals_flightstypewd_this-element_flights.*extendcollectionbynewelementwithinitialattributevalueslo_nd_flights=wd_context-get_child_node(name=wd_this-wdctx_flights).ls_flights-cell_variant=EDIT.lo_nd_flights-bind_structure(new_item=ls_flightsset_ini
28、tial_elements=abap_false).endmethod.DeletemethodONACTIONDELETE_LINE.datalo_nd_flightstypereftoif_wd_context_node.datalo_el_flightstypereftoif_wd_context_element.datals_flightstypewd_this-element_flights.*deletetheitem-leadselectionhaslo_nd_flights=wd_context-get_child_node(name=wd_this-wdctx_flights).lo_el_flights=lo_nd_flights-get_element().iflo_el_flightsisbound.lo_n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关法律服务所律师工作计划例文
- 高二英语下整整学期教学计划
- 工作计划农业干部学习计划
- 春季幼儿总园学期工作计划范文
- 小学语文四年级教学工作计划表
- 任职目标2025年干部综合科个人写作目标计划
- 公司会计、财务工作计划文稿
- 《多基因病》课件
- 《蛋白质化学最终版》课件
- 《高血压病及其相关》课件
- 学会正当防卫课件
- 温室大棚改造施工方案及日光大棚设计方案
- 木质吸音板施工工艺
- 文华财经-半自动程序化交易使用指南101212
- 全国优质课大赛一等奖人教版高中地理必修一《土壤》精美赛课课件
- 2023北京市第一次高中学业水平合格性考试数学试卷真题(含答案详解)
- 产品合格证标签出厂合格证模板
- GA/T 2007-2022法庭科学气枪弹检验技术规范
- 《孔乙己》改编剧本
- 化工自动化控制仪表作业安全操作资格培训教材课件
- 绘画心理治疗专家讲座
评论
0/150
提交评论