sap gui 安装教程:http://www.itpub.net/forum.php?mod=viewthread&tid=2090890

1:abap 基本数据类型:

i(整型),f(浮点型),d(double型),t(时间time),d(date),
字节字段    X
文本域    C
打包数量    P
文本字符串    STRING数字文本字段   N字节字符串     XSTRING     

2:abap定义变量,data,types:https://www.cnblogs.com/foxting/archive/2012/08/14/2638811.html

data定义变量

DATA abc(变量名称) TYPE i(数据类型).
abc=.

types定义类型

TYPES: BEGIN OF ABC,
            FIRST_NAME() TYPE C,
            LAST_NAME() TYPE C
            AGE TYPE I,
            END OF ABC.

3: :使一个命令遇到逗号,开始执行,遇到句号.结束。

DATA v1 type i.
DATA v2 type i.
=
DATA: v1 type i,
           v2 type i.

4:定义与另一个变量vother相同的类型,like vother.

DATA v3 LIKE v1.

5:  value 给创建的变量赋值, is initial给变量赋初始值。

,
      v5 type i value is initial.

6: length 用于指定字段长度,仅限于 C,N,P,X类型

.

7:DECIMALS 用于指定小数位数,只能用于数据类型P。

DATA v7 type p DECIMALS 

8:写一个abap程序

REPORT z02_01_01.   "导入程序名,z02_01_01是程序名称
.    "定义一个局部数据类型,类型为c,长度为20
*DATA t_var TYPE c LENGTH 20.    "定义一个全局数据类型变量,类型为c,长度为20
*定义一个数据变量gv_var,变量类型为t_var,也就是类型为c,长度为20
DATA gv_var TYPE t_var.
gv_var='HELLO ABAP'.   "给变量赋值
write gv_var.   "输出gv_var的值

9:abap标点符号的用法

abap 使用.作为一个语句的结束,使用*作为行注释,使用"在行末作为右注释,使用:后面可以跟多个语句,用,分割,最后使用一个.即可,字符串使用单引号''显示

10:命令使用空格分开

gv_var='error'.   "错误,=两边没有空格
gv = 'successs'. "正确,=两边添加了空格

11:abap  工作区的主要T-CODE

11:MOVE语句和等于相同,用于赋值

DATA gv_var1 TYPE C.
MOVE 'CHINA' TO gv_var1.

12:结构体类型

* 定义结构体类型  (也可以直接使用DATA定义结构体)
TYPES BEGIN OF struc_type.
       ...
      {TYPES dtype ...}|{INCLUDE {TYPE|STRUCTURE}...}.
       ...
TYPES END OF struc_type.

例如:
REPORT z02_03_02.
*声明结构体类型
TYPES:BEGIN OF t_ren,
           name type c length ,
           country type c length ,
           city type c length ,
           end of t_ren.

*定义结构体变量, TYPES 是类型,DATA是变量
DATA gs_people TYPE t_ren.
gs_people-name='FEI YA LI'.
gs_people-country='CHINA'.
gs_people-city='CHENGDU'.
WRITE:/gs_people-name,gs_people-country,gs_people-city.   "  /换行符

13:定义嵌套结构体类型

利用INCLUDE TYPE 语句可以定义嵌套结构体类型。(也可以直接使用INCLUDE STRUCTURE 语句将DATA语句定义的结构体嵌套进来)
*嵌套结构体类型
REPORT Z02_03_03
*声明结构体类型
TYPES:BEGIN OF t_ren,
           name type c length ,
           country type c length ,
           city type c length ,
           end of t_ren.
*定义嵌套结构体类型
TYPES:BEGIN OF t_info.
           INCLUDE TYPE t_ren as ren.
,
           END OF t_info.

*定义结构体对象
DATA gs_people TYPE info.
gs_people-ren-name='YAFEI LI'.
gs_people-ren-country='CHINA'.
gs_people-ren-city='chengdu'.
gs_people-phone='.
WRITE:/gs_people-ren-name,gs_people-ren-country,gs_people-ren-city,gs_people-phone.

结果:     YAFEI LI       CHINA        chengdu           

14:定义常量

可以定义一般常量或结构体常量
CONSTRANTS:c_company() value 'UESTC'.  "一般常量
CONSTRANTS:BEGIN OF c_people,     "结构体常量
                         name() VALUE 'YAFEI',
                         country() VALUE 'CHINA',
                         END OF c_people.
