赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 3247|回复: 6

[ABAP问题] 如何把两个不能关联的内表的数关联起来

  [复制链接]
发表于 2011-1-14 16:16:46 | 显示全部楼层 |阅读模式
1赛跑币

  1. TYPES:BEGIN OF TYP_TEMP1,
  2. 如何把这个结构里的所有字段的数据取出来放到这个内表里啊
  3. 希望老大把具体代码写一下 因为小弟确实不会呀  说思路不够呀
  4.       SHKZG TYPE BSEG-SHKZG,                     "借方/贷方标识
  5.       PRCTR TYPE BSEG-PRCTR,                     "利润中心
  6.       PROJK TYPE BSEG-PROJK,                     "工作分解结构元素 (WBS 元素)
  7.       DMBTR TYPE BSEG-DMBTR,                     "按本位币计的金额
  8.       KOSTL TYPE BSEG-KOSTL,                     "成本中心
  9.       MATNR TYPE BSEG-MATNR,                     "物料号
  10.       EBELP TYPE BSEG-EBELP,                     "采购凭证的项目编号
  11.       EBELN TYPE BSEG-EBELN,                     "采购凭证号
  12.       BUKRS TYPE BSEG-BUKRS,                     "公司代码
  13.       HKONT TYPE BSEG-HKONT,                     "总分类帐帐目
  14.       BELNR TYPE BSEG-BELNR,                     "会计凭证号码
  15.       GJAHR TYPE BSEG-GJAHR,                     "会计年度
  16.       BUZEI TYPE BSEG-BUZEI,                     "会计凭证中的行项目数
  17.       MONAT TYPE BKPF-MONAT,                     "会计期间
  18.      END OF TYP_TEMP1.

  19. TYPES:BEGIN OF TYP_TEMP2,
  20.       MONAT TYPE BKPF-MONAT,
  21.       BELNR TYPE BKPF-BELNR,
  22.       GJAHR TYPE BKPF-GJAHR,
  23.       END OF TYP_TEMP2.


  24. SELECTION-SCREEN:BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
  25. PARAMETERS: P_GJAHR LIKE BSEG-GJAHR DEFAULT SY-DATUM+0(4) OBLIGATORY.
  26. SELECT-OPTIONS: S_MONAT FOR BKPF-MONAT OBLIGATORY DEFAULT '01' TO '12' NO-EXTENSION.
  27. SELECT-OPTIONS: S_BELNR FOR BSEG-BELNR.
  28. SELECTION-SCREEN:END OF BLOCK BLK1.
复制代码

最佳答案

查看完整内容

思路是这样的: 先从BKPF里把字段和会计年度,公司代码,凭证号码都取出,取出条件是根据会计年度,公司代码,凭证号码。取出后放在一个内部表里。 再从BSEG里把其他字段取出,取出条件是根据上面BKPF的内表内的会计年度,公司代码,凭证号码。用FOR ALL ENTRIES关键字就可以了。类似的代码如下,你可以参照一下。你的代码我就不写了。也没时间帮你写。 SELECT BUKRS GJAHR BELNR MONAT ...




上一篇:ALV动态显示列
下一篇:请教:SAP B1 系统,物料主数据问题
本楼点评(0) 收起
发表于 2011-1-14 16:16:47 | 显示全部楼层
思路是这样的:
先从BKPF里把字段和会计年度,公司代码,凭证号码都取出,取出条件是根据会计年度,公司代码,凭证号码。取出后放在一个内部表里。

再从BSEG里把其他字段取出,取出条件是根据上面BKPF的内表内的会计年度,公司代码,凭证号码。用FOR ALL ENTRIES关键字就可以了。类似的代码如下,你可以参照一下。你的代码我就不写了。也没时间帮你写。

  SELECT BUKRS
         GJAHR
         BELNR
         MONAT
         BUDAT
   INTO  CORRESPONDING FIELDS OF TABLE IT_BKPF
   FROM  BKPF
  WHERE BUKRS IN P_BUKRS
    AND BSTAT = ' '
    AND BUDAT IN P_BUDAT.

  IF SY-SUBRC <> 0.
      MESSAGE S999 DISPLAY LIKE 'E'
      WITH 'There is no data for this paramater'.
      STOP.
  ENDIF.

  SELECT BUKRS
         GJAHR
         BELNR
         BUZEI
         RSTGR
         SHKZG
         DMBTR
   INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
   FROM BSEG
   FOR ALL ENTRIES IN IT_BKPF
   WHERE BUKRS = IT_BKPF-BUKRS
     AND GJAHR = IT_BKPF-GJAHR
     AND BELNR = IT_BKPF-BELNR
     AND RSTGR <> SPACE
     AND LOKKT IN S_LOKKT.
本楼点评(0) 收起
回复

使用道具 举报

发表于 2011-1-14 17:04:42 | 显示全部楼层
我没懂你的意思,如果是想抓出BSEG和BKPF的数据,直接inner join 就好了啊。
本楼点评(0) 收起
回复

使用道具 举报

发表于 2011-1-17 10:16:36 | 显示全部楼层
我都不知道怎么发贴呢
本楼点评(0) 收起
回复

使用道具 举报

发表于 2011-4-1 22:22:20 | 显示全部楼层
看的有点蒙,可能对系统还不熟悉,还是谢谢啦!
本楼点评(0) 收起
回复

使用道具 举报

发表于 2013-6-24 22:53:27 | 显示全部楼层
学习
本楼点评(0) 收起
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-5-20 23:54 , Processed in 0.219343 second(s), 43 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表