摘要:
与其使用一般的 loop-endloop 方法来实现向内表添加多条记录,不如使用 append 命令的变体将一个内表的所有记录一次性添加入另一个内表。要注意的是两个内表的结构定义必须完全一样。 不推荐使用: Loop at int_fligh1. Append int_fligh1 to int_fligh2. Endloop. 推荐使用: ... 阅读全文
摘要:
READ命令使用顺序查找数据表,这会降低处理速度。取而代之,使用binary search的附加命令,可以使用二分查找算法,可以帮助加快内表查找速度。 在使用binary search之前必须首先将内表排序,否则有可能找不到记录,因为二分查找反复将查找区间对半划分,如果要查找的值小于查找区间的中间位置的数据项值,则查找区间将缩小到前半个区间,否则查找将局限于后半区间。要了解更多的关于二分查找算法介... 阅读全文
摘要:
修改一个内表的多行纪录 使用modify命令的不同形式加快这种操作的处理速度。 不建议使用: Loop at int_fligh. If int_fligh-flag is initial. Int_fligh-flag = ‘X’. Endif. Modify int_fligh. Endloop. ... 阅读全文
摘要:
使用select 命令的 into table语句 与其一行一行的读取数据添加入内表,不如一次性取出所有数据行。 不建议使用: Refresh: int_fligh. Select * from zflight into int_fligh. Append int_fligh. Clear int_fligh. Endselect. ... 阅读全文
摘要:
使用视图取代基本表 很多时候 ABAP 程序员需要使用基本表和嵌套的选择。其实我们应该查看一下是否有SAP已经提供的这些基本表的某些视图可供使用,以便直接获得想要的数据,而不用特别编写代码来获取。 不建议使用: Select * from zcntry where cntry like ‘IN%’. Select single ... 阅读全文
摘要:
可以使用ABAP提供的集合函数取代ABAP代码来获得最大或最小值。 不建议使用: Maxnu = 0. Select * from zflight where airln = ‘LF’ and cntry = ‘IN’. Check zflight-fligh > maxnu. Max... 阅读全文
摘要:
内表是一个运行状态下存在的实例,它在程序开始运行时才生成,在程序结束运行时被销毁。 内表包含两个部分,可有可无的标题行(HeaderLine),和必需的表身。进出内表的值都必须通过标题行。 程序例子: * 声明 data: begin of itab occurs 0, x type c, y type i, end of itab. * 初始化标题行 headerline itab-x = ... 阅读全文
摘要:
在从数据库中读取数据时最好直接在select语句中加入选择条件,从而直接限制筛选出符合条件的数据,而不建议读出所有的数据然后用ABAP代码来过滤筛选。 例如,不建议使用: Select * from zflight. Check : zflight-airln = ‘LF’ and zflight-fligh = ‘BW222... 阅读全文