基础知识回顾

以前在论坛上读到一篇文章,内容是关于ABAP开发的。里面说中国的ABAPER急于转型,没做多久开发就想去做模块,去做业务顾问,然而并没有多少人真的愿意去做好开发。

我原来很不理解他为什么这么说,因为做顾问并没什么不好。

不过最近做开发的时候,感觉他说的的确有一定的道理。因为我就是正在准备转型做业务的,可是发现自己的开发水平远没有自己认为地那么好。在过程中,发现了许多基础的问题其实自己并没有深入的理解,所以趁现在有时间总结一下。[@more@]

先从FORM说起。这个很常用了,在使用它的时候会用到

1. ... TABLES itab1 ... itabn
2. ... USING [VALUE(p1)| p1] ... [VALUE(pn) |pn]
3. ... CHANGING [VALUE(p1)| p1] ... [VALUE(pn) |pn]

它们之间有什么区别呢,一个一个来看一下。

TABLES在有些时候根据状况可以用USING或者CHANGING来代替。但是有一点一旦使用TABLES,那参数的TABLE TYPE只能是STANDARD TABLE。被指定的内部表,通常都是代表头行一起传递的。如果该内部表没有表头行,则会自动生成。生成的表头行只能在FORM内部使用。对于表头行,全局命令(HIDE等等)是不能使用的。关于TABLES参数的指定数据类型,我目前知道的是利用STRUCTURE来声明。

关于USINGCHANGING大家比较常用,需要注意的是参数的传递方法,以USING为例:

USING p1

参数在FORM内是可以变更的,在FORM结束后值被保存。

USING VALUE(p1)

使用VALUE()这个属性,只进行值传递。

刚才说到TABLE TYPE,顺便在总结一下:

1. STANDARD TABLE
2.
SORTED TABLE
3.
HASHED TABLE
4.
INDEX TABLE
5.
ANY TABLE

以上是命令DATA或者TYPES用到的参照表类型。关系图:

ANY TABLE
|
---------------------
| |
INDEX TABLE HASHED TABLE
|
---------------------
| |
STANDARD TABLE SORTED TABLE

关于具体每种表的特点,大家可以进一步研究一下。

下一个就是分析一下DATATYPES的区别。

通常大家会用到TYPES进行构造的定义,而用DATA进行内部表和工作区的定义。TYPES还可以进行内部表数据型的定义。下面有个例子:

TYPES: BEGIN OF STRUC,
NAME(10) TYPE C,
AGE TYPE I,
END OF STRUC.

TYPES: TAB1 TYPE STANDARD TABLE OF STRUC WITH DEFAULT KEY,
TAB2 TYPE SORTED TABLE OF STRUC
WITH NON-UNIQUE KEY NAME,
TAB3 TYPE HASHED TABLE OF STRUC WITH UNIQUE KEY NAME.

DATA: TAB4 TAB1 TYPE STANDARD TABLE OF STRUC.

其中TAB1TAB2TAB3可以用来声明FORM的表参数类型,当然是使用USING,功能类似TABLES。但是TAB4就不能作为表参数类型,这也是TYPESDATA的一个区别。

例子里面涉及到了UNIQUENON-UNIQUE,这个属性是限定表主键允许有重复值的。

对于STANDARD TABLE,默认设定是NON-UNIQUE,不能设定UNIQUE

对于SORTED TABLE,与STANDARD TABLE不同,是没有默认设定的。如果没有设定而使用,那么FORM的表参数将与参照的表类型一致。

对于HASHED TABLE,虽没有默认设定,但是UNIQUE是必要的。不能设定NON-UNIQUE

再一个是TABTAB[]的区别。

咨询了一下,两者的区别是根据TAB是否是有表头的表来区分的。如果定义的内部表有表头,那么TAB就代表表头行,而TAB[]就是整个表体的意思。就知道这么多了。

这些可能真的比较细微,可能大家都比较了解了,只是总结一下加深印象。

还有要说的就是细节问题了,这次在写式样书的时候,一直感觉这方面做得不好。有些很明显的要注意的地方都忽视了,可能大体上结果没什么问题,可是程序是很有精确要求的,所以会造成这样那样的问题。所以以后一定要仔细,多考虑些必要的东西。最后的就是测试了,因为只有通过全面的测试才能确保代码的准确性,尽量降低错误的发生。总之需要提高的还很多,希望大家一起探讨,共同进步。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/547380/viewspace-1001500/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/547380/viewspace-1001500/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值