点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
TYPES:类型ty_final开头, ebeln TYPE ekko-ebeln, bukrs TYPE ekko-bukrs, ebelp TYPE ekpo-ebelp, ty_final结束。 数据:ty_final的lt_final类型表, ls_final TYPE ty_final。 选择ebeln,从ekko到表@DATA(lt_ekko)最多5行。 如果sy-subrc = 0。 从ekpo中选择ebeln,ebelp进入表@DATA(lt_ekpo) 对于@lt_ekko中的所有条目,ebeln = @ lt_ekko-ebeln。 万一。 排序:lt_ekko BY ebeln,lt_ekpo BY ebeln。 在lt_ekpo INTO DATA(ls_ekpo)中循环。 ls_final-ebeln = ls_ekpo-ebeln。 ls_final-ebelp = ls_ekpo-ebelp。 *使用键ebeln = ls_ekpo-ebeln二进制搜索将表lt_ekko读入DATA(ls_ekko)。 data(ls_ekko)= lt_ekko [ebeln = ls_ekpo-ebeln]。"二进制搜索无效 如果sy-subrc = 0。 ls_final-bukrs = ls_ekko-bukrs。 万一。 追加ls_final至lt_final。 结局。 cl_demo_output => display(lt_final)。
嗨,
对于新的ABAP 7.4,如何在读取表中使用二进制搜索
您不能在新表达式中使用BINARY SEARCH加法。 即使可以,也不应该。 使用排序的表类型,因此将始终通过二进制搜索算法隐式访问记录的查找。
您好 Dhanush Kanna
关于您的陈述:
当心这种类型的表读取...有时当此内部表是初始表或该行不存在时,您会 获取转储...
使用Try Catch或以下语句:DATA(ls_ekko)= VALUE#(lt_ekko [ebeln = ls_ekpo-ebeln]可选)。
您需要将内部表声明为排序表。
# p#Sandra Rossi
感谢,一天之后阅读答案实际上是模棱两可的 我试图说的是,每当您必须键入BINARY SEARCH时,您都在使用wron g表类型。 :-)
嗨,我不知道执行下一个代码并能正常工作是什么错误。
类型:ty_final的开始,
ENDIF。
ebeln TYPE ekko-ebeln,
bukrs TYPE ekko-bukrs,
ebelp TYPE ekpo-ebelp,
ty_final的结尾。
数据 :lt_final类型表ty_final,
ls_final类型类型ty_final。
SELECT ebeln,从ekko插入表@DATA(lt_ekko)到最多5行。
IF sy-subrc = 0 。
从ekpo中选择ebeln,ebelp进入表@DATA(lt_ekpo)
中@lt_ekko中所有条目的ebeln =
排序:lt_ekko BY ebeln ,lt_ekpo BY ebeln。
将lt_ekpo放入数据(ls_ekpo)。
ls_final-ebeln = ls_ekpo-ebeln。
ls_final-ebelp = ls_ekpo-ebelp。
读取表 lt_ekko使用键ebeln = ls_ekpo-ebeln二进制搜索进入数据(ls_ekko)。
如果sy-subrc = 0.
ls_final-bukrs = ls_ekko-bukrs。
ENDIF。
追加ls_final至lt_final。
清除ls_ekko。
ENDLOOP。 > cl_demo_output => display(lt_final)。
一周热门 更多>