1.对于查找内表中是否存在重复字段,这个问题SAP好像并没有给出直接的解决办法,只能通过间接的方法去做判断,我是这样给出的判断。
2.例子说明:
REPORT Z_ZHANGM_036.
DATA: BEGIN OF wa OCCURS 0,
col01 TYPE char10,
col02 TYPE char10,
col03 TYPE char10,
END OF wa,
itab LIKE TABLE OF wa.
DATA: BEGIN OF item OCCURS 0,
col01 TYPE char10,
col02 TYPE char10,
END OF item.
DATA:ls_item LIKE LINE OF item.
FIELD-SYMBOLS: like LINE OF wa.
*wa-col01 = ‘A’.
*wa-col02 = ‘B’.
*wa-col03 = ‘C’.
*APPEND wa.
wa-col01 = ‘A’.
wa-col02 = ‘B’.
wa-col03 = ‘D’.
APPEND wa.
wa-col01 = ‘B’.
wa-col02 = ‘C’.
wa-col03 = ‘C’.
APPEND wa.
*wa-col01 = ‘A’.
*wa-col02 = ‘B’.
*wa-col03 = ‘E’.
*APPEND wa.
*wa-col01 = ‘A’.
*wa-col02 = ‘C’.
*wa-col03 = ‘E’.
*APPEND wa.
*wa-col01 = ‘A’.
*wa-col
1.对于查找内表中是否存在重复字段,这个问题SAP好像并没有给出直接的解决办法,只能通过间接的方法去做判断,我是这样给出的判断。2.例子说明:REPORT Z_ZHANGM_036.DATA: BEGIN OF wa OCCURS 0,col01 TYPE char10,col02 TYPE char10,col03 TYPE char10,END OF wa,itab LIKE TABLE OF wa.DATA: BEGIN OF item OCCURS 0,col01 TYPE ch
DESCRIBE TABLEIT_TEMP LINES L_LINE1.
SORT IT_TEMP BYMATID.
DELETEADJACENT DUPLICATES FROM IT_TEMP COMPARING MATID.
DESCRIBE TABLEIT_TEMP LINES L_LINE2.
IF L_LINE1
MESSAGE 'Red
type-pools: slis.
field-symbols: <dyn_table> type standard table, ” 内表结构
<dyn_wa>, ” 表头
<dyn_field>. ” 项
data: dy_table type ref to data,
dy_line type ref to data, ” 行
xfc type lvc_s_fcat, ” 列结构
ifc type lvc_t_fcat.
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = ifc
importing
ep_table = dy_table.
assign dy_table->* to <dyn_table>.
create data dy_line like line of <dyn_table>.
assign dy_line->* to <dyn_wa>.
场景:userlist为处理后的数据内表,
字段
为(身份证、员工号、标识号),需求为筛选出身份证号出现次数大于1的数据展现。
首先处理数据,将userlist中符合要求的数据附加到userlistout中。
将处理后的数据输出为alv报表。
4、使用该语句无法使用order by等语句
Collect 计算金额等
在做FI相关的程序时,会涉及到原值、累计折旧等的计算,这时我们可以不使用loop累加,使用直接使用collect关键字。
原理:Collect将两行数据中,保留相同的
字段
数据,将不同
字段
中的数字
字段
相加。
LOOP AT gt_zyz INTO gs_zyz.
DATA : STR TYPE STRING.
DATA : LENGTH TYPE I.
STR = ‘132dsfaf456135asd1f5sda6f4s13246543ad31f32dsa4ffdsafsdafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff65sad4f32sda1f23’.
一、修改内表的一行
MODIFY 表itab FROM 工作区wa_ TRANSPORTING Field1 Field2.---- WHERE 条件1 and 条件2.
例子 :MODIFY IT_SO_DATA FROM LV_SO_DATA TRANSPORTING EDAT WHERE VBELN = LV_DELI_WEEK-VBELN AND POSN...