永发信息网

ABAP中建立6个选择屏幕分别对应6个透明表,之后我要把数据放在一个内表中,怎么写条件?6个表没有关联。

答案:3  悬赏:0  手机版
解决时间 2021-01-12 09:38
  • 提问者网友:爱唱彩虹
  • 2021-01-11 23:20
ABAP中建立6个选择屏幕分别对应6个透明表,之后我要把数据放在一个内表中,怎么写条件?6个表没有关联。
最佳答案
  • 五星知识达人网友:梦中风几里
  • 2021-01-12 00:28
没有关联 你怎么把他放在一个内表里面?
就算没有直接关联 也得有间接的关联啊
比如说物料号 物料描述 物料类型 物料类型描述
这里面物料类型和物料描述是没有关联的
但是他们可以根据物料编码进行关联
这样子 可以在select的时候通过join关联
也可以先取出来放在不同的内表 然后根据条件去read放到一起
你这样子六个表 最好不要一次全部join join太多了可能影响速度追问left out jion 的话也只能一次,我想用嵌套查询试试,透明表的表结构我用SE16看了,但是主键外键我不知道,我才学ABAP,不知道怎么弄。请问您有例子吗?追答就用这种方式去read modify 比较粗暴的就是loop里面写select

data: BEGIN OF itab OCCURS 0,
matnr like mara-matnr,
mtart like mara-mtart,
MTBEZ like T134t-MTBEZ,
END OF itab.
data: itab1 like standard TABLE OF itab WITH HEADER LINE.
SELECT * into CORRESPONDING FIELDS OF TABLE itab
from mara
UP TO 50 rows.
SELECt * into CORRESPONDING FIELDS OF TABLE itab1
from t134t where spras = '1'.
sort itab1 by mtart ASCENDING.
LOOP AT itab.
read table itab1 with key mtart = itab-mtart BINARY SEARCH.
if sy-subrc = 0.
itab-MTBEZ = itab1-MTBEZ.
modify itab TRANSPORTING MTBEZ.
endif.
ENDLOOP.
全部回答
  • 1楼网友:等灯
  • 2021-01-12 02:24
有个办法是建立一个大的内表涵盖你所需要用的所有字段,然后对6个表内容进行循环并将其放入你所建立的大内表中,因为你的6个表是没有关联的,因此我想到这个方法,但是也有很多问题需要注意,比如不同表的行项目如何对应起来,还是要具体问题具体分析
  • 2楼网友:狂恋
  • 2021-01-12 01:19
data: BEGIN OF itab OCCURS 0,
matnr like mara-matnr,
mtart like mara-mtart,
MTBEZ like T134t-MTBEZ,
END OF itab.
data: itab1 like standard TABLE OF itab WITH HEADER LINE.
SELECt * into CORRESPONDING FIELDS OF TABLE itab
from mara
UP TO 50 rows.
SELECt * into CORRESPONDING FIELDS OF TABLE itab1
from t134t where spras = '1'.
sort itab1 by mtart ASCENDING.
LOOP AT itab.
read table itab1 with key mtart = itab-mtart BINARY SEARCH.
if sy-subrc = 0.
itab-MTBEZ = itab1-MTBEZ.
modify itab TRANSPORTING MTBEZ.
endif.
ENDLOOP.
你认真研究下!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