ABAP 硬编码值到 SELECT 和字段到另一个字段
ABAP hard code value into SELECT and field into another field
在 ABAP 中可以创建一个 select 并包含一个硬编码值并在任何字段中放置一个值。
在我的示例中,我必须根据 VKORG 用公司代码 BUKRS 填充一个范围,所以我必须像这样在 TVKO 上做一个 select:
DATA : lt_rtvko TYPE RANGE OF bukrs.
SELECT 'I' as sign 'EQ' as option bukrs as low
INTO CORRESPONDING FIELDS OF TABLE lt_rtvko
FROM tvko
WHERE vkorg EQ p_vkorg.
但是我有一个转储。
我知道一个更长的解决方案,手动填充一个 table 的 TVKO 并制作一个 LOOP 来填充范围,但我相信我们有一个解决方案可以在一个操作中做到这一点,比如在我的例子中。
谢谢专家。
其实很简单。只需删除 INTO CORRESPONDING
和 AS
。只要值顺序正确,就没有问题:
SELECT 'I', 'EQ', bukrs
FROM tvko
INTO TABLE @lt_rtvko
WHERE vkorg = @p_vkorg.
而且我认为您的范围声明中有错字。应该是:
DATA: lt_rtvko TYPE RANGE OF bukrs.
在 ABAP 中可以创建一个 select 并包含一个硬编码值并在任何字段中放置一个值。
在我的示例中,我必须根据 VKORG 用公司代码 BUKRS 填充一个范围,所以我必须像这样在 TVKO 上做一个 select:
DATA : lt_rtvko TYPE RANGE OF bukrs.
SELECT 'I' as sign 'EQ' as option bukrs as low
INTO CORRESPONDING FIELDS OF TABLE lt_rtvko
FROM tvko
WHERE vkorg EQ p_vkorg.
但是我有一个转储。
我知道一个更长的解决方案,手动填充一个 table 的 TVKO 并制作一个 LOOP 来填充范围,但我相信我们有一个解决方案可以在一个操作中做到这一点,比如在我的例子中。
谢谢专家。
其实很简单。只需删除 INTO CORRESPONDING
和 AS
。只要值顺序正确,就没有问题:
SELECT 'I', 'EQ', bukrs
FROM tvko
INTO TABLE @lt_rtvko
WHERE vkorg = @p_vkorg.
而且我认为您的范围声明中有错字。应该是:
DATA: lt_rtvko TYPE RANGE OF bukrs.