REPORTYTEST26.
*定义内表
DATA WA_SPFLI LIKE TABLE OF SPFLI WITH HEADER LINE.
*内表赋值
SELECT * INTO TABLE WA_SPFLI FROM SPFLI.
*通过数据字典结构显示ALV
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'SPFLI'
TABLES
T_OUTTAB = WA_SPFLI
EXCEPTIONS
PROGRAM_ERROR= 1
OTHERS = 2.
IF SY-SUBRC0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
这是一个ALV报表的例子.里面就用了一个透明表.运行正常. 但我用多个透明表连接成的内表.生成ALV,就不行了,出不了数据.哪借了,麻烦哪位达人帮看看.
REPORTztest26.
*TYPE-POOLS: slis.
TABLES: mara, makt, mard, mbew.
DATA: BEGIN OF itab OCCURS 0,
matnr LIKEmard-matnr,
labst LIKEmard-labst,
END OF itab.
DATA: matnr LIKE mara-matnr, "'material number
maktx LIKE makt-maktx, "'material discribe
labst LIKE mard-labst, "'material store
topri LIKE mbew-verpr, "'TOTAL PRICE
mopri LIKE mbew-verpr, "'MOVE PRICE
stpri LIKE mbew-stprs. "'STAND PRICE
TYPES: BEGIN OF itab2 , "OCCURS 0,
matnr LIKE mara-matnr, "'material number
maktx LIKE makt-maktx, "'material discribe
labst LIKE mard-labst, "'material store
topri LIKE mbew-verpr, "'TOTAL PRICE
mopri LIKE mbew-verpr, "'MOVE PRICE
stpri LIKE mbew-stprs, "'STAND PRICE
END OF itab2.
DATA itab1 TYPE TABLE OF itab2 WITH HEADER LINE.
TYPESwa TYPE itab2.
*data:itab2 TYPE itab1.
*TYPES itab2 like itab1.
SELECT-OPTIONS matnr1 FORmara-matnr.
SELECT matnr SUM( labst ) INTO TABLE itab
FROM mard
GROUP BY matnr .
ULINE AT /1(108).
SELECT a~matnr MIN( b~maktx ) AS maktx SUM( c~labst ) AS labst
d~verpr d~stprs
INTO (matnr, maktx, labst, mopri, stpri)
FROM mara AS a INNER JOIN makt AS b ON a~matnr = b~matnr
INNER JOIN mard AS c ON a~matnr = c~matnr
INNER JOIN mbew AS d ON a~matnr = d~matnr
WHERE a~matnr IN matnr1
GROUP BY a~matnr d~verpr d~stprs
ORDER BY a~matnr.
itab1-matnr = matnr.
itab1-maktx = maktx.
itab1-labst = labst.
topri = labst * mopri.
itab1-mopri = mopri.
itab1-stpri = stpri.
APPENDitab1.
ENDSELECT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_structure_name
= 'itab2'
TABLES
t_outtab
= itab1
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
IF sy-subrc0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
|