有没有办法从ABAP中最嵌套的循环中继续最外层循环?
Java中的示例.这种语言中有一个使用标签的构造(大多数人还不知道它),它允许我从嵌套的循环中继续最外层的循环.
public class NestedLoopContinue {
public static void main(String[] args) {
label1: for (int i = 0; i < 5; i++) {
for (int j = 0; j < 2; j++) {
if (i == 3) {
continue label1;
}
}
System.out.println(i + 1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这输出
1
2
3
5
Run Code Online (Sandbox Code Playgroud)
现在,我怎么能以聪明的方式在ABAP中做到这一点?一种解决方案是使用TRY. ENDTRY.块,但它更像是一个黑客攻击.还有其他想法吗?
DATA: l_outer_counter TYPE i.
DO 5 TIMES.
l_outer_counter = sy-index.
TRY.
DO 2 TIMES.
IF l_outer_counter = 4.
RAISE EXCEPTION TYPE cx_abap_random.
ENDIF. …Run Code Online (Sandbox Code Playgroud) 为什么会出现此错误.当我使用*类型(在第2行的类似位置)时不会显示任何错误,当我使用像显示错误.什么是LIKE和之间的区别TYPE
TYPES name(20) type c.
data student_name *like name.
student_name = 'satya'.
write student_name.
错误- NAME must a flat structure you can not use internal table,string referenceses or structure as component
这是我希望在AFRU表格中选择的数据样本.
+----------------------+-----------------+-------------------------+
| Confirmation (RUECK) | Counter (RMZHL) | Finish Execution (IEDD) |
+----------------------+-----------------+-------------------------+
| 30116 | 1 | 08/26/2014 |
| 30116 | 2 | 08/27/2014 |
| 30116 | 3 | 09/27/2013 |
+----------------------+-----------------+-------------------------+
Run Code Online (Sandbox Code Playgroud)
给定这个数据集,我想选择最后一行,因为它包含最高RMZHL值(我实际上只是在该IEDD记录的值之后).这是我一直在尝试使用的代码:
SELECT MAX( rmzhl ), iedd FROM afru
INTO (@DATA(lv_rmzhl), @DATA(lv_iedd))
WHERE rueck = '0000030116'
GROUP BY rmzhl, iedd.
...
<some fancy code here>
...
ENDSELECT.
Run Code Online (Sandbox Code Playgroud)
然而,这个选择始终网我的价值观1了lv_rmzhl,并且20140826为lv_iedd,因此没有得到MAX像我试图获得价值.我明白,通过将所有内容放入内部表格并对RMZHL …
我创建了一张透明表,名为ZSID_TT
我还为每个字段创建了数据元素和域。
也已保存并激活。
但当我去Utilities --> TABLE CONTENTS --> there CREATE条目时已被禁用。
我无法向该表输入数据。
我得到以下输出
我想改变我的货币风格; 现在我的风格是1234567.00,但我希望它像1 234 567.
第二个例子:12345.00应该是12 345.
如何进行此转换的最佳方法是什么?
现在我使用:
SPLIT x_string AT '.' INTO l_curr1 l_curr2.
Run Code Online (Sandbox Code Playgroud)
这给出l_curr1了值1234567.
我该如何继续这样做?
SELECT COUNT(*) AS NumberOfRecords FROM tableX; 我如何将其转换为 sap ABAP
我想在alv网格中显示内部表IT_FINAL(下面):
**** DATA Declaration
TABLES: mara.
TYPES: BEGIN OF ty_mara,
matnr TYPE matnr,
ersda TYPE ersda,
END OF ty_mara.
TYPES: BEGIN OF ty_makt,
matnr TYPE matnr,
maktx TYPE maktx,
END OF ty_makt.
TYPES: BEGIN OF ty_final,
matnr TYPE matnr,
ersda TYPE ersda,
maktx TYPE maktx,
END OF ty_final.
DATA: it_mara TYPE STANDARD TABLE OF ty_mara,
it_makt TYPE STANDARD TABLE OF ty_makt,
it_final TYPE STANDARD TABLE OF ty_final.
DATA: ls_mara LIKE LINE OF it_mara,
ls_makt LIKE LINE OF it_makt,
ls_final LIKE …Run Code Online (Sandbox Code Playgroud)