
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 的内表有 多少个字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)