ABAP 内表操作备忘 刘欣
關(guān)于ABAP? 內(nèi)表操作備忘,博主會(huì)把平時(shí)使用的例句,都統(tǒng)統(tǒng)記錄到這個(gè)文檔里:
"--------定義內(nèi)表(2步法)-----------
"定義結(jié)構(gòu)體 TYPES:?BEGIN?OF?ty_flight,airline_id???????TYPE?i,airline_name(20)?TYPE?c,flight_number????TYPE?i,END?OF?ty_flight."定義內(nèi)表 DATA?gt_flight?TYPE??TABLE?OF?ty_flight."--------定義內(nèi)表3步法------------
"1、定義結(jié)構(gòu)體 TYPES:?BEGIN?OF?ty_tank,airline_id???????TYPE?i,airline_name(20)?TYPE?c,flight_number????TYPE?i,END?OF?ty_tank."2、依照結(jié)構(gòu)體,定義標(biāo)準(zhǔn)表,(定義不唯一的默認(rèn)主鍵?airline_id) TYPES?ty_tab_tank?TYPE?STANDARD?TABLE?OF?ty_tank?WITH?NON-UNIQUE?KEY?airline_id."3、依照結(jié)構(gòu)體類型,定義內(nèi)表 DATA?gt_tank?TYPE?ty_tab_tank.
"--------定義一行結(jié)構(gòu)體------------
"--------內(nèi)表刪除(循環(huán)中刪除滿足條件的一行自己)------------
??loop?at?gt_log?into?data(gs_log)."內(nèi)表刪除這一行,這里不能調(diào)用RFC,否在SY-TABIX會(huì)改變?yōu)?DELETE??gt_log?INDEX??SY-TABIX."內(nèi)表刪除這一行,這個(gè)方法更好DELETE??gt_log .endloop."--------內(nèi)表修改(循環(huán)中修改滿足條件的一行里的字段)------------
LOOP?AT?gt_excel?ASSIGNING?FIELD-SYMBOL(<fs>).滿足條件: <fs>-pichi?=?'1111'. ENDLOOP.變量再次使用: LOOP?AT?gt_excel?ASSIGNING?<fs>.<fs>-pichi?=?'2222'. ENDLOOP."-------內(nèi)表附加(需要建一個(gè)臨時(shí)表,添加全部數(shù)據(jù)到臨時(shí)表)-----------
APPEND LINES OF GT_temp to GT_TABLE.
"--------內(nèi)表修改(循環(huán)中增加了其它內(nèi)表的行數(shù))------------
LOOP AT gt_JH1 INTO gs_JH1.READ TABLE gt_XJDCKC WITH KEY MATNR = gs_JH1-MATNR INTO DATA(gs_XJDCKC).IF sy-subrc <> 0.wa_XJDCKC-QCKCSL = 0.wa_XJDCKC-THSL = 0.wa_XJDCKC-MATNR = gs_JH1-MATNR.wa_XJDCKC-JHSL = gs_JH1-JHSL.APPEND wa_XJDCKC TO gt_XJDCKC .ENDIF.ENDLOOP."--------內(nèi)表匯總(匯總邏輯261為正,262為負(fù)數(shù),最后匯總數(shù)量)------------
?
LOOP AT GT29 ASSIGNING FIELD-SYMBOL(<fs29>) .IF <fs29>-BWART = '262'.<fs29>-BWART = 261.<fs29>-ERFMG = <fs29>-ERFMG * -1.ENDIF.COLLECT <fs29> INTO GTCOLLECT.ENDLOOP.?
"--------RANGE表和結(jié)構(gòu)-------
RANGE變量直接定義: DATA R_TEST TYPE RANGE OF CAUFV-AUFNR WITH HEADER LINE.創(chuàng)建一個(gè)選擇表,For 后面字段必須為參考表的字段,不能使用 Data Element 來(lái)定義. RANGES R_TEST FOR dobj [OCCURS n] 定義一個(gè)RANGE變量來(lái)源于屏幕選擇變量的定義: data rs_matnr like line of s_matnr.在RANGE中新增數(shù)據(jù)行: LOOP AT GT_JH1 INTO DATA(GS162).if GS162-sobkz is initial.rs_matnr-sign = 'I'. rs_matnr-option = 'EQ'. rs_matnr-low = GS162-matnr.append rs_matnr to s_matnr.endif. ENDLOOP.將選擇表轉(zhuǎn)換為 Range,因?yàn)槿绻x擇表的LOW和HIGH字段一致,可以直接轉(zhuǎn): APPEND LINES OF s_werks TO range_werks."--------從右邊截取字符-------
DATA GV(12) TYPE C VALUE '12345678acbd'.write: gv+8(4).顯示輸出??abcd
總結(jié)
以上是生活随笔為你收集整理的ABAP 内表操作备忘 刘欣的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java前端vml_在Web中使用Jav
- 下一篇: vml