阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 1157|回复: 0

[转帖] 学习SAP程序语法总结

[复制链接]

该用户从未签到

发表于 2012-1-10 11:54:21 | 显示全部楼层 |阅读模式
1, 类型转换:如果从字符转到数字字符,则只转化数字部分。如果是时间转化为数字,则全部转化为秒来存储。
2, 数值运算,运算符+,-,*,/和()都是ABAP的关键字,前后均必须有空格。
3, 格式化输出:DATA pack TYPE p VALUE ‘123.456’ DECIMALS 3.
4, 逻辑表达式 EQ,NE,LT,LE,GT,GE用于数字类型,而字符类型则使用CO(等于),CS(包括).
5, IS操作符,IS INITIAL; IS ASSIGNED;
6, 一般性类型(非完全限定类型 Generically types)和完全限定类型(fully qualified type).
7, 扁平类型 (数据对象保存的是对象的值)和纵深类型(数据对象保存的是另外一个对象的地址域)
8, 局域类型(分两种,一种是在一个程序内,另一种是在一个模块内)与全局类型(在数据字典中定义).
9, 数据字典类型的数据元素必须在域中创建,数据字典类型也有预定义的(内置的)数据类型,其创建的对象与普通的数据对象区别在在作用范围更广。
10, 数据对象分为三类:一,有名的数据对象(如变量)二,文字;三,系统字段(如系统时间)。通过DESCRIBE来显示数据对象属性。
11, R/3业务模块,一生产计划控制(PP);二,物料管理(MM);三,销售与分销(SD);四,财务会计(FI);五,管理会计(CO);六,人力资源(HR)。
12, APAB内存的作用域只有一个主会话中有用,(作用:如果一个程序内部调用另一个程序,则可先用EXPROT TO MEMORY将数据存入APAB内存,在被调用程序中通过IMPORT FROM MEMORY语句读取APAB内存数据);而SAP内存则在各个主会话间共享,通过SET PARAMETER 和GET PARAMETER 实现参数设置。
13, 数据赋值,MOVE source TO destination等价于=;而结构体赋值则使用=号或者MOVE-CORRESPONDING.(相同组件逐个赋值)
14, 截取某一段字符的操作为:string + i (j); 意思就是截取字符串string ,从I 开始,共J个字符。
15, 创建一个内表过程:使用DATA 语句根据结构体作为行类型,创建一个标准表,然后使用APPEND语句对内表进行填充,然后通过LOOP AT 逐行处理已填充的数据。
16, ABAP 有三种内表类型:标准表,排序表,哈希表。内表的表关键字也就是根据哪个字段进行索引,可指定UNIQUE,标准表只以能是NON-UNIQUE(默认设置,无需指定),而哈希表只能是UNIQUE(必须指定),而排序表则可有可无。内表的大小默认为8KB.
17, 数据传输的过程,从数据库到工作区再到内表;访问内表,则表内表数据写入工作区,再对工作区进行访问。
18, 对内表进行插入:insert line into itab;或者insert lines of itab1 into itab2;此种方式比前者方式快出将近20倍。
19, 聚集附加:COLLECT line into ital;作用:根据表关键字附加行。要求一,内表一定只能是扁平结构;二,工作区与内表行类型完全兼容;三,非表关键字字段必须是数字类型。
20, 读取内表的行两种方式:一,根据索引read table itab into wa index idx.二,根据关键字read table itab from key into wa.
21, 修改内表的两种方式:,一,根据索引 modify itab from wa index idx; 二,根据关键字, modify table itab from wa.三,一次性个修改多行 modify itab transporting seqno(修改的字段) where ..... ;
22, 内表的排序 sort itab descending as text by f1.
23, 内表的控制级操作at level //<statement block >endat. 行组指的是字段F和F前面的全部字段,如果行组中的任何字段内容不同于上一行,则执行语句块中的内容。
24, 对内表进行初始化,清空,四放,CLEAR itab; clear itab[];refresh itab; free itab;
25, 字段符号:<fs> 可以理解为一个可以指向所有类型的指针,例:FIELD-SYMBOLS <fs> TYPE INDEX TABALE. ASSING itab to <fs>; 解为定义一个指向索引表的字段符号,然后对字段符号赋值。
26, 按值传递和按引用传递:语法上最大的区别在开,定义一个子程序时的形式参数有没有使用VALUE;例:form self_add using p1 type I,value(p2) type i.那样P1就是按照引用传递。
27, 子程序(form)与功能模块(function)的区别
28, 包含程序:只相当于把代码段插入到引用该名包含程序的位置,但不能与调用它的程序进行显式的数据传递,且包含程序不可单独运运,必须由其它程序调用。
29, 运行时错误控控制,一,直接把CATCH SYSTEM-EXCEPTIONS ***** ENDCATCH 来包含需要捕捉错误的代码块,再根据错误的返回代码进行相应的处理。 二,不可捕捉的错误,系统直接创建并进入Short Dump 界面,使用ST22事务代码查看。
===========2007-11-28==================
1,标准屏幕必须隶属于一个类型为I,M或F的ABAP程序,其中须要设计的内容包括屏幕布局(layout)以及隐含在其后的流逻辑(flow logic)。
2,所有的输入输出元素都需要有两种字段,一种的屏幕字段,另一种的ABAP程序字段,且两种字段在名称,长度,类型上一一对应。
3,OK代码字段,该字段的作用是返回用户在屏幕中触发的功能代码。
4,每一个屏幕流逻辑中都至少包含PBO与PAI这两个关键字语句,流控制中最常用的关键字除了PROCESS外还有MODULE.
5,用户交互屏幕的实现的几个步骤:1,创建屏幕,二在屏幕流逻辑中添加PBO,PAI的并相印调用不同的模块(MODULE)
6,P360页所有的消息都存储在系统数据表T100中,包含四个字段,语言代码,消息类,消息序列号,消息文本。进入消息的初始界面的事务代码为SE91。消息类型(与消息类不同)共六种,A,E,I S,W,X。系统消息类为00。
例: MESSAGE S001(ZMM01) WITH 'Data was not found'."S是消息类型,001是消息文本,在此处为&占位符,所以需要WITH文本来替代,ZMM01是消息类。

7,子程序的定义与调用,在定义与调用的中使用USING或CHANGING两个关键字进行实参与形参的定义。在调用中两者没有区别,只有在定义中才有点区别,区别就是CHANGING后面附带的参数不管有没有VALUE都实现按引用传值的结果。
8,内表定义中使用表头行与没有使用的区别:
楼主热帖
启用邀请码注册,提高发帖质量,建设交流社区
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表