*&---------------------------------------------------------------------*
*& Report Z_DONGTAIBIAO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*REPORT z_dongtaibiao.
TYPE-POOLS: slis.
DATA: gt_fcat TYPE lvc_t_fcat,
gh_fcat LIKE LINE OF gt_fcat.DATA: gt_dyn TYPE REF TO data.
DATA: gh_line TYPE REF TO data.
FIELD-SYMBOLS: <fs_table> TYPE ANY TABLE,
<fs_line> TYPE ANY,
<fs_field> TYPE ANY.DATA: BEGIN OF it OCCURS 0,
iname(10),
ioo(10),
icc TYPE i,
END OF it.
DATA: BEGIN OF it2 OCCURS 0,
iname(10),
ioo(10),
icc TYPE i,
END OF it2.START-OF-SELECTION.
it-iname = 'liu'.
it-ioo = 'blue'.
it-icc = 4.
APPEND it.
it-iname = 'liu'.
it-ioo = 'red'.
it-icc = 9.
APPEND it.
it-iname = 'liu'.
it-ioo = 'green'.
it-icc = 5.
APPEND it. it2-iname = 'liu'.
it2-ioo = 'dog'.
it2-icc = 4.
APPEND it2.
it2-iname = 'liu'.
it2-ioo = 'cat'.
it2-icc = 3.
APPEND it2.
it-iname = 'gao'.
it-ioo = 'blue'.
it-icc = 8.
APPEND it.
it-iname = 'gao'.
it-ioo = 'black'.
it-icc = 6.
APPEND it.
it-iname = 'gao'.
it-ioo = 'yellow'.
it-icc = 2.
APPEND it. it2-iname = 'gao'.
it2-ioo = 'dog'.
it2-icc = 8.
APPEND it2.
it2-iname = 'gao'.
it2-ioo = 'horse'.
it2-icc = 2.
APPEND it2. DATA iii TYPE i.
iii = 2.
DATA: BEGIN OF it9 OCCURS 0,
ioo(10),
cc TYPE i,
END OF it9. LOOP AT it.
it9-ioo = it-ioo.
COLLECT it9.
ENDLOOP.
SORT it9 ASCENDING BY ioo.
LOOP AT it9.
it9-cc = iii.
MODIFY it9.
iii = iii + 1.
ENDLOOP. DATA: BEGIN OF it8 OCCURS 0,
ioo(10),
cc TYPE i,
END OF it8. LOOP AT it2.
it8-ioo = it2-ioo.
COLLECT it8.
ENDLOOP. SORT it8 ASCENDING BY ioo.
LOOP AT it8.
it8-cc = iii.
MODIFY it8.
iii = iii + 1.
ENDLOOP. DATA: BEGIN OF it7 OCCURS 0,
iname(10),
END OF it7. LOOP AT it.
it7-iname = it-iname.
COLLECT it7.
ENDLOOP. LOOP AT it2.
it7-iname = it2-iname.
COLLECT it7.
ENDLOOP. DATA i_count TYPE i.
gh_fcat-col_pos = 1.
gh_fcat-fieldname = 'item'.
APPEND gh_fcat TO gt_fcat. i_count = 2.
SORT it9 ASCENDING BY ioo.
LOOP AT it9. gh_fcat-col_pos = i_count.
gh_fcat-fieldname = it9-ioo.
APPEND gh_fcat TO gt_fcat. i_count = i_count + 1.
ENDLOOP.
SORT it8 ASCENDING BY ioo.
LOOP AT it8. gh_fcat-col_pos = i_count.
gh_fcat-fieldname = it8-ioo.
APPEND gh_fcat TO gt_fcat. i_count = i_count + 1.
ENDLOOP.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fcat
IMPORTING
ep_table = gt_dyn. ASSIGN gt_dyn->* TO <fs_table>.
CREATE DATA gh_line LIKE LINE OF <fs_table>.
ASSIGN gh_line->* TO <fs_line>. DATA ii TYPE i.
LOOP AT it7.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_line> TO <fs_field>.
<fs_field> = it7-iname. LOOP AT IT WHERE INAME = IT7-INAME.
read table it9 with key
ioo = it-ioo.
ASSIGN COMPONENT it9-cc OF STRUCTURE <fs_line> TO <fs_field>.
<fs_field> = it-icc.
endloop. LOOP AT IT2 WHERE INAME = IT7-INAME.
read table it8 with key
ioo = it2-ioo.
ASSIGN COMPONENT it8-cc OF STRUCTURE <fs_line> TO <fs_field>.
<fs_field> = it2-icc.
endloop. loop at it9.
read table it with key iname = it7-iname
ioo = it9-ioo.
if sy-subrc <> 0 .
ASSIGN COMPONENT it9-cc OF STRUCTURE <fs_line> TO <fs_field>.
<fs_field> = ''. endif.
endloop. loop at it8.
read table it2 with key iname = it7-iname
ioo = it8-ioo.
if sy-subrc <> 0 .
ASSIGN COMPONENT it8-cc OF STRUCTURE <fs_line> TO <fs_field>.
<fs_field> = ''. endif.
endloop. INSERT <fs_line> INTO TABLE <fs_table>.
ENDLOOP.loop at it.
write:/ it-iname,it-ioo,it-icc.endloop.
uline.
loop at it2.
write:/ it2-iname,it2-ioo,it2-icc.
endloop.
uline.
uline.
write '科目'.
loop at it9.
write: it9-ioo.
endloop. loop at it8.
write: it8-ioo.
endloop.
uline.
LOOP AT <fs_table> ASSIGNING <fs_line>.
WRITE: / <fs_line>.
ENDLOOP.
abap 中动态表一例
原创
©著作权归作者所有:来自51CTO博客作者precipitant的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
abap-标准程序调试一例
任务描述:系统使用的可配置物料,VA01,VA02 ,销售订单维护界面,已
function 2010 任务 测试 c -
【原创】日志表设计一例分析
关于日志关系表分析一例。
MySQL 优化 表设计 -
ABAP 动态生成内表方法一
ABAP 动态生成内表方法一
字段 主键 测试程序 -
DNS设置一例
DNS
职场 dns 休闲 -
Protobuf一例客户端 ide 数据同步 perl 微信