ABAP开发中动态内表运用-EXAM
来源:互联网 发布:unity3d内部打开网页 编辑:程序博客网 时间:2024/05/21 06:36
在ABAP开发中,如何运用动态内表的EXAM呢?以下是具体操作步骤:
EPORT ztest.
DATA: BEGIN OF wa_ets,
vbeln LIKE lips-vbeln,
posnr LIKE lips-posnr,
END OF wa_ets.
DATA:
l_fname LIKE dd03l-fieldname,
typedesr TYPE REF TO cl_abap_typedescr,
gt_comp TYPE cl_abap_structdescr=>component_table,
gs_comp LIKE LINE OF gt_comp,
is_comp TYPE abap_componentdescr,
it_comp TYPE abap_component_tab,
cl_stru TYPE REF TO cl_abap_structdescr,
c2_stru TYPE REF TO cl_abap_structdescr,
cl_tabl TYPE REF TO cl_abap_tabledescr,
c2_tabl TYPE REF TO cl_abap_tabledescr,
cl_handle TYPE REF TO data,
c2_handle TYPE REF TO data,
cl_st TYPE REF TO data,
c2_st TYPE REF TO data,
c3_st TYPE REF TO data,
key TYPE abap_keydescr_tab.
FIELD-SYMBOLS: <gt_itab> TYPE ANY TABLE ,
<it_itab> TYPE ANY TABLE ,
<fs1> TYPE ANY,
<fs2>,
<fs3>,
<fs4>,
<fs5>,
<gs_struc> TYPE ANY.
DATA: BEGIN OF gt_field OCCURS 0,
kopos(2) TYPE n,
fieldname LIKE dd03l-fieldname,
rollname LIKE dd03l-rollname,
ref_table LIKE dd03l-tabname,
ref_field LIKE dd03l-fieldname,
key TYPE c,
END OF gt_field.
**
DATA: it_field LIKE STANDARD TABLE OF gt_field WITH HEADER LINE.
gt_field-fieldname = ‘VBELN’.
gt_field-rollname = ‘VBELN_VL’.
gt_field-ref_table = ‘LIPS’.
gt_field-ref_field = ‘VBELN’.
APPEND gt_field.
MOVE gt_field TO it_field.
APPEND it_field.
gt_field-fieldname = ‘POSNR’.
gt_field-rollname = ‘POSNR_VL’.
gt_field-ref_table = ‘LIPS’.
gt_field-ref_field = ‘POSNR’.
APPEND gt_field.
CLEAR gt_field.
gt_field-fieldname = ‘BRGEW’.
gt_field-rollname = ‘GSGEW’.
gt_field-ref_table = ‘LIPS’.
gt_field-ref_field = ‘BRGEW’.
APPEND gt_field.
MOVE gt_field TO it_field.
APPEND it_field.
gt_field-fieldname = ‘VOLUM’.
gt_field-rollname = ‘VOLUM’.
gt_field-ref_table = ‘LIPS’.
gt_field-ref_field = ‘VOLUM’.
APPEND gt_field.
MOVE gt_field TO it_field.
APPEND it_field.
.
LOOP AT gt_field.
CLEAR: gs_comp, l_fname.
CLEAR l_fname.
CONCATENATE gt_field-ref_table ‘-’ gt_field-ref_field INTO l_fname.
is_comp-name = gt_field-fieldname.
“is_comp-type ?= cl_abap_elemdescr=>describe_by_name( gt_field-rollname ).
is_comp-type ?= cl_abap_datadescr=>describe_by_name( l_fname ).
APPEND is_comp TO it_comp.
ENDLOOP.
cl_stru = cl_abap_structdescr=>create( it_comp ).
**
APPEND ‘VBELN’ TO key.
cl_tabl = cl_abap_tabledescr=>create( p_line_type = cl_stru
p_table_kind = cl_abap_tabledescr=>tablekind_sorted
“ p_unique = abap_true
p_key = key ).
APPEND ‘POSNR’ TO key.
c2_tabl = cl_abap_tabledescr=>create( p_line_type = cl_stru
p_table_kind = cl_abap_tabledescr=>tablekind_hashed
p_unique = abap_true
p_key = key ).
CREATE DATA cl_handle TYPE HANDLE cl_tabl.
CREATE DATA c2_handle TYPE HANDLE c2_tabl.
CREATE DATA cl_st TYPE HANDLE cl_stru.
CREATE DATA c2_st TYPE HANDLE cl_stru.
CREATE DATA c3_st TYPE HANDLE cl_stru.
ASSIGN cl_handle->* TO <gt_itab>.
ASSIGN c2_handle->* TO <it_itab>.
ASSIGN cl_st->* TO <fs1>.
ASSIGN c2_st->* TO <fs3>.
ASSIGN c3_st->* TO <fs5>.
ASSIGN COMPONENT ‘VBELN’ OF STRUCTURE <fs1> TO <fs2>.
<fs2> = ‘0080021838′.
ASSIGN COMPONENT ‘POSNR’ OF STRUCTURE <fs1> TO <fs2>.
<fs2> = ‘000030′.
**
SELECT * FROM lips
INTO CORRESPONDING FIELDS OF TABLE <gt_itab> UP TO 10 ROWS
ORDER BY vbeln posnr.
LOOP AT <gt_itab> INTO <fs3>.
ASSIGN COMPONENT ‘POSNR’ OF STRUCTURE <fs3> TO <fs4>.
CLEAR <fs4>.
COLLECT <fs3> INTO <it_itab>.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM <gt_itab>.
READ TABLE <gt_itab> FROM <fs1> TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
WRITE:/ ‘SSSS’.
ENDIF.
c2_stru ?= cl_abap_structdescr=>describe_by_data( wa_ets ).
gt_comp = c2_stru->get_components( ).
WRITE:/ ‘DDDDD’.
0 0
- ABAP开发中动态内表运用-EXAM
- ABAP中动态内表使用
- ABAP中动态内表的使用
- ABAP动态内表
- ABAP动态内表
- ABAP-动态内表
- 动态ABAP内表
- ABAP 创建动态内表
- ABAP 动态创建内表
- ABAP动态内表ALV
- ABAP中创建动态内表的三种方法
- abap中 search 内表
- ABAP结构体,内表动态创建
- abap- ALV报表动态内表输出
- abap 动态内表,附例子
- ABAP开发的第一步, 先说说ABAP内表
- ABAP开发的第一步, 先说说ABAP内表
- ABAP开发的第一步, 先说说ABAP内表
- spring security logout
- 排序--冒泡排序实例
- 汽车仿真软件ADVISOR2002 在高版本Matlab下的兼容使用方法
- android引用Ksoap2调用webservice
- 现在公开一个DHT网络爬虫网络爬虫供大家一起交流
- ABAP开发中动态内表运用-EXAM
- UML类图 依赖 与 关联 的区别
- android里的Json数据解析
- Qt学习一:直接使用QT工具
- SQL SERVER 2000通讯管道后复用劫持
- Java pinyin4j 拼音转换
- 阜和SAP QM模块课程
- java interface
- Android中R.java没有自动生成解决方案