|
最初由 hjy2000 发布
[B]
到系统什么地方能找到一个alv表? [/B]
alv是一种显示表的格式而已,有现成的function供调用,只需要把相关数据传进去就可以了。
我这边也有个以前做的代码。
*&---------------------------------------------------------------------*
*& Report Z214035TEST_3 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT z214035test_3.
TYPE-POOLS : slis.
*Internal table declaration.
DATA:BEGIN OF t_data OCCURS 10,
vbeln LIKE vbap-vbeln,
matnr LIKE vbap-matnr,
ernam LIKE vbak-ernam,
zmeng LIKE vbap-zmeng,
zieme LIKE vbap-zieme,
END OF t_data.
DATA: ls_layout TYPE slis_layout_alv,
it_fieldcat TYPE slis_t_fieldcat_alv.
TABLES: vbap,vbak,mara.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS so_vbeln FOR vbap-vbeln.
SELECT-OPTIONS so_matnr FOR vbap-matnr.
SELECTION-SCREEN END OF BLOCK blk1.
END-OF-SELECTION.
*Retrieve data from db table.
SELECT vbap~vbeln vbap~matnr vbak~ernam vbap~zmeng vbap~zieme
* INTO CORRESPONDING FIELDS OF TABLE t_data
INTO TABLE t_data
FROM vbap INNER JOIN vbak ON vbap~vbeln = vbak~vbeln
WHERE vbap~vbeln IN so_vbeln
AND vbap~matnr IN so_matnr.
IF sy-subrc <> 0.
ENDIF.
ls_layout-zebra = 'X'.
PERFORM fill_catalog USING: 1 'VBELN' 'T_DATA' '20' 'Sales Doc',
2 'MATNR' 'T_DATA' '20' 'Material No.',
3 'ERNAM' 'T_DATA' '30' 'Creator Name'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = ls_layout
it_fieldcat = it_fieldcat
TABLES
t_outtab = t_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
*IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
*&---------------------------------------------------------------------*
*& Form fill_catalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_1 text
* -->P_0112 text
* -->P_0113 text
* -->P_0114 text
* -->P_0115 text
*----------------------------------------------------------------------*
FORM fill_catalog USING value(p_col_pos)
value(p_fieldname)
value(p_tabname)
value(p_outputlen)
value(p_text).
data: ls_fieldcatalog type slis_fieldcat_alv.
ls_fieldcatalog-col_pos = p_col_pos .
ls_fieldcatalog-fieldname = p_fieldname.
ls_fieldcatalog-fieldname = p_fieldname.
ls_fieldcatalog-tabname = p_tabname.
ls_fieldcatalog-outputlen = p_outputlen.
ls_fieldcatalog-reptext_ddic = p_text.
append ls_fieldcatalog to it_fieldcat.
clear ls_feildcatalog.
ENDFORM. " fill_catalog |
|