使用ALV导出数据的时候,大家可能会遇到这样的问题,明明是10位的数据,用ALV GRID导出后,丢失了最后一位,而造成导出数据错误;
其实,这是SAP的一个Bug。对于字段对应的域Convers. routine = ALPHA,也就是有前导零的字段,比如供应商号、商品号、客户号、考核组织等。用ALV Grid和Class ALV Grid导出数据时都会出现缺位的现象,而List好像没有这个BUG。
解决这个问题有以下几种方法:
1、修改程序中列的表头文本,使其长度大于字段的实际长度,这样用ALV导出数据的时候就不会丢失最后一位了。
代码:T_FIELDCAT-SELTEXT_L = '考核组织XXXXXXXX'.
2、修改程序中ALV显示设置,设定参考字段和参考表,这样用ALV导出数据的时候同样不会丢失最后一位。
代码:
T_FIELDCAT-FIELDNAME = 'PRCTR'.
T_FIELDCAT-SELTEXT_L = '考核组织'.
T_FIELDCAT-REF_FIELDNAME = 'PRCTR'.
T_FIELDCAT-REF_TABNAME = 'CEPC'.