否则,将 SY-SUBRC 设置为非0值。 如下所述,可以定义多个关键字<key>: (1)定义一系列关键字段 要定义自己的一系列关键字段,使用 WITH KEY 选项,用法如下: ...WITH KEY <k1> = <f1> ... <kn> = <fn> ... 自定义关键字包含表格组件<k1>...<kn>。字段<f1>...<fn>是关键字段的内容必须匹配的...
代码运行次数:0 select 数据1,数据2from 透明表 into table 内表.sort 内表 by 数据1数据2.DELETEADJACENTDUPLICATESFROMitab(内表名)COMPARING针对的字段.loop 内表 into 工作区.read 内表 into 工作区withkey1=值1BINARYSEARCH.modify 内表 from 工作区.endloop. 实例讲解 数据定义 代码语言:javascript 代码...
ABAP READ TABLE使用BINARY SEARCH如题,read table使用binary search,with key有多个字段的时候,寻找数据的内部逻辑是怎样的比如有内表(按A,B已排好序)T_DATAA B C1 1 11 2 22 1 32 2 42 3 53 1 63 2 73 3 8现在用如下语句查找READ TABLE T_DATA INTO W_DATA WITH KEY A='2' B = '3' BINA...
二分法为一种通过索引索索的方式,进行快速查询的方式,基本思想就是数据大小先排序,放在队列中,将KEK值每次从中间获取,如果相等则把值取出,如果不等的话,如果KEY小,则在队列的前半部检索,如果KEY大,则在队列后半部检索. 这样对应的工作区间就对半减小了. 说句人话呢就是玩过猜炸弹游戏么?100个数,随机才猜一个...
9, 二分查找比线性查找要高效,READ TABLE的之前使用SORT TABLE BY XXX 某个表关键字段进行排序, 然后使用READ TABLE WITH KEY XXX = ‘XXX’ BINARY SEARCH. 这个就是所谓的二分查找法的应用. 10, 避免使用SQL语句动态查询条件,动态表名和动态字段名, 必要时候用宏或者子程序模块代替. ...
WITH KEY tabix = sy-tabix.*IF <line> IS ASSIGNED .*<line>-xnegp = 'X'.*ENDIF.*ELSE.*IF t_bseg-shkzg = 'H' AND t_bseg-xnegp IS NOT INITIAL.*UNASSIGN <line2>.*READ TABLE t_bsegsub ASSIGNING <line2> WITH KEY tabix = sy-tabix.*IF <line2> IS ASSIGNED .*<line>-xnegp ...
分配某个变量给指针ASSIGNvarTO<field-symbols>分配结构中的某个字段的地址给指针ASSIGNCOMPONENTposOFSTRUCTUREstrucTO<field-symbols>.分配整个内表行给指针(指针必须定义为有栏位结构的类型)READTABLEitabINDEX/WITHKEYASSIGNING<field-symbols>.LOOPATitabASSIGNING<field-symbols>.ENDLOOP.分配类的方法或借口给指针ASSIG...
关键字查找:READ INTO <wa> WITH KEYREAD TRANSPORTING NO FIELDS (不进行传值)2、LOOP循环内表(循环读取内表数据,使用SY-TABIX可获取当前所执行的行数)LOOP AT INTO <wa> . "不带表头的内表循环LOOP AT . "带表头的内表循环 四、内表数据编辑1、内表数据修改:修改内表行(ABAP修改内表常用的...
一般勾选了 key值的 都勾上初始值,习惯: 然后点击激活后: 保存后再激活: (中途出现一个小bug,点击激活的时候,报错提示:您没有权限激活表ZABAP_01。主要是我用的是公司的SAP,我只是个财务顾问的权限,估计是没有开发的权限,SU53一下: 详情明细里看到公司的开发权限写死固定了某两个包的权限,虽然ZABAP这个包...
DATA: LT_TMP1 TYPE SORTED TABLE OF LTY_DATA WITH UNIQUE KEY INDEX, LT_TMP2 TYPE SORTED TABLE OF LTY_DATA WITH UNIQUE KEY INDEX, LT_DATA TYPE TABLE OF LTY_DATA. LT_TMP1 = VALUE#( ( INDEX = '0001' TEXT1 = 'X' ) ( INDEX ='0004'TEXT1 ='X') ...