abap 调用程序

abap 调用程序,第1张

假如我们调用一个程序select-options

DATA: RSPAR_TAB TYPE TABLE OF RSPARAMS,

        RSPAR_LINE LIKE LINE OF RSPAR_TAB.

  CLEAR:RSPAR_TAB[],RSPAR_LINE.

*RSPAR_LINE-SELNAME = 'SD_SAKNR'.

*        RSPAR_LINE-SIGN = 'I'.

*        RSPAR_LINE-OPTION = 'BT'.

*        RSPAR_LINE-LOW = '1405010000'.

*        RSPAR_LINE-HIGH = '1405020000'.

*        APPEND RSPAR_LINE TO RSPAR_TAB. CLEAR: RSPAR_LINE.

*

*        RSPAR_LINE-SELNAME = 'SD_SAKNR'..

*        RSPAR_LINE-SIGN = 'I'.

*        RSPAR_LINE-OPTION = 'BT'.

*        RSPAR_LINE-LOW = '1404010000'.

*        RSPAR_LINE-HIGH = '1404020000'.

*        APPEND RSPAR_LINE TO RSPAR_TAB. CLEAR: RSPAR_LINE.

*

*        RSPAR_LINE-SELNAME = 'SD_SAKNR'..

*        RSPAR_LINE-SIGN = 'I'.

*        RSPAR_LINE-OPTION = 'BT'.

*        RSPAR_LINE-LOW = '1403010000'.

*        RSPAR_LINE-HIGH = '1403020000'.

*        APPEND RSPAR_LINE TO RSPAR_TAB. CLEAR: RSPAR_LINE.

*

*        RSPAR_LINE-SELNAME = 'SD_BUKRS'..

*        RSPAR_LINE-SIGN = 'I'.

*        RSPAR_LINE-OPTION = 'EQ'.

*        RSPAR_LINE-LOW = '8030'.

*        .

*        APPEND RSPAR_LINE TO RSPAR_TAB. CLEAR: RSPAR_LINE.

*

*        SUBMIT RFITEMGL WITH SELECTION-TABLE RSPAR_TAB

*        VIA SELECTION-SCREEN AND RETURN.

第二种

第三种

定义数据类型用关键字 TYPES.

定义数据对象用关键字 DATA.

在abap程序中用abap基本数据类型(预定义类型)定义局部数据类型,还可以定义包含多个abap基本数据类型的结构体类型。

参考现有的数据对象(LIKE)

DATA A2 LIKE A1."A1对象

参考现有的数据类型(TYPE)

DATA A2 LIKE A1."A1类型

VALUE关键字来指定数据对象的初始值。

DATA NUM1 TYPE I VALUE 10. "NUM1初始值为10

LENGHT关键字指变量长度。

DATA NUM2 TYPE C LENGHT8.

DATA NUM2(8) TYPE C.

DATA语句没有指定 TYPE则默认长度为1的C类型。

SY-SUBRC:系统执行某命令后,表示执行成功与否的变量,'0'表示成功

SY-UNAME:当前使用者的name

SY-DATUM:当前系统日期

SY-UZEIT:当前系统时间

SY-TCODE:当前执行程序的Tcode

数值文字不加单引号

123,-123

字符文字加单引号

'HELLO','123.4','123E4'

CONSTANTS语句用来定义常数,必须有VALUE值

CONSTANTS a1 TYPE TNAME VALUE8.

一个汉字占两个长度

赋值

MOVE 对象/对象字段 TO 对象/对象字段.

对象/对象字段 = 对象/对象字段.

所有的符号都要用空格隔开,圆括号和 *** 作符都是关键字需要跟 *** 作数之间至少用一个空格隔开。

例:( 20 + 10) *10 + 10 / 2.

用'/'去大值 用DIV取小值

ABS(n):取绝对值

SIGN(n):判断数值符号

n为正,返回1;n为0,返回0;n为负,返回-1;

CEIL(n):取大于数值n的最小整数.

例:WRITE CEIL(1.23). 输出2

WRITE CEIL(-2.23). 输出-2

FLOOR(n):取小于数值n的最小整数

例:WRITE FLOOR(1.23). 输出1

WRITE FLOOR(-2.23). 输出-3

TRUNC(n):去数值的整数部分

例:WRITE TRUNC(1.23). 输出1

WRITE TRUNC(-2.23). 输出-2

FRAC(n):去数值的小数部分

例:WRITE FRAC(1.23). 输出0.23

具体用法:

具体的可以在程序属性的程序类型选择列表里面看到,主要是下面这几类:

1、可执行程序 (stand-along program类型为 1) ,特点是可以直接执行,而无需事务码,这个也是一般报表开发最常用的程序类型。

2、为屏幕绘制器画出的屏幕所用的模块池 (module pool程序类型为 M) ,包含了来自业务的屏幕模块的处理步骤,它只能通过事务码或者菜单功能调用。

3、包含程序 (include program程序类型为 I) ,包含了不能独立运行的程序代码,也就是说,无论你是在 SE38 里用执行功能还是通过事务码或菜单调用,都无法打开一个包含程序。它们的作用主要是让程序变得清晰和可以被重用,在其他程序里,用 INCLUDE 语句可以把一个包含程序加到程序里。最终的效果相当于用被包含的程序里的全部内容替换调 INCLUDE 语句。

4、子程序 (subroutine pool程序类型为 S) ,这种类型的程序里只包含被外部 PERFORM 语句调用的程序块。也就是说,只包含形如 FORM ... ENDFORM 块的程序代码,从外部程序里,用 PERFORM IN PROGRAM [IF FOUND]. 来调用。

5、函数组 (function group程序类型为 F) ,这类程序包含了函数模块。函数组和函数模块用函数制作器进行管理,事务码 SE37。在创建函数组和函数模块时,函数制作器把程序类型设置为 F。

6、接口池 (interface definitions程序类型为 J) 包含了接口。类和接口都在类制作器中管理,事务码 SE24。

7、类池 (class definitions程序类型为 K) ,包含了类。类和接口都在类制作器中管理,事务码 SE24。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11036302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存