标签: abap

从最嵌套的循环继续最外层循环

有没有办法从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)

sap abap loops nested-loops

-1
推荐指数
1
解决办法
2835
查看次数

何时在ABAP中使用TYPE和LIKE

为什么会出现此错误.当我使用*类型(在第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

sap abap

-1
推荐指数
1
解决办法
2020
查看次数

ABAP - 选择MAX值与选择条件匹配的行

这是我希望在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)

然而,这个选择始终网我的价值观1lv_rmzhl,并且20140826lv_iedd,因此没有得到MAX像我试图获得价值.我明白,通过将所有内容放入内部表格并对RMZHL …

abap opensql

-1
推荐指数
1
解决办法
1万
查看次数

在透明表中创建表条目?

我创建了一张透明表,名为ZSID_TT

我还为每个字段创建了数据元素和域。
也已保存并激活。
但当我去Utilities --> TABLE CONTENTS --> there CREATE条目时已被禁用。

在此输入图像描述

我无法向该表输入数据。
我得到以下输出

在此输入图像描述

abap

-1
推荐指数
1
解决办法
96
查看次数

如何使数字看起来像用空格分隔的3位数组

我想改变我的货币风格; 现在我的风格是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.

我该如何继续这样做?

sap abap split

-1
推荐指数
1
解决办法
59
查看次数

如何从表中获取记录数?

SELECT COUNT(*) AS NumberOfRecords FROM tableX; 我如何将其转换为 sap ABAP

abap opensql

-2
推荐指数
1
解决办法
1万
查看次数

如何将内部表格显示为ALV?

我想在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)

sap abap

-9
推荐指数
1
解决办法
9857
查看次数

标签 统计

abap ×7

sap ×4

opensql ×2

loops ×1

nested-loops ×1

split ×1