ABAP-内表数据下载到CSV格式(原创转载请注明)
需求:将alv上面的数据计算到内表中区,然后通过自定义按钮进行下载到csv格式中
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(I_FIELD_SEPERATOR) TYPE CHAR01 DEFAULT ';'
*" VALUE(I_LINE_HEADER) TYPE CHAR01 OPTIONAL
*" VALUE(I_FILENAME) LIKE RLGRAP-FILENAME OPTIONAL
*" VALUE(I_APPL_KEEP) TYPE CHAR01 DEFAULT SPACE
*" TABLES
*" I_TAB_SAP_DATA TYPE STANDARD TABLE
*" CHANGING
*" VALUE(I_TAB_CONVERTED_DATA) TYPE ZCSV_T OPTIONAL
*" EXCEPTIONS
*" CONVERSION_FAILED
*"----------------------------------------------------------------------
CONSTANTS: C_FIELD_SEPARATOR VALUE ','.
DATA:
L_START_STRING LIKE SY-FDPOS,
L_END_STRING LIKE SY-FDPOS,
L_LEN_STRING(6) TYPE N,
L_EOL_STRING LIKE SY-FDPOS,
L_START_TARGET_STRING LIKE SY-FDPOS,
L_END_TARGET_STRING LIKE SY-FDPOS,
L_LEN_TARGET_STRING(6) TYPE N,
L_EOL_TARGET_STRING LIKE SY-FDPOS,
L_CONV_DATA TYPE LINE OF ZCSV_T,
L_CSV_DATA TYPE LINE OF ZCSV_T.
CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = C_FIELD_SEPARATOR
I_LINE_HEADER = I_LINE_HEADER
I_FILENAME = I_FILENAME
TABLES
I_TAB_SAP_DATA = I_TAB_SAP_DATA
CHANGING
I_TAB_CONVERTED_DATA = I_TAB_CONVERTED_DATA
EXCEPTIONS
CONVERSION_FAILED = 4.
CHECK SY-SUBRC <> 0.
* if sy-subrc <> c_rc0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
RAISING CONVERSION_FAILED.
* endif.
DESCRIBE FIELD L_CSV_DATA LENGTH L_LEN_TARGET_STRING
in character mode.
DESCRIBE FIELD L_CONV_DATA LENGTH L_EOL_STRING
in character mode.
LOOP AT I_TAB_CONVERTED_DATA INTO L_CONV_DATA.
L_START_STRING = 1.
CLEAR: L_CSV_DATA,
L_START_TARGET_STRING,
L_END_TARGET_STRING.
DO.
SEARCH L_CONV_DATA FOR C_FIELD_SEPARATOR STARTING AT
L_START_STRING
ENDING AT
L_EOL_STRING.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
IF SY-SUBRC = 0.
L_END_STRING = L_START_STRING + SY-FDPOS.
L_LEN_STRING = L_END_STRING - L_START_STRING + 1.
L_START_STRING = L_START_STRING - 1.
L_END_TARGET_STRING = L_END_TARGET_STRING + L_LEN_STRING + 4.
IF L_END_TARGET_STRING < L_LEN_TARGET_STRING.
L_CSV_DATA+L_START_TARGET_STRING(3) = '"""'.
L_START_TARGET_STRING = L_START_TARGET_STRING + 3.
L_CSV_DATA+L_START_TARGET_STRING(L_LEN_STRING) =
L_CONV_DATA+L_START_STRING.
L_START_TARGET_STRING = L_START_TARGET_STRING + L_LEN_STRING
- 1.
L_CSV_DATA+L_START_TARGET_STRING(1) = '"'.
L_START_TARGET_STRING = L_START_TARGET_STRING + 1.
L_CSV_DATA+L_START_TARGET_STRING(1) = ';'.
L_END_TARGET_STRING = STRLEN( L_CSV_DATA ).
L_START_TARGET_STRING = L_END_TARGET_STRING.
L_START_STRING = L_END_STRING + 1.
ELSE.
EXIT.
ENDIF.
ENDIF.
ENDDO.
MODIFY I_TAB_CONVERTED_DATA FROM L_CSV_DATA.
ENDLOOP.
ENDFUNCTION.
EXPORTING
default_extension = 'CSV'
default_file_name = '*'
file_filter = 'CSV文件(*.CSV)'
CHANGING
filename = w_filename
path = w_file_path
fullpath = w_full_path
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR it_tabout.
CALL FUNCTION 'ZSAP_CONVERT_TO_CSV_FORMAT'
* EXPORTING
* I_FIELD_SEPERATOR = ';'
* I_LINE_HEADER =
* I_FILENAME =
* I_APPL_KEEP = ' '
TABLES
i_tab_sap_data = lt_worldship
CHANGING
i_tab_converted_data = it_tabout
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc = 0.
ENDIF.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
* bin_filesize =
filename = w_filename
** filetype = 'DAT'
* codepage = '8404'
* ignore_cerr = ABAP_TRUE
* replacement = '#'
CHANGING
data_tab = it_tabout
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
转载于:https://www.cnblogs.com/sap-vip/p/5591127.html
ABAP-内表数据下载到CSV格式(原创转载请注明)相关推荐
- 【转】ABAP内表数据和JSON格式互转
本程序演示ABAP内表数据如何转为JSON格式, 以及JSON数据如何放入内表. REPORT ZTEST005. DATA : JSON_SER TYPE REF TO CL_TREX_JSON_S ...
- ABAP内表数据和JSON格式互转
本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表. 注:json字符串格式如:jsonstr = '[ {flag: "0",message: &quo ...
- python亿级mysql数据库导出_Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法...
本文实例讲述了python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf- ...
- SAP ABAP 内表无数据、数据损坏、数据恢复办法。
在练习数据库表的时候发现查询出来的表没有数据,解决办法如下: 步骤一:T-CODE:SE38 步骤二:执行函数SAPBC_DATA_GENERATOR,直接执行: 步骤三:执行后出现下面的界面,直接执 ...
- 上传EXCEL到ABAP内表
上传EXCEL到ABAP内表 将EXCEL文件上载到内表两种方式: 一.直接将excel数据读入具有相同结构的内表 二.将excel数据读入一个行号,列号,值组成的内表,然后通过指针将数据读到与exc ...
- SAP-ABAP 内表数据转换为十六进制字符串并利用服务器转储
函数:SOTR_SERV_TABLE_TO_STRING SCMS_STRING_TO_XSTRING 类 IF_HTTP_RESPONSE 内表数据转换为16进制存储需要先把表体内容转换成一定的格式 ...
- abap内表的操作汇总
abap内表是abap开发中最常用的工具之一 这里总结一个常用的一些操作,以后可以直接复制使用 1,定义 参考字段定义 DATA:BEGIN OF i_list OCCURS 0 , matnr ...
- Neo4j 数据导出为 CSV 格式
主要介绍将 Neo4j 数据库中数据全部导入到 MySQL 数据库中,将 Neo4j 数据导出为 CSV 格式数据,然后再将 CSV 格式数据导入到 MySQL 中. 这里介绍前半部分,即 Neo4j ...
- SAP abap内表分类与增删改查操作
SAP abap内表分类与增删改查操作 1.内表的分类 1.1.标准表 (standard table ) 系统为该表每一行生成一个院级索引.填表是可以将数据附加在现有行之后,也可以插入到指定的位置, ...
- Function ALV可编辑列修改数据后与与内表数据同步问题
当我们使用FunctionALV,即"REUSE_ALV_GRID_DISPLAY"显示ALV时,会遇到设置某些列为可编辑状态的情况,可是编辑后发现对应的内表数据并没有随之改变,那 ...
最新文章
- BlendMode颜色混合模式枚举值
- C#类方法中使用数组参数params关键字的作用
- 深度学习与计算机视觉系列(1)_基础介绍
- Bootstrap4+MySQL前后端综合实训-Day09-AM【项目功能展示视频、小组汇报PPT、项目介绍】
- java-逻辑运算符
- 【转】LAMP网站架构方案分析【精辟】
- 前端学习(2240):构造Vue的的利器-脚手架vue-cli3
- java在创建对象时必须_Java中5种创建对象的方式
- 2021年Q2母婴行业季度洞察报告
- C++代码审查工具Cppcheck和TscanCode
- JavaScript对象的键值对
- idea在plugins中搜不到插件MyBatisX
- Webstrom取消下划线
- 列表元组和字典课后练习
- 哈哈日语 五十音图之あ段音
- C语言链接mysql数据库实现简易的学生信息增删改查
- startuml动态模型工具_StarUML建模工具
- ElasticSearch 总结
- 网页关键字自动高亮,网页高亮批注,保存网页为单文件--浏览器拓展
- oracle数据库表单,Oracle常用数据库系统表单以及SQL的整理
热门文章
- spring @Autowired注入map
- selenium webdriver中的常用鼠标操作
- linux之awk命令获取最后一列
- 第一模块:开发基础 第1章 练习及作业
- 使用NEWSEQUENTIALID解决GUID聚集索引问题
- linux下的screen工具配置(针对 string escape)
- [转]ISO镜像工具PowerISO和UltraISO制作ISO光盘镜像教程
- 【转】Apache+php+mysql在windows下的安装与配置图解(最新版)
- [转]将c#中datagridview中的数据导出到excel中
- 曲演杂坛--SQLCMD下执行命令失败但没有任何错误提示的坑