一、字符偏移量的写法:
AA = '1234567890'.
BB = AA+5(*). "结果:67890
ee = aa+5. "结果:67890
cc = aa(5). "结果:12345
dd = aa+0(5). "结果:12345
ff = aa+5(2). "结果:67
二、调用其它程序的FORM.
PERFORM form1 IN PROGRAM demo_form1.
三、如何导出SAP的数据表字段 (导出数据库表的全部字段,表结构导出)
1.执行T-CODE:SE15
2.进入菜单ABAP Dictionary => Fields => Table Fields.
3.输入table name, 例如: KNA1 (顾客主数据),然后点击运行
4.此时只能看到几列数据,点击工具栏上倒数第二个按钮“Complete List”,就可以看到全部列的技术信息了
5.全选字段,然后利用系统菜单导出excel(edit=>List => export => Local files )
四、Binary search的用法
使用binary search之前,需要sort,并且sort by ascending(系统默认的顺序也是ascending)。
而且read table with key的顺序同sort的顺序相同,否则出错,常会找不到纪录。
Delete adjacent duplicates之前一定要sort。
五、AT NEW,AT FIRST等的用法
使用at new, at first, at last, at end of的时候要注意:loop的时候不能加条件;
at和endat之间不能使用loop into的working area。手动实现at new, at end of的时候,
需要注意,容易出错,尤其是在at end of的时候。
六、内表行数统计方法
以下是统计内表行数常用的三种方法,如下:
1.LOOP AT it_itab.
g_lines2 = g_lines2 + 1.
ENDLOOP.
该方法是通过循环内部表自己累加行数。
2.DESCRIBE TABLE it_itabLINES g_lines1 .
该语句通过获得内部表的属性,将内部表行数赋值给 g_lines1 , g_lines1 为I型变量。
3. g_lines3 = lines( it_itab ). 使用函数来计算内部表行数。
以上三种方法中,第一种方法不推荐使用,推荐使用后两种方法。
4、字段长度(字符长度、字符串长度)
l_len = strlen( l_text ) .
七、在SAP中用CALL METHOD求本地IP的方法
DATA g_local_ip(20) TYPE c.
CALL METHOD cl_gui_frontend_services=>get_ip_address
RECEIVING
ip_address = g_local_ip.
WRITE g_local_ip.
g_local_ip就是你本机的IP地址.
八、SORTED TABLE的用法
使用INSERT INTO TABLE
例:
REPORT ZZ_244_TEST_18.
TYPES: BEGIN OF GT_ITAB ,
L_A(2),
L_B(2),
END OF GT_ITAB.
DATA: ITAB TYPE SORTED TABLE OF GT_ITAB WITH UNIQUE KEY L_A,
LW_ITAB TYPE GT_ITAB.
LW_ITAB-L_A = 'AA'.
LW_ITAB-L_B = 'BB'.
INSERT LW_ITAB INTO TABLE ITAB.
LW_ITAB-L_A = 'A1'.
LW_ITAB-L_B = 'BB'.
INSERT LW_ITAB INTO TABLE ITAB.
IF SY-SUBRC EQ 0.
ENDIF.
九、READ TABLE用法小解:
DATA: ITAB LIKE SORTED TABLE OF SPFLI
WITH UNIQUE KEY CARRID CONNID, "定义一个排序表,有两列关键字
LINE LIKE LINE OF ITAB.
*FIELD-SYMBOLS LIKE LINE OF ITAB.
FIELD-SYMBOLS TYPE SPFLI. 用
SELECT * INTO TABLE ITAB FROM SPFLI WHERE CARRID = 'LH'.
*&**WITH TABLE KEY 后必须把表的所有关键字都加上,
READ TABLE ITAB INTO LINE WITH TABLE KEY CARRID = 'LH' CONNID = '2042'.
*&***WITH KEY 就比较自由,
READ TABLE ITAB WITH KEY CARRID = 'LH' ASSIGNING .
*&**把ITAB内第4条的值跟LINE内的值时行比较,比较完后只把CARRID CONNID 的值写入LINE
READ TABLE ITAB INTO LINE INDEX 4
COMPARING CARRID CONNID TRANSPORTING CARRID CONNID.
*&**使用TRANSPORTING NO FIELDS 关键字就不用把结果写到别一个地方
READ TABLE ITAB WITH KEY CARRID = 'LH' TRANSPORTING NO FIELDS.
十、使用ALV把数据输出到屏幕后,如何把修改的值传回内表?
FM:GET_GLOBALS_FROM_SLVC_FULLSCR
alv grid输出数据后,把屏幕上修改的值传到内表,还要设置下面的语句哟:
GT_LAYOUT-BOX_FIELDNAME = 'FLAG'.
实例:技术程序->GET_GLOBALS_FROM_SLVC_FULISCR