wda積累案例14.table context change history的使用總結(jié)_第1頁
wda積累案例14.table context change history的使用總結(jié)_第2頁
wda積累案例14.table context change history的使用總結(jié)_第3頁
wda積累案例14.table context change history的使用總結(jié)_第4頁
wda積累案例14.table context change history的使用總結(jié)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、密件:僅供漢得公司內(nèi)部使用HAND Enterprise Solutions Co., Ltd.33/33案例14:Table: Context Change History的使用總結(jié)基本信息:版本0.9創(chuàng)建時間2011年6月12日作者李良SAP版本EHP4 FOR SAP ERP 6.0 / NW7.01文檔狀態(tài)草稿最后修改者(某某)最后修改時間 TIME yyyy年M月d日 2011年6月19日關(guān)鍵字(關(guān)于案例內(nèi)容的關(guān)鍵字)修改記錄:版本版本作者創(chuàng)建日期備注0.9李良2011年06月09日創(chuàng)建 模板說明 盡量全部使用中文,特殊的專業(yè)術(shù)語表明英文原版內(nèi)容,方便公司內(nèi)部交流。認(rèn)真填寫文檔記錄和

2、關(guān)鍵字,使得文檔內(nèi)容一目了然。根據(jù)各個案例的不同內(nèi)容替換掉括號里面的內(nèi)容。文檔的每一部分盡量填寫完整,原則是初學(xué)者能夠看的懂,方便公司用此文檔培訓(xùn)。圖文并茂,講解清楚明白。目錄 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 二、應(yīng)用范圍 PAGEREF _Toc296295283 h 3 HYPERLINK l _Toc296295284 三、關(guān)鍵知識 PAGEREF _Toc296295284 h 3 HYPERLINK l _Toc296295285 四、開發(fā)步驟補(bǔ)充 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初始數(shù)據(jù) PAGEREF _Toc296295288 h 19 HYPERLINK l _Toc296295289 4.實(shí)現(xiàn)提取change log的方法 PAGEREF _Toc296295289 h 21 HYPERLINK l _Toc296295290 5.Layout: 實(shí)現(xiàn) 編輯與不可編輯 PAGEREF _Toc296295290 h 23 HYPERLINK l _Toc296295291 6.Layout: 實(shí)現(xiàn) append 與delete 一條record PAGEREF _Toc296295291 h 24 HYPERLINK l _Toc29629

5、5292 7.Layout: 實(shí)現(xiàn) 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 五、要點(diǎn)說明 PAGEREF _Toc296295295 h 33 HYPERLINK l _Toc296295296 六、深入學(xué)習(xí)資料鏈接 PAGEREF

6、_Toc296295296 h 33 HYPERLINK l _Toc296295297 七、相似實(shí)例補(bǔ)充 PAGEREF _Toc296295297 h 33場景描述(該案例的目的,案例所假設(shè)的業(yè)務(wù)場景描述。)應(yīng)用范圍(你認(rèn)為該案例所涉及的內(nèi)容可以應(yīng)用于哪些業(yè)務(wù)場景,可用來解決哪些業(yè)務(wù)問題?所列業(yè)務(wù)應(yīng)用場景越多越清楚明白越好)關(guān)鍵知識(案例所涉及的知識詳細(xì)講解。如講Table:Scroll的案例時,需要將關(guān)于Table的與scroll相關(guān)的屬性和事件作詳細(xì)的說明,必要時,可以展示一些簡單的實(shí)驗(yàn)加以說明。另外還有scroll功能實(shí)現(xiàn)的要素等。)開發(fā)步驟補(bǔ)充Context參照結(jié)構(gòu)sflight創(chuàng)

7、建節(jié)點(diǎn)FLIGHTS,包含屬性CARRID、CONNID、FLDATE、PRICE、CURRENCY、PLANETYPE、SEATSMAX、SEATSOCC、PAYMENTSUM。刪除FLIGHTS節(jié)點(diǎn)的Dictionary structure的值。在FLIGHTS節(jié)點(diǎn)下添加兩個屬性,CELL_VARIANT和EXPENDED。創(chuàng)建節(jié)點(diǎn)CONTEXT_CHANGES和CONTEXT_CHANGES_SUM。屬性與數(shù)據(jù)類型對照表屬性名數(shù)據(jù)類型默認(rèn)值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創(chuàng)建三個Table,分別于Context的FLIGHTS、CONTEXT_CHANGE

9、S和CONTEXT_CHANGES_SUM。在Table的TABLE_PRICE列下面創(chuàng)建兩個CellVariants,分別是TABLE_PRICE_CV_SUM_CONNID和CV_PRICE。在TABLE_PRICE_CV_SUM_CONNID下創(chuàng)建一個名為TV_PRICE的TextView。在CV_PRICE下創(chuàng)建一個名為IP_PRICE的InputField。在TABLE_PAYMENTSUM列下面創(chuàng)建兩個類似的CellVariants,分別是TABLE_SUMM_CV_SUM_CONNID和CV_PAYMENTSUM。在TABLE_SUMM_CV_SUM_CONNID下創(chuàng)建一個名為T

10、V_PAYMENTSUM的TextView和一個名為IP_PAYMENTSUM的InputField。在Table下創(chuàng)建一個Table ToolBar。并在上個例子的基礎(chǔ)上添加EDIT和NOTEDIT兩個按鈕。在Table2下創(chuàng)建一個Table ToolBar。并在其下創(chuàng)建一個名為BUTTONCHOICE的ToolBarButtonChoice和一個名為CONDENSE的ToolBarButton。Init初始數(shù)據(jù)在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.實(shí)現(xiàn)提取change log的方法這里,很重要,我們把 提取change log的方法放在 before action navigation里,因?yàn)樵谶@里面,我們還可以進(jìn)行 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: 實(shí)現(xiàn) 編輯與不可編輯可編輯(點(diǎn)擊 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.不可編輯(點(diǎn)擊 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: 實(shí)現(xiàn) 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論