ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

070、列表输出与页眉页脚

070、列表输出与页眉页脚 070、列表输出与页眉页脚调试老报表时遇到一个邪门问题:同一个程序,在测试环境输出页眉正常,到生产环境页眉就“长”到了第二页,第一页反而是空的。折腾半天发现是有人偷偷改了程序里的LINE-COUNT,把默认行数调大,而页眉输出条件TOP-OF-PAGE触发时机跟着变了。ABAP的列表输出(List Output)和页眉页脚,本质上就是一套“行打印机时代”的文本流控制逻辑。你现在看到的什么ALV、SmartForms,骨子里都还带着这套老规矩的影子。搞懂它,不光能修老程序,还能在写报表时对输出节奏有底。先看最基本的列表输出。WRITE语句把内容写到当前输出页的缓冲区,SKIP空行,ULINE画横线,NEW-PAGE强制换页。屏幕上的每一行,对应内部一个“输出游标”。游标走到哪,下一句WRITE就落在哪。这跟用记事本敲字一个道理,只不过ABAP会在后台默默记录行号和列号。页眉页脚怎么控制?靠两个事件块:TOP-OF-PAGE和END-OF-PAGE。注意,这俩不是随便写哪都行的,必须放在START-OF-SELECTION或GET事件之后的程序主流程里,而且一个程序里只能各写一个。当输出行数达到预设的LINE-COUNT上限(扣掉页眉页脚预留行数),系统自动触发TOP-OF-PAGE,把里面的WRITE内
返回列表