You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 20:37:46