点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在做一个报告,将一个csv文件上传到自定义数据库表中,但是问题是在日期字段中我遇到了问题,因为我的csv中的值是DD/MM/YYYY,而一个SAP是 YYYY/MM/DD。
我需要以DD/MM/YYYY格式更改日期,因为当文件将被上传时它将具有该格式,您知道我如何使用gui上传来尝试使用某些功能模块,但是它们没有 对我不起作用,因为他们仍以sap默认格式显示日期。
csv文件中的日期为31/03/17,但检查数据库表中的条目时为17.3/.31/0
我现在的约会日期是
这是我的代码:
数据:z01_file_update的gt_upload类型表。 数据:z01_file_update的gt_upload2类型表。 数据:lv_file类型字符串。 字段符号类似于gt_upload的行。 类型:tab1的开始, str(255), tab1的末尾。 tab1的数据itab1类型表。 字段符号 类似于itab1的行。 数据:lit_filetable TYPE文件表, lv_rc TYPE i, fwa类型filetable行。 呼叫方法cl_gui_frontend_services => file_open_dialog 出口 window_title ='查找文件' * DEFAULT_EXTENSION = * DEFAULT_FILENAME = file_filter ='*。*' initial_directory ='C:\' *多重选择= * WITH_ENCODING = 改变 file_table = lit_filetable rc = lv_rc * USER_ACTION = * FILE_ENCODING = 例外情况 file_open_dialog_failed = 1 cntl_error = 2 error_no_gui = 3 not_supported_by_gui = 4 其他= 5。 将表lit_filetable读入fwa索引1。 如果sy-subrc = 0。 lv_file = fwa文件名。 万一。 调用方法cl_gui_frontend_services => gui_upload 出口 文件名= lv_file 文件类型='DAT' 改变 data_tab = itab1 例外情况 file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 bad_data_format = 8 header_not_allowed = 9 spacer_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 not_supported_by_gui = 17 error_no_gui = 18 其他= 19 。 如果sy-subrc <> 0。 消息"您做错了!" 像'I'一样键入'E'显示。 万一。 char50的数据dtab类型表。 字段符号 类似于dtab的行。 在itab1循环,根据说明行从2开始分配 。"。 在<;处分割 到表dtab中。 将初始行附加到gt_upload并分配 。 在dtab中循环,分配 。 案例sy-tabix。 当1。 -bukrs = 当2。 -gjahr = 当3。 -budat = 当4。 -bldat = 当5。 -blart = 当6。 -belnr = 当7。 -xblnr = 当8。 -hkont = 当9。 -sgtxt = 当10。 -buzei = 当11。 -dmbtr = 当12。 -shkzg = 当13。 -bschl = 当14。 -umsks = 当15。 -kostl = 尾箱。 结束循环。 结束循环。 数据lv_line类型i。 从z01_file_update中选择*到表gt_upload2中。 描述表gt_upload2行lv_line。 如果lv_line = 0。 从表gt_upload插入z01_file_update接受重复的密钥。 其他。 从表gt_upload中删除z01_file_update。 endif。
为什么不只使用偏移量。
花点时间,直到不再有效为止:-)至少对于您的文件上传
谢谢您为我工作!!
在下一行放置一个断点,并检查传递了什么值
您还在表Z01_FILE_UPLOAD中使用了什么数据类型?
我可以看到您是直接从字段符号传递值,而不是在更新数据库表之前将日期转换为内部格式YYYYMMDD。
请参阅Florian的解决方案,您也可以使用它。
还要检查其他字段是否也有转换出口。 例如:BELNR。
我已经使用了数据元素bldat
您应该使用转换功能模块。
一周热门 更多>