用ABAP怎么编个开平方的程序。

用ABAP怎么编个开平方的程序。,第1张

data: tabix type sytabix

data : lw TYPE n

data : a TYPE n

lw = 9

a = sqrt( lw )

WRITE : a

ABAP--关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)

Stop 命令

使用该命令的程序位置

INITIALIZATION, AT

SELECTION-SCREEN, START-OF-SELECTION和GET

事件中

处理说明

1、 当在INITIALIZATION事件执行该命令,系统将直接触发应用服务器和客户端屏幕元素的发送;

2、 在其他事件中将直接触发END-OF-SELECTION事件的执行,如果不想执行END-OF-SELECTION,请使用RETURN或者 EXIT

注意事项

EXIT命令

使用该命令的程序位置

用于循环和程序模块中:DO和其他处理模块中(event block, dialog module,procedure (function module, method, subroutine))ENDDO,WHILEENDWHILE,LOOPENDLOOP,SELECTENDSELECT

处理说明

1、 循环处理中,EXIT只跳出当前的循环;

2、 在START-OF-SELECTION, GET,END-OF-SELECTION事件中,将直接触发List输出,将不执行END-OF-SELECTION事件;如果没有List输出,系统将直接返回选择屏幕;

3、 对于procedure系统返回调用处;

注意事项

Sap推荐EXIT只是用于循环处理,对于处理模块请使用Return。

RETURN命令

使用该命令的程序位置

用于处理模块中(eventblock, dialog module, procedure (function module, method, subroutine))

处理说明

1、 对于procedure ,RETURN将无条件退出当前的处理模块,不影响后续模块的执行;

2、 对于START-OF-SELECTION, GET,END-OF-SELECTION事件中,将直接触发List输出,将不执行END-OF-SELECTION事件;如果没有List输出,系统将直接返回选择屏幕;

注意事项

RETURN不管存在多少层次的循环,将直接退出当前处理模块,这一点和EXIT不同

CHECK命令

使用该命令的程序位置

用于循环和程序模块中:DO和其他处理模块中(event block,dialog module, procedure (function module, method, subroutine))ENDDO,WHILEENDWHILE,LOOPENDLOOP,SELECTENDSELECT

处理说明

1、 循环处理中,CHECK只是不执行本次循环的后续处理,继续调到下一次循环;

2、 在START-OF-SELECTION, GET,END-OF-SELECTION事件中,只是中断本事件内的后续代码的执行 ,不影响其他后续模块的处理,这和EXIT,RETURN是不同的;

3、 对于没有循环procedure系统返回调用处;

4、 对逻辑数据库的GET事件,系统退出本次纪录和子节点的读取处理,将继续下一条纪录的处理;

注意事项

Sap推荐CHECK只是用于循环处理,对于处理模块请使用Return。

REJECT命令

使用该命令的程序位置

用于逻辑数据库的GET处理事件中

处理说明

REJECT的处理类似CHECK,但和CHECK不同的是:REJECT如果在循环内也同样退出本次的处理,而CHECK只是退出循环,不退出处理

注意事项

1首先判断是否可能是ALV屏幕,选择屏幕都存在系统自动生成的MODULE %_INIT_PBO

2通过程序Source Scan扫描程序代码找到SET_TABLE_FOR_FIRST_DISPLAY/REUSE_ALV_GRID_DISPLAY/FACTORY

3找到IT_OUTTAB/T_OUTTAB/T_TABLE Mapping 的内表,排除TYPE LVC之类无关的字段,

不过此方法不完善,有待寻求更完美的~

想排JOB,就SM37;

想让别的程序调用就SUBMIT;

想自身执行就点执行键(白色的圆表加一个绿勾勾的图标)或者按F8,如果没有界面的话就打个断点,才能看到执行的过程

使用PERFORM FORM1 IN PROGRAM ('ZMM001')等价于PERFORM FORM1(ZMM001)

使用FIELD-SYMBOLS使用其他程序的数据,

FIELD-SYMBOLS <F1> TYPE ANY

DATA XX(50)

XX = '(ZMM002)G_DATA' "程序ZMM001中G_DATA的数据

ASSIGN (XX) TO <F1>

<F1> = 'SDFAS' "这样就可以将主程序中ZMM001的变量G_DATA的值修改为SDFAS了。

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

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。

搜索字符串

要搜索特定 模式的字符 串,请使用 SEARCH 语句,用法 如下:

语法

SEARCH <c> FOR <str> <options>

该语句在字 段 <c> 中搜索<str> 中的字符串 。如果成功 ,则将 SY-SUBRC 的返回代码 值设置为0并 将 SY-FDPOS 设置为字段 <c> 中该字符串 的偏移量。 否则将 SY-SUBRC 设置为4。

搜索串 <str> 可为下列格 式之一:

<str> 目 的

<pattern> 搜 索 <pattern>( 任何字符顺 序)。忽略 尾部空格。

<pattern> 搜 索 <pattern> ,但是不忽 略尾部空格 。

<pattern> 搜 索以 <pattern> 结尾的词。

<pattern> 搜 索以 <pattern> 开始的词。

单词之间用 空格、逗号 、句号、分 号、冒号、 问号、叹号 、括号、斜 杠、加号和 等号等分隔 。

DATA STRING(30) VALUE 'This is a little sentence'

WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'

ULINE /1(26)

SEARCH STRING FOR 'X'

WRITE: / 'X', SY-SUBRC UNDER 'SY-SUBRC',

SY-FDPOS UNDER 'SY-FDPOS'

SEARCH STRING FOR 'itt '

WRITE: / 'itt ', SY-SUBRC UNDER 'SY-SUBRC',

SY-FDPOS UNDER 'SY-FDPOS'

SEARCH STRING FOR 'e '

WRITE: / 'e ', SY-SUBRC UNDER 'SY-SUBRC',

SY-FDPOS UNDER 'SY-FDPOS'

SEARCH STRING FOR 'e'

WRITE: / 'e ', SY-SUBRC UNDER 'SY-SUBRC',

SY-FDPOS UNDER 'SY-FDPOS'

SEARCH STRING FOR 's'

WRITE: / 's ', SY-SUBRC UNDER 'SY-SUBRC',

SY-FDPOS UNDER 'SY-FDPOS'

该过程的输 出如下:

SEARCHED SY-SUBRC SY-FDPOS

X 4 0

itt 0 11

e 0 15

e 0 10

s 0 17

搜索字符字 段 <c> 的各种选项 (<options>) 如下

ABBREVIATED

在字段 <c> 中搜索包含 <str> 中指定字符 串的单词, 其中字符可 能被其它字 符隔开。单 词和字符串 的第一个字 母必须相同 。

STARTING AT <n1>

在字段 <c> 中搜索从 <n1> 开始的 <str> 。结果 SY-FDPOS 参照相对于 <n1> 的偏移量而 不是字段的 开始。

ENDING AT <n2>

在字段 <c> 搜索 <str> 直到位置 <n2>。

AND MARK

如果找到搜 索串,则将 搜索串中的 所有字符( 和使用 ABBREVIATED 时的所有字 符)转换为 大写形式。

以上就是关于用ABAP怎么编个开平方的程序。全部的内容,包括:用ABAP怎么编个开平方的程序。、SAP ABAP 编程问题、怎么用ABAP 代码判断,,某程序的某个屏幕上,输出了 ALV 且 计算 输出ALV 的内表有 多少个字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9809295.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存