计算内表字节数

   最近看到论坛上有个问题,在实际SAP与外部系统传递数据时,监控内表数据字节大小的问题,下面写了个小程序,可能存在误差,但不大。误差可能在数字型累加其最大字节上。

REPORT  ZLC_TABLE_SIZE.

DATA: BEGIN OF WA_DATA,
      MATNR TYPE MARD-MATNR,
      WERKS TYPE MARD-WERKS,
      LGORT TYPE MARD-LGORT,
      LABST TYPE MARD-LABST,
      END OF WA_DATA.

DATA: IT_DATA LIKE TABLE OF WA_DATA.

DATA: WK_LENGTH TYPE I,
      WK_TOTAL  TYPE I.

DATA: WK_TYPE TYPE C.

FIELD-SYMBOLS:<FS_FIELD> TYPE ANY,
              <FS_DATA>  LIKE WA_DATA.
SELECT MATNR
       WERKS
       LGORT
       LABST
  INTO TABLE IT_DATA
  UP TO 10 ROWS
  FROM MARD.


LOOP  AT IT_DATA ASSIGNING <FS_DATA>.


   DO TIMES.

     ASSIGN COMPONENT SY-INDEX OF STRUCTURE <FS_DATA> TO <FS_FIELD>.

     DESCRIBE FIELD <FS_FIELD> TYPE WK_TYPE.

     IF WK_TYPE = 'C'

     OR WK_TYPE = 'N'

     OR WK_TYPE = 'D'

     OR WK_TYPE = 'T'.


       WK_LENGTH = CL_ABAP_LIST_UTILITIES=>DYNAMIC_OUTPUT_LENGTH( <FS_FIELD> ).

     ELSE.
       DESCRIBE FIELD <FS_FIELD> LENGTH WK_LENGTH IN BYTE  MODE.

     ENDIF.
      WK_TOTAL =  WK_LENGTH + WK_TOTAL.
   ENDDO.
ENDLOOP.

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值