ALV数据导出后缺位问题解决 .

编程入门 行业动态 更新时间:2024-10-24 03:24:05

ALV<a href=https://www.elefans.com/category/jswz/34/1771445.html style=数据导出后缺位问题解决 ."/>

ALV数据导出后缺位问题解决 .

使用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'.

 

.html

 

这是SAP的一个Bug,FM方式ALV Grid和Class ALV Grid都会出现,但是ALV List好像没有这个BUG。   在以下几个条件满足的时候就会出现这个问题: 1.字段对应的域Convers. routine = ALPHA,也就是有前导零的字段,比如供应商号、商品号、客户号等。 2.做ALV Fieldcat的时候,没有指定参考表和参考字段。 3.列的表头文本(seltext_s等)比实际显示的数据短。   所以解决问题的时候从2、3两点下手即可。     REPORT z_barry_field_loss . TYPE-POOLS: slis.
DATA: gd_fieldcat TYPE slis_t_fieldcat_alv.
DATA: sla TYPE slis_layout_alv ,
      i_repid LIKE sy-repid ,
      ls_fieldcat TYPE slis_fieldcat_alv.
DATA: BEGIN OF itab OCCURS 0,
        lifnr LIKE lfa1-lifnr ,
        kunnr LIKE kna1-kunnr ,
        matnr LIKE mara-matnr ,
        bukrs LIKE bsik-bukrs ,
      END OF itab. START-OF-SELECTION.
  itab-lifnr = '0000100047'.
  itab-kunnr = '0000001006'.
  itab-bukrs = 'ZB01'.
  itab-matnr = '000000000001100198'.
  APPEND itab.   CLEAR ls_fieldcat .
  ls_fieldcat-fieldname     =  'LIFNR'.
  ls_fieldcat-seltext_s     =  'LI'.
  ls_fieldcat-ref_fieldname = 'LIFNR'.  "|注释
  ls_fieldcat-ref_tabname   = 'LFA1'.   "|
  ls_fieldcat-ddictxt       = 'S'.
  APPEND ls_fieldcat TO gd_fieldcat .   CLEAR ls_fieldcat .
  ls_fieldcat-fieldname     =  'KUNNR'.
  ls_fieldcat-seltext_s     =  'KU'.
  ls_fieldcat-ref_fieldname = 'KUNNR'.  "|注释
  ls_fieldcat-ref_tabname   = 'KNA1'.   "|
  APPEND ls_fieldcat TO gd_fieldcat .   CLEAR ls_fieldcat .
  ls_fieldcat-fieldname     =  'BUKRS'.
  ls_fieldcat-seltext_s     =  'BU'.
  APPEND ls_fieldcat TO gd_fieldcat .   CLEAR ls_fieldcat .
  ls_fieldcat-fieldname     =  'MATNR'.
  ls_fieldcat-seltext_s     =  'MAT'.
  ls_fieldcat-ref_fieldname = 'MATNR'.  "|注释
  ls_fieldcat-ref_tabname   = 'MAKT'.   "|
  APPEND ls_fieldcat TO gd_fieldcat .   i_repid = sy-repid.   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = i_repid
      it_fieldcat             = gd_fieldcat[]
      i_save                  = 'A'
      is_layout               = sla
      i_callback_user_command = 'USER_COMMAND'
    TABLES
      t_outtab                = itab
    EXCEPTIONS
      program_error           = 1
      OTHERS                  = 2.

 

更多推荐

ALV数据导出后缺位问题解决 .

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

发布评论

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

>www.elefans.com

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