ABAP 中获取内表的行数

编程入门 行业动态 更新时间:2024-10-22 20:31:11

ABAP 中获取内表的<a href=https://www.elefans.com/category/jswz/34/1770971.html style=行数"/>

ABAP 中获取内表的行数

以下是统计内表行数常用的三种方法,
如下:  
1、循环内表,累加

LOOP AT it_itab.   g_lines2 = g_lines2 + 1.   
ENDLOOP.   


该方法是通过循环内部表自己累加行数。   
2.DESCRIBE TABLE it_itab LINES g_lines1 . 
获得内部表的属性,将内部表行数赋值给 g_lines1 , g_lines1 为I型变量。   
3.g_lines3 = lines(it_itab ). 使用函数来计算内部表行数。

  
以上两种方法中,第一种方法不推荐使用,推荐使用后一种方法。

但是如果要求计算内表内部分符合条件的行数,则需要使用第一种方法,循环内表,配合if或者 at end of 等判断条件使用.
例:

  denominator = 0.molecule = 0.
*计算供应商到货及时率   实际到货日期 - 要求到货日期 <= 2 即满足及时率
*但是要根据工厂和供应商来计算分子和分母  loop at gt_suppliers assigning <fs_suppliers>.read table gt_ekbe1 into gw_ekbe1 with  keyebeln = <fs_suppliers>-ebeln ebelp = <fs_suppliers>-ebelp.if sy-subrc = 0.<fs_suppliers>-budat = gw_ekbe1-budat.endif.move-corresponding <fs_suppliers> to gw_supcopy .clear diff .call function 'HR_99S_INTERVAL_BETWEEN_DATES'exportingbegda    = gw_supcopy-eindtendda    = gw_supcopy-budattab_mode = 'I'importingdays     = diff  .if diff - 1 <= 2.molecule = molecule + 1 .endif.denominator = denominator + 1 .at end of pinjie.timerate = molecule / denominator.timerate1 = timerate * 100.gw_suppliers_alv-werks = gw_supcopy-werks.gw_suppliers_alv-lifnr = gw_supcopy-lifnr.gw_suppliers_alv-jsl = timerate1 .append gw_suppliers_alv to  gt_suppliers_alv.clear:denominator,molecule,timerate,timerate1,gw_suppliers_alv,gw_supcopy .endat.endloop.

 

更多推荐

ABAP 中获取内表的行数

本文发布于:2024-03-04 12:55:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1709324.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:行数   ABAP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!