ALV 编程实践(全) - ABAP DEMO 系列

[复制链接]
查看11 | 回复9 | 2007-7-31 11:25:35 | 显示全部楼层 |阅读模式
注册ITPUB已经好久了,但是一直没有发帖,积分比较少,连FTP都进不去,所以打算给论坛做点贡献,赚点积分挤入老会员行列。发现论坛的教学程序比较少,正好最近有空写点范例程序。我打算把ABAP涉及的项目中常用的应用程序都做一个DEMO供初学者参考(ALV, BDC, DIALOG PROG, REPORT PROG, SAP SCRIPT, SMARTFORMS, ETC…), 内容顺序跟培训课程不大一样,但这些都是独立模块,互相的关联没有太多限制,所以也没有关系。今天我将具体给出一个ALV的实践例子,抛砖引玉,有不足之处希望大家多多指教!同时希望ITPUB的其他同仁们也能够借此机会跟大家分享一些你们觉得有价值的ABAP程序。
[U]
应 merlinme(睡觉也会醒 )建议,已做成文档提供下载,请到11楼下载。
[/U]
今天我将给出5段程序代码,在SAP R/3 4.6C IDES 测试通过,程序细节如下:
1
程序代码: 一般列表显示(NORMAL LIST DISPLAY)
2
程序代码: SEARCH HELP(F4 HELP FOR DISPLAY VARIANTS)
3
程序代码: 层级显示(HIERARCHICALALV DISPLAY)
4
程序代码: 多内表的ALV显示(DISPLAY MORE THAN ONE INTERNAL TABLE IN ALV)
5
程序代码: ALV中的交互式报表程序(INTERACTIVE REPORTING INALV)
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
1.程序代码:一般列表显示(Normal List Display)
此程序用来显示制定的物料细节(MM模块)

TABLES : mara.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
TYPE-POOLS: slis.
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
ernam LIKE mara-ernam,
ersda LIKE mara-ersda,
labor LIKE mara-labor,
END OF itab.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv,
xeventsTYPE slis_t_event,
ls_eventTYPE slis_alv_event,
slis_ev_top TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: v_repid LIKE sy-repid.
START-OF-SELECTION.
v_repid = sy-repid.
SELECT matnr ernam ersda labor
INTO TABLE itab
FROM mara
WHERE matnr IN s_matnr.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = xevents
EXCEPTIONS
list_type_wrong = 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.
READ TABLE xevents WITH KEY name = slis_ev_top

INTO ls_event.
IF sy-subrc = 0.
MOVE slis_ev_top TO ls_event-form.
APPEND ls_event TO xevents.
ENDIF.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name
=v_repid
i_internal_tabname = 'ITAB'
* I_STRUCTURE_NAME
=
* I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname
= v_repid
i_bypassing_buffer = 'X'
i_buffer_active
= ' '
CHANGING
ct_fieldcat
= i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error
= 2
OTHERS
= 3

.
IF sy-subrc0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
= ' '
i_bypassing_buffer
= 'X'
i_buffer_active
= ' '
i_callback_program
= v_repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND= ' '
* I_STRUCTURE_NAME
=
* IS_LAYOUT
=
it_fieldcat
= i_fieldcat
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_DEFAULT
= 'X'
i_save
= 'A'
* IS_VARIANT
=
IT_EVENTS
= xevents
* IT_EVENT_EXIT
=
* IS_PRINT
=
* IS_REPREP_ID
=
* I_SCREEN_START_COLUMN
= 0
* I_SCREEN_START_LINE
= 0
* I_SCREEN_END_COLUMN
= 0
* I_SCREEN_END_LINE
= 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER=
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab
= itab
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.
*&--------------------------------------------------------------------*
*&Formtop_of_page
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
WRITE:/ 'Top of page event triggered’.
WRITE:/ ‘This report gives the material details'.
ENDFORM.
"top_of_page
复制代码
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
2. 程序代码: Search Help(F4 help for the display variant)
此程序将根据制定的filed得出相关的search help
PARAMETERS: p_vari LIKE disvariant-variant."select variant
DATA: v_st_variant LIKE disvariant,
v_stx_variantLIKE disvariant,
v_exit.
CONSTANTS: c_save(1) VALUE ‘A’.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
v_st_variant-report = sy_repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING

