将输出报告到内部表

2020-09-04 23:04发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 已经存在由写语句生成的带...

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

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


嗨,

已经存在由写语句生成的带有输出的报告。 我想将报告输出放入内部表中(输出行将存储为字符串)。 是否有任何功能模块或任何其他方式可以实现这一目标。

我不想移动产生输出的字符串并准备内部表。 我想知道是否有任何直接的机制。

预先感谢

Vishnu Priya

8条回答
zhangjiyang1323
2020-09-04 23:30

嗨,毗湿奴,

我已经开发了这种报告来发送邮件。 请在这里找到我的代码以供参考。

此报告调用另一个报告,并通过电子邮件发送其输出。 我已突出显示该区域。 如有问题请与我讨论。

表格:kna1。

  • 数据声明

数据:诸如sodocchgi1之类的docdata,

像sopcklsti1这样的objpack在标题行中出现1,

objhead之类的solisti1出现在标题行中,

objtxt类似于solisti1出现在标题行10,

类似于solisti1的objbin在标题行出现10次,

像solix这样的objhex在标题行出现10次,

像somlreci1一样的relist在标题行出现1。

数据:像abaplist这样的listobject在标题行中出现1。

数据:tab_lines输入i,

doc_size类型i,

att_type类似于soodk-objtp。

数据:it_cust的开头出现0,

像kna1-kunnr一样的kunnr,

name1,例如kna1-name1,

ort01,如kna1-ort01,

it_cust的结尾。

选择屏幕从b1块开始,帧标题为text-000。

select-options:kna1-kunnr的p_kunnr。

b1块的选择屏幕结尾。

刷新it_cust。

清除it_cust。

选择kunnr name1 ort01

放入表it_cust

来自kna1

p_kunnr中的kunnr。

在it_cust循环。

刷新:objpack,objhead,objtxt,objbin,objhex,reclist,listobject。

清除:objpack,objhead,objtxt,objbin,objhex,reclist,listobject。

objbin ='| '。 附加objbin。

objpack-head_start = 1。

  • 注意:在假脱机中创建ALI/OTF文档

  • ALI文档可以通过显示列表并选择

  • 来创建
  • 菜单系统->列表->打印(仅放入假脱机)。

  • 可以在系统中运行报表SF_EXAMPLE_01来创建OTF文档。

*

描述表格对象行tab_lines。

  • 此处使用的示例:

  • 在内存中创建列表

使用s_kunnr = it_cust-kunnr提交zsd_cust_os_mail_att

将列表导出到内存并返回。

  • 并将列表从内存中读取到表中

调用函数" LIST_FROM_MEMORY"

表格

listobject = listobject

例外

其他= 1。

如果sy-subrc <> 0。

继续。

endif。

* packing_list = objpack。

  • 因为列表对象的大小为RAW(1000)

  • 并且objbin的大小为CHAR(255),我们将此表复制了

调用函数" TABLE_COMPRESS"

  • 导入

  • COMPRESSED_SIZE =

表格

in = listobject

out = objbin

例外

其他= 1。

如果sy-subrc <> 0。

消息ID" 61",键入" E",数字为" 731"

和" TABLE_COMPRESS"。

endif。

* ELSE。

  • 注意:附件的创建已完成。

  • 对于您的报告,附件应放在表格中

  • objtxt用于纯文本或

  • 二进制内容的objbin。

  • 现在创建消息并发送"收件人"文档。

  • 创建邮件正文

  • 标题和说明

docdata-obj_name ='PI_CUST_REMINDER'。

docdata-obj_descr ='温和付款提醒'。

  • 正文

objtxt ='尊敬的客户'。

附加objtxt。

objtxt ='请找到上面的附件。'

附加objtxt。

objtxt + 0(255)=''。

附加objtxt。

objtxt ='今天愉快。'

附加objtxt。

objtxt + 0(255)=''。

附加objtxt。

objtxt ='问候'。

附加objtxt。

objtxt + 0(255)=''。

附加objtxt。

objtxt ='PI Industries Ltd。'。

附加objtxt。

objtxt + 0(255)=''。

附加objtxt。

objtxt + 0(255)=''。

附加objtxt。

objtxt + 0(255)=''。

附加objtxt。

串联"此电子邮件/传真包含机密信息,并且是"

'供收件人专用。 如果您不是'

"收件人,那么此电子邮件/传真的任何分发,复制或使用都是"

'禁止。 如果收到错误消息,请告知objtxt中用空格隔开的内容。

附加objtxt。

连接'sender并立即将其删除/销毁。 我们对'

不承担任何责任

"任何人因使用此工具而遭受的任何损失或损害"

"电子邮件/传真"。 到objtxt中,并用空格分隔。

附加objtxt。

  • 装箱清单(主)

描述表objtxt行tab_lines。

读取表objtxt索引tab_lines。

docdata-doc_size =(tab_lines-1)* 255 + strlen(objtxt)。

清除objpack-transf_bin。

objpack-head_start = 1。

objpack-head_num = 0。

objpack-body_start = 1。

objpack-body_num = tab_lines。

objpack-doc_type ='RAW'。

附加objpack。

  • 创建邮件附件

  • 撰写装箱单(附件)

att_type ='ALI'。

描述表格对象行tab_lines。

读取表objbin索引tab_lines。

objpack-doc_size =(tab_lines-1)* 255 + strlen(objbin)。

objpack-transf_bin ='X'。

objpack-head_start = 1。

objpack-head_num = 0。

objpack-body_start = 1。

objpack-body_num = tab_lines。

objpack-doc_type = att_type。

objpack-obj_name ='ATTACHMENT'。

objpack-obj_descr ='附加的文档'。

附加objpack。

  • 创建收件人列表

reclist-receiver ='电子邮件地址'。 " <-更改地址

reclist-rec_type ='U'。

追加清单。

* reclist-receiver = sy-uname。 " <-更改内部用户

* reclist-rec_type ='B'。

* APPEND清单。

  • 发送消息

调用函数" SO_NEW_DOCUMENT_ATT_SEND_API1"

导出

document_data = docdata

put_in_outbox ='X'

commit_work ='X'

  • 导入

  • SENT_TO_ALL =

  • NEW_OBJECT_ID =

表格

包装清单= objpack

object_header = objhead

contents_bin = objbin

contents_txt = objtxt

  • CONTENTS_HEX = objhex

  • OBJECT_PARA =

  • OBJECT_PARB =

接收者=列入清单。

  • 例外情况

  • TOO_MANY_RECEIVERS = 1

  • DOCUMENT_NOT_SENT = 2

  • DOCUMENT_TYPE_NOT_EXIST = 3

  • OPERATION_NO_AUTHORIZATION = 4

  • PARAMETER_ERROR = 5

  • X_ERROR = 6

  • ENQUEUE_ERROR = 7

  • 其他= 8。

如果sy-subrc <> 0。

消息ID'SO'类型'S'数字'023'

具有docdata-obj_name。

endif。

endloop。

一周热门 更多>