亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

loop循環時須注意效率問題

系統 2878 0

以前寫循環時,都是一條記錄一條記錄的比較,代碼示例如下:

loop at S_VAL_CHAR into VAL_CHAR.
??? if VAL_CHAR-CHARACT eq 'P0008_7'."箱型
??????? IT_ITEM-BOX = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'S0012'."客戶編號
??????? IT_ITEM-CLIENT_CODE = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'CP_CW'."客戶編號
??????? IT_ITEM-CP_CW = VAL_CHAR-VALUE_CHAR.
??? ENDIF.
ENDLOOP.

這樣的話要循環lines(? S_VAL_CHAR ).

應該改成如下,效率應該會好一點.

loop at S_VAL_CHAR into VAL_CHAR WHERE CHARACT eq 'P0008_7' OR CHARACT eq 'S0012' OR CHARACT eq 'CP_CW'.
??? if VAL_CHAR-CHARACT eq 'P0008_7'."箱型
??????? IT_ITEM-BOX = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'S0012'."客戶編號
??????? IT_ITEM-CLIENT_CODE = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'CP_CW'."客戶編號
??????? IT_ITEM-CP_CW = VAL_CHAR-VALUE_CHAR.
??? ENDIF.
ENDLOOP.

?若條件很多,條件語句寫起來太長,可用range,代碼如下:

data:lr_character type range of BAPI1003_ALLOC_VALUES_CHAR-CHARACT,
lr_character_line like line of lr_character.
CLEAR: lr_character_line,lr_character[].
lr_character_line = 'IEQ'.
lr_character_line-low = 'P0008_7'.
append lr_character_line to lr_character.

CLEAR: lr_character_line.
lr_character_line = 'IEQ'.
lr_character_line-low = 'S0012'.
append lr_character_line to lr_character.

CLEAR: lr_character_line.
lr_character_line = 'IEQ'.
lr_character_line-low = 'CP_CW'.
append lr_character_line to lr_character.

loop at S_VAL_CHAR into VAL_CHAR WHERE CHARACT in lr_character.
??? if VAL_CHAR-CHARACT eq 'P0008_7'."箱型
??????? IT_ITEM-BOX = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'S0012'."客戶編號
??????? IT_ITEM-CLIENT_CODE = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'CP_CW'."客戶編號
??????? IT_ITEM-CP_CW = VAL_CHAR-VALUE_CHAR.
??? ENDIF.
ENDLOOP.

?

繼續優化一下,把那些重復的代碼提取出來,最后如下:

data:?? ?lr_character type range of BAPI1003_ALLOC_VALUES_CHAR-CHARACT,
?? ??? ??? ?lr_character_line like line of lr_character.
?? ??? ??? ?
form ADD_CHARACTER_TO_RANGE USING value(s) CHANGING r.
??? clear lr_character_line.
??? lr_character_line = 'IEQ'.
??? lr_character_line-low = s.
??? append lr_character_line to lr_character.
ENDFORM.

CLEAR: lr_character[].
perform ADD_CHARACTER_TO_RANGE using 'P0008_7' changing lr_character.
perform ADD_CHARACTER_TO_RANGE using 'S0012' changing lr_character.
perform ADD_CHARACTER_TO_RANGE using 'CP_CW' changing lr_character.

loop at S_VAL_CHAR into VAL_CHAR WHERE CHARACT in lr_character.
??? if VAL_CHAR-CHARACT eq 'P0008_7'."箱型
??????? IT_ITEM-BOX = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'S0012'."客戶編號
??????? IT_ITEM-CLIENT_CODE = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'CP_CW'."客戶編號
??????? IT_ITEM-CP_CW = VAL_CHAR-VALUE_CHAR.
??? ENDIF.
ENDLOOP.?

loop循環時須注意效率問題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 午夜成人在线视频 | 日本不卡视频网站 | 亚洲成人高清在线 | 欧美日韩久久中文字幕 | 国产成人亚洲欧美激情 | 日韩久久精品 | 亚洲国产精品网站久久 | 亚洲欧美色鬼久久综合 | 99久久精品一区二区三区 | 天天干天天干天天干天天 | 日本精品久久久久中文字幕8 | 最新日韩在线 | 不卡一区在线观看 | 91久久国产精品视频 | 欧美拍拍视频 | 久久精品国产国语对白 | 日本午夜在线视频 | 91精品国产福利在线观看性色 | 四虎视频国产在线观看 | 亚洲免费视频观看 | 久久都是精品 | 日本一级在线播放线观看免 | 久久r精品 | 欧美jizz19性欧美 | 亚洲欧洲日本在线观看 | 免费的毛片网站 | 国产乱人免费视频 | 久久精品视频18 | 伊人网2021 | 亚洲欧美国产精品久久久 | 免费视频一区 | 国产午夜精品理论片久久影视 | 国产精品98福利小视频 | 日本aa在线 | 香香影院在线观看 | 激情综合网色播五月 | 一国产大片在线观看 | a一级黄色片 | 一区二区网站 | 亚洲精品久久久久久婷婷 | 色婷婷综合和线在线 |