WRITE:/c_company,c_people-name,c_people-country.

15:定义静态变量,可以定义一般静态变量和结构体变量,使用STATICS关键字。静态变量只初始化一次,存活到程序结束

静态变量
.   STATICS F.
.   STATICS:BEGIN OF stru,
                     .......
                     END OF stru.

含有静态变量的例子,静态变量只初始化一次。
REPORT z02_06_02.
 TIMES.             "循环三次
  PERFORM call_subr.   "调用执行call_subr.
ENDDO.

FROM call_subr.          "定义一个子程序块call_subr
STATICS lv_val TYPE i.   "静态变量
lv_val=lv_val+.
WRITE:/'STATIC Variable:',lv_val.
ENDFROM.   "RANDOM

执行结果:
STATIC Variable:
STATIC Variable:
STATIC Variable: 

不含静态变量的例子。
REPORT z02_06_03.
 TIMES.             "循环三次
  PERFORM call_subr.   "调用执行call_subr.
ENDDO.

FROM call_subr.          "子程序块,定义一个子程序块call_subr
DATA lv_val TYPE i.
lv_val=lv_val+.
WRITE:/'STATIC Variable:',lv_val.
ENDFROM.   "RANDOM

执行结果:
STATIC Variable:
STATIC Variable:
STATIC Variable: 

16: 表

*定义表使用TABLES.
REPORT z02_06_04.
TABLES:scarr.   "定义表
SELECT * FROM scarr.  "从表中查询,放入到scarr.
  WRITE:/scarr-carrid,scarr-carrname.
ENDSELECT.

《第三章》

17:数据库。

数据语言分为OPEN SQL和NATIVE SQL.

OPEN SQL 只能执行DML语言。

NATIVE SQL 能执行DML 和DDL语言。

OPEN SQL 需要解释成NATIVE SQL 才能访问数据库。

如下:是一个查询语句OPEN SQL.

数据库:
'
         .   "从数据库中查询数据的语句执行成功
             WRITE marc.
EXIT.
          ENDIF.
ENDSELECT.

18:查询语句

查询语句:
SELECT line(查询条数,可以用SINGLE,DISTINCT,数字5) column from ... where group by ... having... order by...
ENDSELECT.
into 用法,将查询出的语句放入某个字段或结构体,需要使用ENDSELECT.
REPORT Z_03_01.

DATA:gt_itab TYPE STANDARD TABLE OF sflight.
    gs_wa TYPE sflight.
SELECT * INTO gs_wa FROM sflight WHERE carrid EQ 'AA'.   "the process will end untill the selection operate ending.
WRITE:/gs_wa-carrid,gs_wa-connid.
ENDSELECT.

使用表,不使用结构体,就不需要用ENDSELECT.
REPORT Z_03_01.

DATA:gt_itab TYPE STANDARD TABLE OF sflight.
    gs_wa TYPE sflight.
SELECT * INTO TABLE gt_itab FROM sflight WHERE carrid EQ 'AA'.

LOOP AT gt_itab into gs_wa.   "The data of table gt_itab are loop taken into gs_wa, then print.
WRITE:/gs_wa-carrid,gs_wa-connid.
ENDLOOP.

19:as

SELECT id as my_id from t1. " as will give a alias to the selection data.

20 INTO

INTO 用于指定存储查询出的结果值的目的地。如果使用了结构体wa,CORRESPONDING FIELDS OF可以将查询出的值按照字段名称对应赋值给wa

SELECT * INTO CORRESPONDING FIELDS OF wa FROM...

内表,将查询出的数据存放到内表中,使用APPENDING,PACKAGE SIZE 指定每次向表中追加的数据个数。

 FROM t.
ENDSELECT.

INTO 在删除内表数据后插入数据使用。

REPORT z03_04.
DATA:gs_wa TYPE sflight,                  " gs=global structure, 结构体
          gt_itab TYPE TABLE OF sflight. "gt=global table  ,内表
*gv =全局字段,v=字段
SELECT carrid connid FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_itab
PACKAGE SIZE .
LOOP gt_itab INTO gs_wa.
    WRITE:/gs_wa-carrid,gs_wa-connid.
ENDLOOP.
ENDSELECT.

查询多个字段并用into指定存储字段。

select ... into (f1.f2. ...) ...
SELECT carrid connid INTO(gv_carrid,gv_connid) from...

21:FROM

,定义表的选项,,控制访问数据库表的选项。SELECT ... FROM table option ...