is_variant
= v_st_variant

i_save
= c_save
* it_default_fieldcat =
IMPORTING

e_exit
= v_exit

es_variant
= v_stx_variant
EXCEPTIONS

not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S'NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF v_exit = space.
p_vari = v_stx_variant-variant.
ENDIF.
ENDIF.
复制代码
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
3. 程序代码: 层级显示(hierarchical display)
此程序将层级显示PO(purchasing order)的细节(MM模块)。
TABLES : ekko,
ekpo.
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
TYPE-POOLS: slis.
DATA: BEGIN OF headertab OCCURS 0,
ebeln LIKE ekko-ebeln,
bstyp LIKE ekko-bstyp,
bsart LIKE ekko-bsart,
statu LIKE ekko-statu,
END OF headertab.
DATA: BEGIN OF itemtab OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
werks LIKE ekpo-werks,
menge LIKE ekpo-menge,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh,
netwr LIKE ekpo-netwr,
END OF itemtab.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: v_repid LIKE sy-repid.
DATA: g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname,
gs_keyinfo TYPE slis_keyinfo_alv.
START-OF-SELECTION.
v_repid = sy-repid.
SELECT ebeln bstyp bsart statu
INTO TABLE headertab
FROM ekko
WHERE ebeln IN s_ebeln.
IF NOT headertab[] IS INITIAL.
SELECT ebeln ebelp matnr werks menge netpr peinh netwr
INTO TABLE itemtab
FROM ekpo
FOR ALL ENTRIES IN headertab
WHERE ebeln = headertab-ebeln.
ENDIF.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name
=v_repid
i_internal_tabname = 'HEADERTAB'
* I_STRUCTURE_NAME
=
* I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname
= v_repid
i_bypassing_buffer = 'X'
i_buffer_active
= ' '
CHANGING
ct_fieldcat
= i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error
= 2
OTHERS
= 3

.
IF sy-subrc0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name
=v_repid
i_internal_tabname = 'ITEMTAB'
* I_STRUCTURE_NAME
=
* I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname
= v_repid
i_bypassing_buffer = 'X'
i_buffer_active
= ' '
CHANGING
ct_fieldcat
= i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error
= 2
OTHERS
= 3

.
IF sy-subrc0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
gs_keyinfo-header01 = 'EBELN'.
gs_keyinfo-item01 = 'EBELN'.
g_tabname_header = 'HEADERTAB'.
g_tabname_item = 'ITEMTAB'.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
= ' '
I_CALLBACK_PROGRAM
= v_repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND= ' '
* IS_LAYOUT
=
IT_FIELDCAT
= i_fieldcat
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_SCREEN_START_COLUMN
= 0
* I_SCREEN_START_LINE
= 0
* I_SCREEN_END_COLUMN
= 0
* I_SCREEN_END_LINE
= 0
* I_DEFAULT
= 'X'
I_SAVE
= 'A'
* IS_VARIANT
=
* IT_EVENTS
=
* IT_EVENT_EXIT
=
i_tabname_header
= g_tabname_header
i_tabname_item
= g_tabname_item
* I_STRUCTURE_NAME_HEADER=
* I_STRUCTURE_NAME_ITEM
=
is_keyinfo
= gs_keyinfo
* IS_PRINT
=
* IS_REPREP_ID
=
I_BYPASSING_BUFFER
= 'X'
I_BUFFER_ACTIVE
= ' '
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER=
* ES_EXIT_CAUSED_BY_USER =
tables
t_outtab_header
= headertab
t_outtab_item
= itemtab
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.
复制代码
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
4. 程序代码: 多内表的ALV显示(display more than one internal table in ALV)
此程序将通过ALV显示两张内表的数据(MM模块)。
TABLES : ekko,
ekpo.
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
TYPE-POOLS: slis.
DATA: BEGIN OF headertab OCCURS 0,
ebeln LIKE ekko-ebeln,
bstyp LIKE ekko-bstyp,
bsart LIKE ekko-bsart,
statu LIKE ekko-statu,
END OF headertab.
DATA: BEGIN OF itemtab OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
werks LIKE ekpo-werks,
menge LIKE ekpo-menge,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh,
netwr LIKE ekpo-netwr,
END OF itemtab.
DATA: i_fieldcatTYPE slis_t_fieldcat_alv,
i_fieldcat1 TYPE slis_t_fieldcat_alv.
DATA: v_repid LIKE sy-repid,
v_layout TYPE slis_layout_alv,
v_events TYPE slis_t_event,
v_print TYPE slis_print_alv.

