RPG开发:打印机文件无法换行仅打印最后一条记录的问题排查
RPG打印机文件仅打印最后一条DETAIL记录的问题解决
你当前的问题核心是打印机文件的DETAIL记录没有配置强制换行属性,导致每次执行Write DETAIL时,新内容都覆盖在同一行上,最终只显示最后一条记录。
你的打印机文件代码:
A R DETAIL A STUNO 9S 0 5 3 A FIN 1A 5 19 A 5 20'.' A SLNAME 15A 5 22 A EXAM1 3S 0 5 42 A EXAM2 3S 0 5 48 A EXAM3 3S 0 5 54 A EXAM4 3S 0 5 61 A EXAM5 3S 0 5 66 A AVGSCORE 3S 0 5 72 SKIPB(1) A R FOOTER A 6 56'Class Average' A CLASSAVG 3S 0 6 72
你的循环代码:
Write HEADER; Read EXAMREC; DOW Not %eof(wuexamp); EVAL(H) AVGSCORE = (EXAM1 + EXAM2 + EXAM3 + EXAM4 + EXAM5) / 5; Totalscore = Totalscore + AVGSCORE; FIN = SFNAME; RecordCount = RecordCount + 1; Write DETAIL; Read EXAMREC; enddo; CLASSAVG = Totalscore / RecordCount; Write FOOTER;
解决方法:
在DETAIL记录的定义行添加SKIP(1)属性,修改后的行如下:
A R DETAIL SKIP(1)
SKIP(1)表示每次打印DETAIL记录前先跳过1行,确保每条记录都输出到新的一行,不会覆盖之前的内容。你当前在AVGSCORE字段上设置的SKIPB(1)是打印该字段后跳行,但这无法解决前面记录行覆盖的问题,必须给DETAIL记录本身添加前置跳行的配置。
内容的提问来源于stack exchange,提问作者Jon Butler
相关产品推荐
相关产品推荐

