RPGLE程序中计数器值写入打印文件数据结构无输出问题求助
问题根因
你的赋值逻辑方向完全错误,代码中TotalCalls = %dec('0' + %trim(PrinterTotalDS):5:0);是将未初始化的空合计结构PrinterTotalDS的数值覆盖到已经统计完成的TotalCalls计数器上,全程没有把TotalCalls的统计值写入到PrinterTotalDS的对应字段里,所以写入打印文件的合计结构是空的,自然没有内容输出。
修复方案
- 删除上述错误的反向赋值语句
- 新增赋值逻辑,将
TotalCalls的统计值写入PrinterTotalDS中对应打印总数字段即可:
注意:请将代码中的
<TotalsCountField>替换为你打印文件S071303P的Totals记录格式里实际定义的总数字段名
修正后的代码片段如下:
Enddo; // 赋值统计值到打印合计结构 PrinterTotalDS.<TotalsCountField> = TotalCalls; // 写入合计行 Write PrinterFile.Totals PrinterTotalDS; close S071303LF; close PrinterFile;
额外排查项
- 确认打印文件
S071303P的Totals记录格式中总数字段的类型、长度和TotalCalls(Zoned(5:0))一致,避免数据转换错误 - 检查打印文件的
Totals记录格式是否设置了触发条件(比如仅页尾输出),如果有需要确保最后一页满足触发条件
内容的提问来源于stack exchange,提问作者jaspoe30
相关产品推荐
相关产品推荐

