为什么只打印最后一个值?

2020-09-05 08:37发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好 我正在abap程序中遍...

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

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


大家好

我正在abap程序中遍历一个内部表,并将该表中的值打印到sap脚本窗体上。

数据:gt_addr的开头出现0,
 文字TYPE文字50。
 数据:gt_addr的结尾。

 格式print_addr使用pf_ADRNR类型AD_ADDRNUM。
  数据ls_addr_s与gt_addr类似。
  data(lo_addr)=新的ZCL_ADDR_CREATOR(iv_addr = pf_adrnr)。
  data(lt_addr)= lo_addr-> format()。
  刷新gt_addr。
  将lt_addr引用到数据(ls_addr)中。
  ls_addr_s-text =转换text50(ls_addr-> text)。
  将ls_addr_s附加到gt_addr。
  结局。
  循环到gt_addr。
  调用函数" WRITE_FORM"
  出口
  元素='CUSTOMER_ADDR'
  窗口='KADR_B'
  函数='APPEND'
  例外情况
  元素= 1
  窗口= 2。
  如果sy-subrc ne 0。
  执行protocol_update。
  万一。
  结局。
 ENDFORM。

问题是,它正在打印最后一个值,而不是表中的所有值:

我做错了什么?

谢谢

(1.2 kB)
9条回答
小c菟菟
2020-09-05 09:16

也许它会临时存储对全局变量的引用。 也许在文档:"所有其他窗口在主窗口之后进行处理。系统首先收集定向到它们的所有输出。它以ITF格式存储要输出的文本行;但不会在以下位置对它们进行格式化 当调用功能模块WRITE_FORM或WRITE_FORM_LINES时,只有在主窗口触发了分页符时,系统才会在其他窗口中格式化文本并将其放置在输出队列中,这在使用变量时尤其重要。 在处理完主窗口后,将其替换为有效值。"

解决方法:使用WRITE_FORM_LINES(并且您无需在SAPscript中使用&...&)。

一周热门 更多>