START-OF-SELECTION.
v_repid = sy-repid.
SELECT ebeln bstyp bsart statu
INTO TABLE headertab
FROM ekko
WHERE ebeln IN s_ebeln.
IF NOT headertab[] IS INITIAL.
SELECT ebeln ebelp matnr werks menge netpr peinh netwr
INTO TABLE itemtab
FROM ekpo
FOR ALL ENTRIES IN headertab
WHERE ebeln = headertab-ebeln.
ENDIF.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name
=v_repid
i_internal_tabname = 'HEADERTAB'
* I_STRUCTURE_NAME
=
* I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname
= v_repid
i_bypassing_buffer = 'X'
i_buffer_active
= ' '
CHANGING
ct_fieldcat
= i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error
= 2
OTHERS
= 3

.
IF sy-subrc0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name
=v_repid
i_internal_tabname = 'ITEMTAB'
* I_STRUCTURE_NAME
=
* I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname
= v_repid
i_bypassing_buffer = 'X'
i_buffer_active
= ' '
CHANGING
ct_fieldcat
= i_fieldcat1
EXCEPTIONS
inconsistent_interface = 1
program_error
= 2
OTHERS
= 3

.
IF sy-subrc0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program
= v_repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND= ' '
* IT_EXCLUDING
=
.
IF NOT headertab[] IS INITIAL.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout
= v_layout
it_fieldcat
= i_fieldcat
i_tabname
= 'HEADERTAB'
it_events
= v_events
* IT_SORT
=
* I_TEXT
= ' '
TABLES
t_outtab
= headertab
EXCEPTIONS
program_error
= 1
maximum_of_appends_reached = 2
OTHERS
= 3

.
IF sy-subrc0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
IF NOT itemtab[] IS INITIAL.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout
= v_layout
it_fieldcat
= i_fieldcat1
i_tabname
= 'ITEMTAB'
it_events
= v_events
* IT_SORT
=
* I_TEXT
= ' '
TABLES
t_outtab
= itemtab
EXCEPTIONS
program_error
= 1
maximum_of_appends_reached = 2
OTHERS
= 3

.
IF sy-subrc0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
IF NOT headertab[] IS INITIAL OR
NOT itemtab[] IS INITIAL.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
*EXPORTING
*I_INTERFACE_CHECK
= ' '
*IS_PRINT
=
*I_SCREEN_START_COLUMN = 0
*I_SCREEN_START_LINE = 0
*I_SCREEN_END_COLUMN = 0
*I_SCREEN_END_LINE
= 0
*IMPORTING
*E_EXIT_CAUSED_BY_CALLER =
*ES_EXIT_CAUSED_BY_USER=
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.

ENDIF.
复制代码
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
5. 程序代码: ALV中的交互报表程序(interactive reporting in ALV)
此程序首先显示PO(Purchasing Order)的表头数据,点击PO的Number将展示相应的PO细节(MM模块)。
TABLES : ekko,
ekpo.
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
TYPE-POOLS: slis.
DATA: BEGIN OF headertab OCCURS 0,
ebeln LIKE ekko-ebeln,
bstyp LIKE ekko-bstyp,
bsart LIKE ekko-bsart,
statu LIKE ekko-statu,
END OF headertab.
DATA: BEGIN OF itemtab OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
werks LIKE ekpo-werks,
menge LIKE ekpo-menge,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh,
netwr LIKE ekpo-netwr,
END OF itemtab.
DATA: BEGIN OF level2 OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
werks LIKE ekpo-werks,
menge LIKE ekpo-menge,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh,
netwr LIKE ekpo-netwr,
END OF level2.
DATA: i_fieldcatTYPE slis_t_fieldcat_alv,
i_fieldcat1 TYPE slis_t_fieldcat_alv.
DATA: v_repid LIKE sy-repid,
v_layout TYPE slis_layout_alv,
v_events TYPE slis_t_event,
v_print TYPE slis_print_alv,
l_fieldcat TYPE slis_fieldcat_alv.

