Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7133992
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2007-12-05 11:20:00

*&---------------------------------------------------------------------*
*& Report  z_barry_deep_itab                                           *
*&---------------------------------------------------------------------*

REPORT z_barry_deep_itab.

TABLES ekko.

DATA: BEGIN OF itab OCCURS 0 ,
        ebeln LIKE ekko-ebeln ,
        lifnr LIKE ekko-lifnr ,
        bedat LIKE ekko-bedat ,
        ebelp LIKE ekpo-ebelp ,
        matnr LIKE ekbe-matnr ,
      END OF itab.

TYPES : BEGIN OF tp_ptab  ,
          ebeln LIKE ekbe-ebeln ,
          ebelp LIKE ekpo-ebelp ,
          matnr LIKE ekbe-matnr ,
        END OF tp_ptab .
TYPES tt_ptab TYPE STANDARD TABLE OF tp_ptab WITH DEFAULT KEY  .
DATA: it_ptab TYPE STANDARD TABLE OF tp_ptab WITH HEADER LINE .
DATA: wa_ptab LIKE LINE OF it_ptab .

TYPES : BEGIN OF tp_ktab ,
          ebeln LIKE ekko-ebeln ,
          lifnr LIKE ekko-lifnr ,
          bedat LIKE ekko-bedat ,
          ptab  TYPE tt_ptab ,
        END OF tp_ktab .
DATA: it_ktab TYPE STANDARD TABLE OF tp_ktab WITH HEADER LINE .
DATA: tmpebeln LIKE ekko-ebeln.

SELECT-OPTIONS: s_aedat FOR ekko-aedat.

START-OF-SELECTION.

  PERFORM getdata.
  PERFORM fixdata.
*---------------------------------------------------------------------*
*       FORM getdata                                                  *
*---------------------------------------------------------------------*
FORM getdata.
  SELECT ekko~ebeln ekko~lifnr ekko~bedat
         ekpo~ebelp ekpo~matnr
  INTO CORRESPONDING FIELDS OF TABLE itab
  FROM ekko INNER JOIN ekpo ON ekko~ebeln = ekpo~ebeln
  WHERE ekko~aedat IN s_aedat.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM fixdata                                                  *
*---------------------------------------------------------------------*
FORM fixdata.

  LOOP AT itab .
    ON CHANGE OF itab-ebeln .
      CLEAR it_ktab-ptab.
      CLEAR tmpebeln .
      tmpebeln = itab-ebeln .
      LOOP AT itab WHERE ebeln = tmpebeln .
        wa_ptab-ebeln = itab-ebeln .
        wa_ptab-ebelp = itab-ebelp .
        wa_ptab-matnr = itab-matnr .
        COLLECT wa_ptab INTO it_ktab-ptab .
      ENDLOOP .
      SORT it_ktab-ptab BY ebeln matnr .
      it_ktab-ebeln = itab-ebeln .
      it_ktab-lifnr = itab-lifnr .
      it_ktab-bedat = itab-bedat .
      APPEND it_ktab .
    ENDON .
  ENDLOOP .

ENDFORM.

注:deep 内表不能直接用户Select的INTO语句
阅读(3790) | 评论(7) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-02-23 11:56:02

一般两个表有主从表关系的时候有用

chinaunix网友2009-02-23 10:26:50

这个平面内表,有什么用呢?在什么地方能用到 ON CHANG OF 是什么意思

chinaunix网友2009-02-23 10:26:36

这个平面内表,有什么用呢?在什么地方能用到 ON CHANG OF 是什么意思

chinaunix网友2009-02-23 10:26:33

这个平面内表,有什么用呢?在什么地方能用到 ON CHANG OF 是什么意思

chinaunix网友2009-02-23 10:26:30

这个平面内表,有什么用呢?在什么地方能用到 ON CHANG OF 是什么意思