相关文章推荐
潇洒的茶壶  ·  vscode ...·  2 周前    · 
大鼻子的镜子  ·  Vue项目npm run ...·  1 月前    · 
考研的投影仪  ·  perl 二维数组 - to be ...·  2 月前    · 
  DATA: lt_mqs TYPE STANDARD TABLE OF zmqs. 
 TYPES: tt_dup_mqs TYPE STANDARD TABLE OF zmqs WITH EMPTY KEY.
  DATA lt_dup_mqs TYPE tt_dup_mqs. 
 LOOP AT lt_mqs ASSIGNING FIELD-SYMBOL(<ls_mqs>)
      GROUP BY ( z08body = <ls_mqs>-z08body size = GROUP SIZE )
      REFERENCE INTO DATA(lt_group_ref) .
    IF lt_group_ref->*-size > 1.
      LOOP AT GROUP lt_group_ref ASSIGNING FIELD-SYMBOL(<ls_ref>).
        lt_dup_mqs = VALUE tt_dup_mqs( BASE lt_dup_mqs ( z08body = <ls_ref>-z08body ) ).
        EXIT.
      ENDLOOP.
    ENDIF.
  ENDLOOP.

利用sap标准语法,在loop 中使用group 的条件,获取重复项

LOOP AT lt_mqs ASSIGNING FIELD-SYMBOL(<ls_mqs>)
GROUP BY ( z08body = <ls_mqs>-z08body size = GROUP SIZE )

这里只是计数,根据 size  大于1 ,可以判断当前group 是含重复值

利用loop group 可以得到相关重复的值

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 1 修改下载FM时,文件夹 screens 和 dictionary 放在对应的FM里. 2 修复 FM里关联FM下载时,include 下载不全的问题. 3 修复在下载 从表生成的SM30维护视图FG时,include 下载不全的问题. 4 FM下载时,主程序文件名改为大写,此处只修改了下载到PC时的逻辑. 5 修改根据FG下载时,同一FG下的FM都放在同一FG的文件夹下. 5.1 在屏幕FG处增加控制选项check box[ Remove FM's floder in FG: ],当勾选后, 5.1.1 下载前删除 重复 的include文件 5.1.2 该FG下所有FM & include都放在FG根目录下,不再每个FM各建一个文件夹. 5.1.3 该FG只生成一个 global-fg_[fg-name].html文件.对应FM中的超链接 'Global 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 select * from tb_producttype where protname in(  select protname from tb_producttype group by protname having count(*)>1  Collect:使用 COLLECT 语句可以合计 内表中 数字类型的字段。除了关键字以外的数据都需要是数字类型(f、i、p)。执行 COLLECT 语句,当存在相同关键字的数据时,合计数字类型的字段,不存在相同关键字的数据时,直接追加数据。不存在关键字的内表,则会把 CHAR 类型的字段作为关键字执行相同的操作。 内表中 若存在以CHAR 类型的 carrid 与 connid为基准的相同数据,则会以关键字作为基准合计数字类型的字段 seatsmax 。 场景:userlist为处理后的数据内表,字段为(身份证、员工号、标识号),需求为筛选出身份证号出现次数大于1的数据展现。 首先处理数据,将userlist中符合要求的数据附加到userlistout中。 将处理后的数据输出为alv 报表 。 该方法是通过循环内部表自己累加行数。 2.DESCRIBE TABLE it_itab LINES g_lines1 . 获得内部表的属性,将内部表行数赋 给 g_lines1 , g_lines1 为I型变量。 3.g_lines3 = lines(it_itab ). 使用函数来计算内部表行...