22: 内连接:inner join  内连接。

select ... from t1 [inner默认,left outer,right outer] join t2 as t on fieldA.   "on用来字段连接的字段,也可以没有
例3-
report z03_06.
TYPES:BEGIN_OF t_str,
    carrid type sfight-carrid,
    carrname type scarr-carrname,
end of t_str.

DATA:gs_str type t_str.

select single a~carrid b~carrname into corresponding fields of gs_str from
sflight as a
inner join scarr as b
on a~carrid eqb~carrid
where a~carrid='AA'.

write:gs_str-carrid,gs_str-carrname.

22:限制查询个数:

select ... from table1 up to <n> rows...

23:区间范围查询:

select * from table where f1 [ .

24: 字符串比较:

比较前三位相同 where f1 like 'abc%'.
查询字段中只有一位字符项:where f1 like '_'.  "_代表一位字符

25:字符串连接:

https://blog.csdn.net/champaignwolf/article/details/78184603

concatename str1 str2 into str3.   "  当整形与字符串连接时,符号位会转变为空格。
str=i && str.       "将会将整形中的符号位去掉,不会产生空格。

26:动态条件

*动态条件,itab可以定义成最大为72位的内表。
select ... where (<itab>) ...
例3-
report z03_08.

data gs_where type c length .
data gv_carrname type scarr-carrname.
data gv_carrid type scarr-carrid value 'AC'.
concatenate 'carrid='"gv_carrid""into gs_where.
select single carrname from scarr where (gs_where).   "gs_where是动态条件,根据上面赋的值决定。
write /gs_carrname.

27:  当有多个查询条件时,需要将其追加到内表中

report z03_09.

data gs_where type c length .   "72位的内表
data gt_where like table of gs_whree.
data gv_carrname type scarr-carrname.
data gv_carrid1 type scarr-carrid value 'AC'.
data gv_carrid2 type scarr-carrid value 'AF'.
concatenate 'carrid='"gv_carrid1""into gs_where.
append gs_where to gt_where.
gs_wehre='OR'.
append gs_whre to gt_where.
concatenate 'carrid='"gv_carrid2""into gs_where.
append gs_where to gt_where.

select carrname into gv_carrname from scarr where (gt_where).  "where后面的括号内容表示动态查询条件。
write /gv_carrname.
endselect.

28: 定义工作区

DATA  L_WA_EKBE      LIKE LINE OF IT_EKBE. "定义工作区,里面只能存储一行数据。 IT_EKBE 是一个内表。
内表可以存放多行数据。

29: check 后面的语句为真时,check发生作用,check后面的语句会执行。

CHECK iv_service_team_id IS NOT INITIAL.

最新文章

  1. 计算照片的面积(WPF篇)
  2. [python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决
  3. C#线程同步手动重置事件——ManualResetEvent
  4. Mac安装软件报“打不开。。。,因为它来自身份不明的开发者”的解决办法
  5. [修复] Firemonkey 使用 DrawPath 断线问题(Android &amp; iOS 平台)
  6. sqlmap 1.0.21 tamper 总结
  7. Redis内存存储结构分析
  8. MVC中”从客户端检测到有潜在危险的Request.Form值“的解决方法
  9. mongodb日志服务器方案
  10. 一起学习android使用一个回调函数onCreateDialog实现负载对话(23)
  11. bzoj4826 [Hnoi2017]影魔
  12. Python基础__函数
  13. RAC(ReactiveCocoa)介绍(一)
  14. Intel 11代全新核显出现了!好强 好乱
  15. [BZOJ 3745] [COCI 2015] Norma
  16. Windows系统盘符错乱导致桌面无法加载。
  17. vmare连接远程服务器的问题
  18. iOS - 富文本直接设置文字的字体大小和颜色
  19. Codeforces 219C Color Stripe(思维+字符串)
  20. AVL树Python实现

热门文章

  1. /etc/fstab文件损坏的补救措施
  2. open-falcon之judge
  3. Nginx七层反向代理和负载均衡
  4. nginx介绍和安装
  5. 【SpringBoot整合Elasticsearch】SpringBoot整合ElasticSearch
  6. sass - 公用方法封装
  7. php 函数合并 array_merge 与 + 的区别
  8. C语言程序设计--类型转换
  9. Python的容器、生成器、迭代器、可迭代对象的家谱
  10. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十一:PS/2模块⑤ — 扩展鼠标