abap中100个数据如何十个数据作为一行打印出来
时间: 2024-02-26 13:59:23 浏览: 20
您好,以下是 ABAP 中将 100 个数据每十个数据作为一行打印的代码:
```
DATA: lt_data TYPE STANDARD TABLE OF i WITH DEFAULT KEY.
DATA: lv_counter TYPE i.
* 填充数据表
DO 100 TIMES.
lv_counter = sy-index.
INSERT lv_counter INTO TABLE lt_data.
ENDDO.
* 每十个数据一行输出
LOOP AT lt_data INTO lv_counter.
IF sy-tabix MOD 10 = 1.
WRITE: / lv_counter.
ELSE.
WRITE: lv_counter.
ENDIF.
ENDLOOP.
```
上述代码首先创建了一个标准的内表 lt_data,用于存储 100 个整型数据。然后使用 DO 循环填充数据表。最后使用 LOOP AT 循环遍历数据表,并使用 MOD 运算符检查当前行号是否为 1 的倍数。如果是,则使用 WRITE 语句在新的一行打印当前数据,否则就在同一行上追加打印数据。
希望这个例子能够帮到您!
相关问题
Abap语言把一个表中的数据取出存进另一个表
在 ABAP 中,可以使用以下代码将一个表中的数据取出并存储到另一个表中:
```
DATA: itab1 TYPE TABLE OF <table_name>,
itab2 TYPE TABLE OF <table_name>.
* 将数据从itab1表中取出并存储到itab2表中
itab2[] = itab1[].
```
其中,`<table_name>` 是源表和目标表的名称。这段代码会将源表中的所有数据取出并存储到目标表中。如果需要从源表中选择特定的行或列,可以使用 `SELECT` 语句来实现。例如:
```
SELECT * FROM <table_name> INTO TABLE itab1
WHERE <condition>.
```
这会将符合条件的行从源表中选择出来,并存储到 `itab1` 表中。然后,再使用上面提到的代码将数据从 `itab1` 表中取出并存储到 `itab2` 表中。
用abap代码写一个显示物料数据报表
以下是一个简单的 ABAP 代码示例,用于显示物料数据报表,包括物料号、物料描述、批次号和库存数量。
```
REPORT z_material_report.
TABLES: mara, mard.
DATA: BEGIN OF itab OCCURS 0,
matnr TYPE mara-matnr,
maktx TYPE mara-maktx,
charg TYPE mard-charg,
labst TYPE mard-labst,
END OF itab.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
SELECT mara~matnr
mara~maktx
mard~charg
mard~labst
FROM mara
JOIN mard
ON mara~matnr = mard~matnr
INTO TABLE itab
WHERE mara~matnr IN s_matnr.
IF sy-subrc = 0.
WRITE: / '物料号', '物料描述', '批次号', '库存数量'.
LOOP AT itab.
WRITE: / itab-matnr, itab-maktx, itab-charg, itab-labst.
ENDLOOP.
ELSE.
WRITE: / '没有符合条件的数据。'.
ENDIF.
```
这段代码首先定义了一个内部表 itab,包含物料号、物料描述、批次号和库存数量等字段。然后,使用 SELECT 语句从 MARA 和 MARD 表中检索所需的数据,并将其存储在内部表中。最后,通过一个循环遍历内部表,并使用 WRITE 语句将数据输出到屏幕上。