|
原帖由 azqf 于 2008-8-2 01:16 发表 ![]()
对,没有用HIGN,仅仅只是简单的LOW ‘那么改成for all entries in 一个含与low同结构field的内表是我的解决方案。’这个有意义吗?我使用RANGE并不是用于屏幕,而是用于检查数据,为何还要再IN一个内表,而且这个内表仅只能存放一列数据?我想不出这样是什么好的解决方案。
并不是我没听明白,而是你并不知道这样做的本意,你并没有仔细看到是从数据库中取值,以及其KEY。ALL ENTRIES IN,我无论如何都不可能有KEY匹配的。
你明白了吗?
呵呵,我读了5遍你的这段话,没读明白,也许我应该要求你说英语
比如先取mara里的matnr然后按这些值去取ekpo的PO item行.
用range写就是:
ranges r_matnr for matnr.
r_matnr-sign = 'I'.
r_matnr-option = 'EQ'.
select matnr into r_matnr-low from mara where...
append r_matnr.
endselect.
select ebeln from ekpo into ... where matnr in r_matnr.
用for all 写就是(不应ranges表了,是只用for all entries in 而不是 “还要”):
data t_mara like table of mara occurs 0 with header line.
select matnr to t_mara-matnr from mara where...
append t_mara.
endselect.
select ebeln from ekpo for all entries in t_mara into ... where matnr = t_mara-matnr.
本人初学abap,经验不丰富。只是想提个思路,并没有“有意义”或“好的”解决方案
如果这个例子并不符合你的本意,你不如把你的本意用完整可运行的代码发出来,大家也好进一步沟通。
相互否定并不能解决问题,是不是? |
|