cl_gui_frontend_services => gui_download:数字最多16个字符,零个字符覆盖

2020-09-16 13:33发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨!

使用cl_gui_frontend_services => gui_download方法下载CSV文件。 在文件中,我有几个字段,如材料编号或文档编号,长度约为20个字符。 下载文件后,这些数字字段将更改=>

如果数字的长度超过16个字符,则数字的第17个字符及以后的字符都将全部替换为零。

示例:

1234567890123456 =确定

1234567890123456 000 =不正确,应为1234567890123456 789

我使用的设置是:文件格式= ASC(默认),write_field_separator = X,confirm_overwrite = X,trunc_trailing_blanks = X。

直到下载点为止,数字都是正确的,并且仅发生在数字上。

您是否知道可能是什么问题?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨!

使用cl_gui_frontend_services => gui_download方法下载CSV文件。 在文件中,我有几个字段,如材料编号或文档编号,长度约为20个字符。 下载文件后,这些数字字段将更改=>

如果数字的长度超过16个字符,则数字的第17个字符及以后的字符都将全部替换为零。

示例:

1234567890123456 =确定

1234567890123456 000 =不正确,应为1234567890123456 789

我使用的设置是:文件格式= ASC(默认),write_field_separator = X,confirm_overwrite = X,trunc_trailing_blanks = X。

直到下载点为止,数字都是正确的,并且仅发生在数字上。

您是否知道可能是什么问题?

付费偷看设置
发送
6条回答
野沐沐
1楼 · 2020-09-16 13:51.采纳回答

对于您的长号,在发送到演示服务器之前,请在它们前面加上一个单引号-然后Excel将其视为文本。

Aaron 3364
2楼-- · 2020-09-16 14:01

如果在记事本中打开csv文件,请执行 您有相同的问题,还是仅在Excel中?

当学会了学习
3楼-- · 2020-09-16 14:15

不幸的是,这是excel的行为:

https://superuser.com/questions/413226/why-does-excel-treat-long-numeric-strings-as-scientific-notation-even-after-chan

如果使用记事本打开,您仍然可以获取正确的号码。 也许您应该下载到txt文件。

如果您仍要下载到csv文件,建议您尝试其他方法,例如OLE,转换等...,也可以尝试fm:XXL_FULL_API,如下所示,然后自己保存:

 TYPES:类型为LTY_DATA,
  F1 C型长度20。
 LTY_DATA的类型结尾。

 数据LV_NAME类型GXXLT_F-FILE。
 LTY_DATA的DATA LT_DATA TYPE TABLE。

 LT_DATA =值#((F1 ='1234567890123456')
  (F1 ='1234567890123456000')
  (F1 ='1234567890123456789'))。

 LV_NAME ='abc.csv'。

 数据:GXXLT_H的LT_HKEY TYPE TABLE,
  LT_ONL GXXLT_O的类型表,
  GXXLT_P的LT_PRINT TYPE TABLE,
  GXXLT_S的LT_SEMA类型表,
  GXXLT_V的LT_VKEY类型表。

 LT_SEMA = VALUE#((COL_NO ='1'COL_TYP ='STR'COL_OPS ='DFT'))。

 通话功能'XXL_FULL_API'
  出口
 * DATA_ENDING_AT = -1
 * DATA_STARTING_AT = 1
  FILENAME = LV_NAME
 * HEADER_1 =''
 * HEADER_2 =''
  NO_DIALOG ='X'
 * NO_START =''
  N_ATT_COLS = 1
  N_HRZ_KEYS = 0
  N_VRT_KEYS = 0
  SEMA_TYPE ='X'
 * SO_TITLE =''
  桌子
  数据= LT_DATA
  HKEY = LT_HKEY
  ONLINE_TEXT = LT_ONL
  PRINT_TEXT = LT_PRINT
  SEMA = LT_SEMA
  VKEY = LT_VKEY
  例外情况
  CANCELLED_BY_USER = 1
  DATA_TOO_BIG = 2
  DIM_MISMATCH_DATA = 3
  DIM_MISMATCH_SEMA = 4
  DIM_MISMATCH_VKEY = 5
  ERROR_IN_HKEY = 6
  ERROR_IN_SEMA = 7
  FILE_OPEN_ERROR = 8
  FILE_WRITE_ERROR = 9
  INV_DATA_RANGE = 10
  INV_WINSYS = 11
  INV_XXL = 12
  其他= 13。

 * BREAK-点。
 如果SY-SUBRC <> 0。
 *在这里实施适当的错误处理
 ENDIF。

clever101
4楼-- · 2020-09-16 14:03

该问题仅在Excel中。

编辑:在Excel中打开CSV时,我认为这是一个问题。 在记事本中可以。 这是一种解释: https://superuser.com/questions/373997/在Excel中添加超过15位数字


昵称总是被占用
5楼-- · 2020-09-16 13:59
或忘记使用旧的CSV格式并建立XML或MHTML文件。
樱桃小丸子0093
6楼-- · 2020-09-16 13:54

这是Excel的一个已知问题,请参见此链接

正如您从链接中看到的那样,除非出于计算目的需要该值,否则应确保Excel将值视为文本值。

一周热门 更多>