设计带两行标题的alv
2011-06-13 12:05:10| 分类:
ALV
| 标签:
|举报
|字号大中小 订阅
*---实例一:两行标题的alv
report ztest_alv no standard page heading.
type-pools: slis.
tables: likp,lips.
constants:
gc_formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.
data: gt_fieldcat type slis_t_fieldcat_alv,
gs_layout type slis_layout_alv,
gs_keyinfo type slis_keyinfo_alv,
gt_sp_group type slis_t_sp_group_alv,
gt_events type slis_t_event,
g_tabname_header type slis_tabname,
g_tabname_item type slis_tabname.
*---selection screen
select-options: s_vbeln for likp-vbeln. "暂时没用
*---data declear
data: begin of gt_likp occurs 0,
vbeln like likp-vbeln,
end of gt_likp.
data: begin of gt_lips occurs 0,
vbeln like lips-vbeln,
posnr like lips-posnr,
matnr like lips-matnr,
lfimg like lips-lfimg,
end of gt_lips.
data: g_repid like sy-repid. "当前程序
data: gt_list_top_of_page type slis_t_listheader. "top of page
*---initialization
initialization.
g_repid = sy-repid.
g_tabname_header = 'GT_LIKP'.
g_tabname_item = 'GT_LIPS'.
clear gs_keyinfo.
gs_keyinfo-header01 = 'VBELN'.
gs_keyinfo-item01 = 'VBELN'.
*---get data
start-of-selection.
perform selection.
*---show data
end-of-selection.
perform fieldcat_init using gt_fieldcat[].
perform layout_build using gs_layout.
perform display.
*&---------------------------------------------------------------------*
*& Form selection
*&---------------------------------------------------------------------*
form selection.
select * into corresponding fields of table gt_likp up to 4 rows from likp.
select * into corresponding fields of table gt_lips
from lips
for all entries in gt_likp
where vbeln = gt_likp-vbeln.
endform. "selection
*&---------------------------------------------------------------------*
*& Form FIELDCAT_INIT
*&---------------------------------------------------------------------*
form fieldcat_init using p_t_fieldcat type slis_t_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'VBELN'.
ls_fieldcat-tabname = g_tabname_header.
ls_fieldcat-reptext_ddic = '交货'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to p_t_fieldcat.
ls_fieldcat-fieldname = 'POSNR'.
ls_fieldcat-tabname = g_tabname_item.
ls_fieldcat-reptext_ddic = '行项目'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to p_t_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-tabname = g_tabname_item.
ls_fieldcat-reptext_ddic = '物料'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to p_t_fieldcat.
ls_fieldcat-fieldname = 'LFIMG'.
ls_fieldcat-tabname = g_tabname_item.
ls_fieldcat-reptext_ddic = '交货数量'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to p_t_fieldcat.
endform. "FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
form layout_build using p_s_layout type slis_layout_alv.
p_s_layout-default_item = 'X'.
p_s_layout-zebra = 'X'.
p_s_layout-colwidth_optimize = 'X'.
endform. "layout_build
*&---------------------------------------------------------------------*
*& Form display
*&---------------------------------------------------------------------*
form display.
call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
exporting
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
is_keyinfo = gs_keyinfo
tables
t_outtab_header = gt_likp
t_outtab_item = gt_lips.
endform. "display
"自己定制一个程序
REPORT ztest_alv NO STANDARD PAGE HEADING.
TYPE-POOLS: slis.
TABLES: likp,lips.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv,
gs_keyinfo TYPE slis_keyinfo_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_events TYPE slis_t_event,
g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname.
*---selection screen
SELECT-OPTIONS: s_vbeln FOR likp-vbeln. "暂时没用
*---data declear
DATA: BEGIN OF gt_header OCCURS 0,
field1(10),
field2(10),
END OF gt_header.
DATA: BEGIN OF gt_lips OCCURS 0,
field1(10),
vbeln LIKE lips-vbeln,
posnr LIKE lips-posnr,
matnr LIKE lips-matnr,
lfimg LIKE lips-lfimg,
END OF gt_lips.
DATA: g_repid LIKE sy-repid. "当前程序
DATA: gt_list_top_of_page TYPE slis_t_listheader. "top of page
*---initialization
INITIALIZATION.
g_repid = sy-repid.
g_tabname_header = 'GT_HEADER'.
g_tabname_item = 'GT_LIPS'.
CLEAR gs_keyinfo.
gs_keyinfo-header01 = 'FIELD1'.
gs_keyinfo-item01 = 'FIELD1'.
*---get data
START-OF-SELECTION.
PERFORM selection.
*---show data
END-OF-SELECTION.
PERFORM fieldcat_init USING gt_fieldcat[].
PERFORM layout_build USING gs_layout.
PERFORM display.
*&---------------------------------------------------------------------*
*& Form selection
*&---------------------------------------------------------------------*
FORM selection.
gt_header-field1 = 'A'.
APPEND gt_header.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_lips
FROM lips UP TO 4 ROWS.
*---用一个相同的字段关联
LOOP AT gt_lips.
gt_lips-field1 = 'A'.
MODIFY gt_lips.
ENDLOOP.
ENDFORM. "selection
*&---------------------------------------------------------------------*
*& Form FIELDCAT_INIT
*&---------------------------------------------------------------------*
FORM fieldcat_init USING p_t_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
*---标题
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'FIELD1'.
ls_fieldcat-tabname = g_tabname_header.
ls_fieldcat-reptext_ddic = ' 标 题 '.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_t_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'FIELD2'.
ls_fieldcat-tabname = g_tabname_header.
ls_fieldcat-reptext_ddic = '标题2'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_t_fieldcat.
*---明细
ls_fieldcat-fieldname = 'POSNR'.
ls_fieldcat-tabname = g_tabname_item.
ls_fieldcat-reptext_ddic = '行项目'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_t_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-tabname = g_tabname_item.
ls_fieldcat-reptext_ddic = '物料'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_t_fieldcat.
ls_fieldcat-fieldname = 'LFIMG'.
ls_fieldcat-tabname = g_tabname_item.
ls_fieldcat-reptext_ddic = '交货数量'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_t_fieldcat.
ENDFORM. "FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
FORM layout_build USING p_s_layout TYPE slis_layout_alv.
p_s_layout-default_item = 'X'.
p_s_layout-zebra = 'X'.
p_s_layout-colwidth_optimize = 'X'.
ENDFORM. "layout_build
*&---------------------------------------------------------------------*
*& Form display
*&---------------------------------------------------------------------*
FORM display.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
is_keyinfo = gs_keyinfo
TABLES
t_outtab_header = gt_header
t_outtab_item = gt_lips.
ENDFORM. "display
评论这张
转发至微博
转发至微博
评论