START-OF-SELECTION.
v_repid = sy-repid.

SELECT ebeln bstyp bsart statu
INTO TABLE headertab
FROM ekko
WHERE ebeln IN s_ebeln.
IF NOT headertab[] IS INITIAL.
SELECT ebeln ebelp matnr werks menge netpr peinh netwr
INTO TABLE itemtab
FROM ekpo
FOR ALL ENTRIES IN headertab
WHERE ebeln = headertab-ebeln.
ENDIF.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name
=v_repid
i_internal_tabname = 'HEADERTAB'
* I_STRUCTURE_NAME
=
* I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname
= v_repid
i_bypassing_buffer = 'X'
i_buffer_active
= ' '
CHANGING
ct_fieldcat
= i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error
= 2
OTHERS
= 3

.
IF sy-subrc0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT i_fieldcat INTO l_fieldcat.
CASE l_fieldcat-fieldname.
WHEN 'EBELN'.
l_fieldcat-hotspot = 'X'.
MODIFY i_fieldcat FROM l_fieldcat.
ENDCASE.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
= ' '
i_bypassing_buffer
= 'X'
i_buffer_active
= ' '
i_callback_program
= v_repid
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command= 'USER_COMMAND'
* I_STRUCTURE_NAME
=
* IS_LAYOUT
=
it_fieldcat
= i_fieldcat
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_DEFAULT
= 'X'
i_save
= 'A'
* IS_VARIANT
=
* IT_EVENTS
=
* IT_EVENT_EXIT
=
* IS_PRINT
=
* IS_REPREP_ID
=
* I_SCREEN_START_COLUMN
= 0
* I_SCREEN_START_LINE
= 0
* I_SCREEN_END_COLUMN
= 0
* I_SCREEN_END_LINE
= 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER=
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab
= headertab
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.
*&--------------------------------------------------------------------*
*&FormUSER_COMMAND
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
*-->R_UCOMMtext
*-->RS_SELFIELDtext
*---------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

IF rs_selfield-fieldname EQ 'EBELN'.
CASE r_ucomm.
WHEN '&IC1'.
READ TABLE headertab INDEX rs_selfield-tabindex.
REFRESH level2.
CLEAR level2.
LOOP AT itemtab WHERE ebeln = headertab-ebeln.

APPEND itemtab TO level2.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name
=v_repid

i_internal_tabname = 'LEVEL2'
*
I_STRUCTURE_NAME
=
*
I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname
=v_repid

i_bypassing_buffer = 'X'

i_buffer_active
= ' '
CHANGING

ct_fieldcat
= i_fieldcat1
EXCEPTIONS

inconsistent_interface = 1

program_error
= 2

OTHERS
= 3

.
IF sy-subrc0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING
* I_INTERFACE_CHECK
= ' '

i_bypassing_buffer
= 'X'

i_buffer_active
= ' '

i_callback_program
= v_repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND=
* I_STRUCTURE_NAME
=
* IS_LAYOUT
=

it_fieldcat
= i_fieldcat1
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_DEFAULT
= 'X'

i_save
= 'A'
* IS_VARIANT
=
* IT_EVENTS
=
* IT_EVENT_EXIT
=
* IS_PRINT
=
* IS_REPREP_ID
=
* I_SCREEN_START_COLUMN
= 0
* I_SCREEN_START_LINE
= 0
* I_SCREEN_END_COLUMN
= 0
* I_SCREEN_END_LINE
= 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER=
* ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab
= level2

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.
ENDCASE.
ENDIF.
ENDFORM.
"USER_COMMAND
复制代码
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
支持,论坛就是需要这样的精神
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
确实不错 .....
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
支持!
回复

使用道具 举报

千问 | 2007-7-31 11:25:35 | 显示全部楼层
ding
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行