在很多 SAP 项目里,经典报表往往会经历一条相似的演化路线:最初只是一个 SELECT-OPTIONS 加一个 WRITE,很快就需要 ALV、双击联动、工具栏按钮、字段校验、后台作业输出、甚至还要复用到别的事务里。等需求累积到一定规模,程序结构如果还停留在 FORM 和全局变量的堆叠,就会变得越来越难维护:改一处,牵一片;想加一个新功能,成本比重写还高。
这篇文章围绕一个非常实用的报表模板展开:用 MVC(Model View Controller)思路把报表拆成清晰的层次,并且把 Dynpro、CFW 控件、Selection Screen 事件流都纳入统一的控制框架里。更关键的是,它同时支持两种运行形态:
- 在线运行:进入空白主屏幕,通过
Docking Container承载ALV结果列表 - 后台运行:不调用屏幕,直接生成
Spool友好的列表输出
这种写法的价值不在于“好看”,而在于把“报表”升级成“可扩展的小应用”,后续加功能时能沿着既定的扩展点走,而不是到处打补丁。
选择屏幕事件与处理流的底层机制,可以参考 ABAP Keyword Documentation 对
AT SELECTION-SCREEN等事件的说明。(
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



