GRID方式ALV导出数据到本地丢掉最后一位的问题
来源:百度文库 编辑:神马文学网 时间:2024/04/29 02:29:19
GRID方式ALV导出数据到本地丢掉最后一位的问题
这是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.
这是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.
GRID方式ALV导出数据到本地丢掉最后一位的问题
SQL Server数据导出到Oracle的方案
数据的导出(企业管理器)
MySQL数据导入导出
从MySQL导入导出大量数据的程序实现方法
MySQL数据的导出和导入工具:mysqldump
从MySQL导入导出大量数据的程序实现方法
MySQL数据的导出和导入工具:mysqldump
最好的数据导出组件SMExport - 广东网盟
ASP导出EXCEL数据的四种方法1
ASP导出EXCEL数据的四种方法11
浅析Oracle对象和数据的导入导出
ASP导出到Word--
MySQL数据导入与导出
奔向NB的生活-Weblucene实现本地数据搜索
编程入门网-解决VFP中表格控件Grid的数据源刷新问题
处理问题的方式
MySQL数据导入导出工具mysqlimport简介
把数据用excel导出1(java)
下载“我的图书馆”中的文章到本地
10位亿万富翁的跌荡人生:两手空空到财富巨人(转载)尤其向最后一位致敬
导入导出的权限
中国历史上的最后一位状元
最后一位戴罪的功臣