数据:v_date类型sy-datum, v_zipcontent类型xstring, v_zipcontent1 TYPE xstring, v_zipfile TYPE字符串值'Test.zip', v_content TYPE xstring, v_xstr TYPE xstring, v_name TYPE字符串, v_filelength TYPE i, v_zip TYPE REF 转到cl_abap_zip。
v_date = sy-datum-7。
从ekpo中选择ebeln ebelp 从INTO TABLE t_ekpo 中,eded> = v_date。< br> 清除:w_rec。 合并'购买订单号' '商品号' 放入w_rec-line 用','分隔。 追加w_rec TO t _rec。
您可以v_zip-> add()将任何xstring数据(内容)添加到ZIP。 甚至是您从v_zip-> save()获得的v_zipcontent。 只要确保您不使用相同的cl_abap_zip对象实例(基本OOP)即可。
开发完成后,我将分享如何压缩(包括嵌套zip)。
谢谢,
Murali
嗨,
不确定为什么压缩2次。 我认为第一个zip的逻辑仅适用于文件,并且不能与其他文件一起使用zip-压缩文件。
从技术上讲,您正在为A,B,C,D,E,F做zip。那么为什么不为所有这些单独压缩?
谢谢
Mohan
"开发完成后,我将分享如何压缩(包括嵌套的zip)。"
您说您已经完成了第一个 压缩。 我想看到它的原因是,它可能会提示您为什么很难进行第二次拉链。 Tomas Buryanek指出-有什么要找出的?
这是第一个zip的代码。 它在应用服务器上生成了Test.zip。
* >>>>>>
报告ztest_zip。
参数:p_file TYPE本地文件。
类型:type_ekpo的开始,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
结束type_ekpo 。
类型:type_ekpo的类型标准表,
type_t_rec类型sdokcntasc的标准表。
数据:t_ekpo类型type_t_ekpo,
t_rec类型type_t_rec,
x255表,
w_ekpo类型type_ekpo,
w_rec类型sdokcntasc,
w_zipdata类型x255。
数据:v_date类型sy-datum,
v_zipcontent类型xstring,
v_zipcontent1 TYPE xstring,
v_zipfile TYPE字符串值'Test.zip',
v_content TYPE xstring,
v_xstr TYPE xstring,
v_name TYPE字符串,
v_filelength TYPE i,
v_zip TYPE REF 转到cl_abap_zip。
v_date = sy-datum-7。
从ekpo中选择ebeln
ebelp
从INTO TABLE t_ekpo
中,eded> = v_date。< br>
清除:w_rec。
合并'购买订单号'
'商品号'
放入w_rec-line
用','分隔。
追加w_rec TO t _rec。
清除w_rec。
将t_ekpo插入到w_ekpo中。
CONCATENATE w_ekpo-ebeln
w_ekpo-ebelp
插入w_rec-line
中,' '。
APPEND w_rec到t_rec。
CLEAR w_rec。
ENDLOOP。
CLEAR v_content。
CREATE OBJECT v_zip。
通话功能'SCMS_TEXT_TO_XSTRING'
导入< br>缓冲区= v_xstr
表
text_tab = t_rec
异常
失败= 1
其他=2。
如果sy-subrc =0。
刷新:t_rec。< br> FREE:t_rec。
ENDIF。
v_name ='Test.csv'。
v_zip-> add(name = v_name content = v_xstr)。
v_zipcontent = v_zip->保存 ()。
调用功能'SCMS_XSTRING_TO_BINARY'
导出
缓冲区= v_zipcontent
导入
output_length = v_filelength
表
binary_tab = t_zipdata。
>合并p_file
v_zipfile
插入到v_zipfile
中,用'/'分隔。
打开数据集v_zipfile以二进制模式输出。
将t_zipdata循环到w_zipdata中。
ENDLOOP。
CLOSE DATASET v_zipfile。
* <<<<<<
谢谢Tomas。 解决了。
对不起,我没有在单个zip中处理所有文件。
我对第三方的要求是生成一个zip文件,其中包含" 1个zip文件,其中n个文件+一些文件"。
这是必要条件。 如果我必须将所有拉链都拉链在一起,那么我可以做到。
谢谢
Murali。
一周热门 更多>