赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 15280|回复: 69

[P2J9]ABAP变量

  [复制链接]
发表于 2010-11-2 15:17:26 | 显示全部楼层 |阅读模式
接下来几篇文章我们来学习一下ABAP变量定义部分的内容。定义部分总共包括三部分:变量/常量,工作区域,内部表。程序为什么要定义呢。有编程经验的学员应该知道,只有定义过的变量/常量,才能使用,没定义的话,编译是不过通过的。而且定义的时候要指定类型,长度等等。这些我们在后面会慢慢介绍,今天先介绍一下变量是如何定义的。首先什么是变量。
变量是可以存放单一的数值。这个数值在程序中是可以变化的。所以叫变量,看看是如何定义变的。定义的时候有好几种方法的。
1,参照已有的数据库,结构体,值类型等进行定义。例:
a,直接参照数据库
DATA: WK_LIFNR  TYPE EKKO-LIFNR,
解释:指把WK_LIFNR定义成跟表EKKO类型LIFNR一样的结构。比如EKKO-LIFNR的是长度为10的文本型的话,WK_LIFNR也是长度为10的文本型。
b,直接参照element
DATA: WK_LIFNR  TYPE LIFNR,
解释:指把WK_LIFNR定义成跟elemetn: LIFNR一样的结构。比如LIFNR的是长度为10的文本型的话,WK_LIFNR也是长度为10的文本型。
c,直接定义成系统结构类型
DATA: WK_UPDDATE  TYPE SY-DATUM.
解释:指把WK_UPDDATE定义成跟系统字段一样SY-DATUM的结构。可用SE11参看结构SYST的字段DATUM的类型。
二,直接利用SAP数据类型定义值类型DATA: WK_TX_TTL(20)  TYPE C  VALUE 'ABCDE'.表示类型是C,长度为20,初期值为ABCDE
DATA: WK_RECNUM      TYPE I   VALUE 123.表示类型为I,初期值为123
DATA: WK_TIMES          TYPE P  DECIMALS 3.表示类型为P,小数位为3
DATA: WK_SEQNO(5)    TYPE N.表示类型为N,长度为5
DATA: WK_INSDATE      TYPE D.表示类型为D
DATA: WK_INSTIME       TYPE T.表示类型为T
DATA: WK_MENGE_F     TYPE F.表示类型为F
DATA: WK_FILENAME    TYPE STRING.表示类型为STRING

SAP的类型有九大类型,就是上面的八大类型,具体的有什么意思了。我们来SAP培训一下。
C:文本类型。一般用于文本的定义。不定义长度的时候,默认为了1。
I:整数类型。用于数值的定义,且没有小数点。
P:P类型是跟上面的I类型相对的,带小数点,小数点位数用DECIMALS定义。
N:数值文本类型。就是说把数值当文本输出时用的,比如1,把它当文本,而非数字。
D:日期类型。为8位。可把它当成是YYYYMMDD的N型
T:时间类型。为6位。可把它当成是HHMMSS的N型
F:浮点型。它是比P型很精确,但是它不能直接输出,输出前要转成P型
STRING:文字列类型。可把它当成是长度可以自由调整的C型

常量定义的话,用关键字CONSTANTS:就可以了。例如
CONSTANTS:C_RATE  TYPE I    VALUE 100.这表示我们在程序里用到C_RATE的话,就是表示100。而且是永远不会改变的,直到程序结束为止。

基本的话,掌握上面的变量定义类型的话,就OK了。我们在写程序的时间,一般设计书上会告诉我们参照什么类型,不过当我们自己写设计书的时候就要注意其类型了。

最近访客

  • tbb1177
    2024-01-16
  • CY8122
    2023-02-28
  • uno
    2022-04-25
  • zxl
    2020-11-03
  • PCY
    2020-07-20




上一篇:[P2J1]ABAP程序的类型
下一篇:1、什么是ABAP开发语言
本楼点评(0) 收起
发表于 2010-12-12 23:36:44 | 显示全部楼层
落落的一下LZ,上边在定义变量及常量的时候,都有前缀如:
WK_LIFNR
C_RATE

这里的是一种什么命名规则?WK_代表变量? C_代表常量?

还有DATA: WK_LIFNR  TYPE LIFNR,是根据什么判断 LIFNR就是一个element?
本楼点评(0) 收起
 楼主| 发表于 2010-12-13 15:49:54 | 显示全部楼层
这里的是一种什么命名规则?WK_代表变量? C_代表常量?
这个每个项目都有编程规约的。一般用WA表示WORK AREA,C是CONSTANTS的意思,表示定数。

还有DATA: WK_LIFNR  TYPE LIFNR,是根据什么判断 LIFNR就是一个element?
如果有环境的话,你双击LIFNR就可以跳到SE11画面,就可看到是不是element,关于环境,我在想办法,请稍候。
本楼点评(0) 收起
发表于 2011-2-19 13:29:30 | 显示全部楼层
蛮奇妙的sap
本楼点评(0) 收起
发表于 2011-2-26 21:11:10 | 显示全部楼层
看ABAP定义之变量
帖子中隐藏部分!
本楼点评(0) 收起
发表于 2011-3-28 23:02:42 | 显示全部楼层
回一个吧,为了看帖,杯具
本楼点评(0) 收起
发表于 2011-3-29 11:54:47 | 显示全部楼层
查看隐藏内容
本楼点评(0) 收起
发表于 2011-4-7 21:12:25 | 显示全部楼层
凡走过必留下痕迹
本楼点评(0) 收起
发表于 2011-4-27 10:27:47 | 显示全部楼层
谢谢老师的分享
本楼点评(0) 收起
发表于 2011-4-28 17:19:41 | 显示全部楼层
學習中。。。。
本楼点评(0) 收起
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-4-25 14:58 , Processed in 0.428448 second(s), 68 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

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