SAP 查询。根据选择屏幕上的输入检索值
SAP query. Retrieve values basing on input on selection screen
我对编写 SAP 查询感到困惑。我是 ABAP 的新手。
我想要实现的是表 ESLL、EKPO、EKKO 之间的连接。
具体来说,这些是我想要实现的步骤:
- 在selection参数每次输入查询我都会
为 ESLL-EXTSRVNO 提供不同的值;
- 基于该值,查询自动应该 select ESLL-PACKNO 基于给定的 ESLL-EXTSRVNO;
- 那么查询应该让 ESLL-SUB_PACKNO 等于
之前步骤的 ESLL-PACKNO 值;
- 那么查询应该
将新的 ESLL-PACKNO 值设置为等于 EKPO-PACKNO 并检索
以下字段:EKPO-EBELN、EKPO-EBELP、EKPO-MATKL。
我已经在信息集中写了一些代码,但我不知道如何修复它。
在 "data" 部分我写了:
DATA: it_esll TYPE TABLE OF esll.
DATA: it_esll2 TYPE TABLE OF esll.
DATA: it_ekpo TYPE TABLE OF ekpo.
在"start-of-selection"部分我写了:
SELECT packno
FROM esll
INTO TABLE it_esll.
IF sy-subrc EQ 0.
SELECT packno FROM esll
into TABLE it_esll2
for ALL ENTRIES IN it_esll
where sub_packno EQ it_esll-packno.
IF sy-subrc EQ 0.
SELECT ebeln ebelp bukrs werks matkl menge netpr peinh
FROM ekpo
into TABLE it_ekpo
for ALL ENTRIES IN it_esll2
WHERE packno EQ it_esll2-packno.
endif.
endif.
并且,为了显示我想要的所有信息,我加入了以下连接:
ESLL-PACKNO --> EKPO-PACKNO --> EKPO-EBELN --> EKKO-EBELN
最后我想显示这些信息:
- EKPO-EBELN
- EKPO-EBELP
- EKPO-MATKL
- EKKO-BSART
- EKPO-PACKNO
你能帮帮我吗?
一种选择是在您的信息集中使用别名 table,如下所示:
- 第一个table:ESLL;
- 第二个 table ZESLL(ESLL 上的别名)加入 ZESLL-PACKNO = ESLL-SUB_PACKNO;
- 第三个 table:EKPO 加入 EKPO-PACKNO = ZESLL-PACKNO;
- 第四个 table:EKKO 加入 EBELN;
所以你可以避免 ABAP
我对编写 SAP 查询感到困惑。我是 ABAP 的新手。
我想要实现的是表 ESLL、EKPO、EKKO 之间的连接。 具体来说,这些是我想要实现的步骤:
- 在selection参数每次输入查询我都会 为 ESLL-EXTSRVNO 提供不同的值;
- 基于该值,查询自动应该 select ESLL-PACKNO 基于给定的 ESLL-EXTSRVNO;
- 那么查询应该让 ESLL-SUB_PACKNO 等于 之前步骤的 ESLL-PACKNO 值;
- 那么查询应该 将新的 ESLL-PACKNO 值设置为等于 EKPO-PACKNO 并检索 以下字段:EKPO-EBELN、EKPO-EBELP、EKPO-MATKL。
我已经在信息集中写了一些代码,但我不知道如何修复它。
在 "data" 部分我写了:
DATA: it_esll TYPE TABLE OF esll.
DATA: it_esll2 TYPE TABLE OF esll.
DATA: it_ekpo TYPE TABLE OF ekpo.
在"start-of-selection"部分我写了:
SELECT packno
FROM esll
INTO TABLE it_esll.
IF sy-subrc EQ 0.
SELECT packno FROM esll
into TABLE it_esll2
for ALL ENTRIES IN it_esll
where sub_packno EQ it_esll-packno.
IF sy-subrc EQ 0.
SELECT ebeln ebelp bukrs werks matkl menge netpr peinh
FROM ekpo
into TABLE it_ekpo
for ALL ENTRIES IN it_esll2
WHERE packno EQ it_esll2-packno.
endif.
endif.
并且,为了显示我想要的所有信息,我加入了以下连接: ESLL-PACKNO --> EKPO-PACKNO --> EKPO-EBELN --> EKKO-EBELN
最后我想显示这些信息:
- EKPO-EBELN
- EKPO-EBELP
- EKPO-MATKL
- EKKO-BSART
- EKPO-PACKNO
你能帮帮我吗?
一种选择是在您的信息集中使用别名 table,如下所示:
- 第一个table:ESLL;
- 第二个 table ZESLL(ESLL 上的别名)加入 ZESLL-PACKNO = ESLL-SUB_PACKNO;
- 第三个 table:EKPO 加入 EKPO-PACKNO = ZESLL-PACKNO;
- 第四个 table:EKKO 加入 EBELN;
所以你可以避免 ABAP