ABAP开发学习总结之一:ABAP入门基本要点

 
原文出处: http://hi.baidu.com/samson_wu/blog/item/fda82f133acdea3fdd5401b4.html
ABAP开发学习总结之一:ABAP入门基本要点
2011-11-08 12:37

        安装好系统,搭好了平台,你是不是想有所作为,运行几个TCODE对于想写程序的人来说是很没劲的,都希望在SAP的平台完完全全按自己想法和意志实现一个程序或者功能。
       SE38或SE80 就是开启ABAP之门的TCODE。
       如果从没有接触过编程工具的人,看到这个平台,眼睛是大大的,哇!居然可以这样做出一个程序!
       如果使用过其他编程工具的人,看到这个平台,眼角也是大大的,哇!号称最强大的东西原来还只是在幼稚园里面。
       不过,可以肯定的是用这个平台是可以做出东西。只是你学过高等数学,再让你必须要实用小学数学方法去解题,有些束手束脚吧了,特别要强调一点,SAP中文可以称作“傻P”,褒义是严谨,贬义就是不够智能呗,所以你需要彻底忘记其他编程工具带给你的智能感觉。不过SAP的编程工具差劲不代表其他东西差劲,人家的强项不再这儿,而我们使用它的真实意图也不是要她的编辑器,这个就算是“瑕不掩瑜"。
       通常简单一点的管理系统,自带的二次开发平台都是开发一些报表,SAP的ABAP可不止于此,除了报表开发还可以进行动态程序开发,现在abap也有OO概念,不再只是面向过程了,有钱总是有机会进步的!
       要迈进了ABAP门槛,按你的意图写出程序来,你至少需要了解下面几个方面:

一.关于符号和字母,记住下面这几点,你程序的小错误基本减少99%
        a.语句结束用"."。?如果你写 WRITE 'AAAAA'
        b.没有双引号只有单引号。?如果你写 WRITE "AAA".
        c.一些保留字符需要单引号括起来,比如.等。?如果你写 a = 1.7
        d.运算符前后有空格,也就是=/+等这些前后一定要有空格。?如果你写 a=b
        e.虽然abap不区分大小写,但是这个也是一个传说.....,你还是尽量全部大写!特别是功能码,字段名等,否则你使用规范化打印机后
           你会傻眼?
        f.整行注释 * ,语句注释 “,多行批量注释与反注释:ctrl+,  ctrl+.
        g.你自己的程序只能以z和y开头
        H.“:”和“,”一起用,连接多语句
         I./ 表示换行
二.基本的语法语句:字符操作、逻辑循环....这个吗,网上多了去,随便找一本书看看就可以了,细节不知道的就查一下.
        声明语句:TYPES、 DATA、 PARAMETER、 TABLES
        基本操作:WRITE、MOVE
        字符操作:CONCATTENATE、SPLIT、CONDENSE、SEARCH、REPLACE、TRANSLATE
        逻辑循环:IF、WHILE、CASE、DO   (循环完全中止exit,条件终止 check +exit ,循环内中止continue)
        调用语句:PERFORM, CALL, SUBMIT, LEAVE TO 
        过程定义: FORM/ENDFORM, FUNCTION/ENDFUNCTION, MODULE/ENDMODULE
        比较运算:=、<>.......
三.数据类型:
       常的C(文本)、I(整数)P和F(小数)、N(可把数值作为文本)、X (16进制)、D(日期)

四.SAP的开发大多数情况都是访问数据,所以你需要清楚了解一下内表:
        内表是啥玩意:就是内存中的表
        内表和工作区区别: occurs 0 在表之外还有一行,即工作区域,此工作区域只能放一条数据,可以看作是单行内表。
        类型结构体和对象要区分:type定义的是类型 data定义的是对象,是容器
        有无表头的区别: with header line
        内表常用操作:append 在最末尾加;collet汇总;move复制;Insert 可以选择性位置增加;mdify 更改;delete删除;sort   排序;
                               refresh 初始化;对于工作区 域用clear;loop at 循环遍历,无表头的需要先导入工作区 loop at it_tbl into  wa_tbl.
五.系统常量你需要记住几个常用的
       SY-SUBRC=0表示找到记录,sy-dbcnt表示找到的记录数量。
  SY-DBLNT: 被处理过的记录的笔数
  SY-UNAME: 当前使用者登入SAP的USERNAME
  SY-DATUM: 当前系统日期
  SY-UZEIT: 当前系统时间
  SY-TCODE: 当前执行程序的Transaction code
  SY-INDEX : 当前LOOP循环过的次数
  SY-TABIX: 当前处理的是internal table 的第几笔
  SY-TMAXL: Internal table的总笔数
  SY-SROWS: 屏幕总行数
  SY-SCOLS: 屏幕总列数
  SY-MANDT:
  SY-VLINE: 画竖线
  SY-ULINE: 画横线 ==uline
  SY-PAGNO: 当前页号
  SY-LINSZ: 当前报表宽度
  SY-LINCT: 当前报表长度
  SPACE: 空字符串
  SY-LSIND: 列表索引页
  SY-LISTI: 上一个列表的索引
  SY-LILLI: 绝对列表中选定行的行号
  SY-CUROW: 屏幕上的行
  SY-CUCOL: 光标列
  SY-STARO:真实行号
  SY-LISEL: 选择行的内容,长度为255
  SY-LINNO: 当前行

六.SQL你更需要了解,前面说过sap的开发大多是操作数据,而那些数据都是再数据库里面,但这个和我们操作数据库的sql是又些不同的,最明显的就是:和普通的数据库sql查询语句差别就是“,.变~,分割逗号无”
例如:select a~b from a inner join b
感觉没有数据库中的sql强大吧,可是人家也有游标和过程的。

七.程序逻辑
   ABAP是解释运行的,这个和VB对着一起学就容易明白。

 


你可能感兴趣的:(SAP)