我试图理解使用RPGLE和PRTF成员进行简单的批处理,下面是两者的代码,但结果如下(列打印而不是数据)--我做错了什么:

KDCSTPGM.RPGLE这是带有逻辑的rpgle成员
Dcl-f Customers Disk KEYED Usage(*Input);
Dcl-f Custlist Printer Usage(*Output) Oflind(Endofpage);
//Standalone variable declarations
Dcl-s Endofpage Ind Inz(*on);
dcl-s count packed(2:0);
// Main Procedure
Read Customers;
Dow Not %eof(Customers);
If Endofpage;
write Header;
Endofpage = *off;
Endif;
count += 1;
write Detail;
Read Customers;
Enddo;
If Endofpage;
write Header;
Endif;
write total;
*inlr = *On;
Return; CUSTLIST.PRTF这是打印机文件
A R HEADER
A 2 55'Customer List'
A 2 97DATE
A 2117PAGNBR
A 3 3'Customer:'
A R DETAIL SPACEB(1)
A 3'Customer Number'
A SPACEB(3)
A 25'Last Name '
A 43'First Name'
A 63'Phone'
A 82'Email'
A R TOTAL SPACEB(1)
A CUSTONO R 2SPACEB(4)
A REFFLD(CUSTSREC/CUSTONO MyLib/CUS-
A TOMERS)
A CLNAME R 14REFFLD(CUSTSREC/CLNAME MyLib/CUST-
A OMERS)
A CFNAME R 36REFFLD(CUSTSREC/CFNAME MyLib/CUST-
A OMERS)
A CPHONE R 54REFFLD(CUSTSREC/CPHONE MyLib/CUST-
A OMERS)
A CEMAIL R 66REFFLD(CUSTSREC/CEMAIL MyLib/CUST-
A OMERS)
A*%%RS+<record-sequences>
A*%%RS+ <sequence name="Custlist">
A*%%RS+ <device type="printer" width="132" height="66" />
A*%%RS+ <record-write record-format="HEADER" />
A*%%RS+ <record-write record-format="DETAIL" />
A*%%RS+ <record-write record-format="TOTAL" />
A*%%RS+ </sequence>
A*%%RS </record-sequences> 发布于 2022-08-02 14:14:40
您的详细记录中没有任何数据字段,而是在总记录中.
你的PRTF应该看起来更像
A R HEADER
A 2 55'Customer List'
A 2 97DATE
A 2117PAGNBR
A 4 3'Customer Number'
A 4 25'Last Name '
A 4 43'First Name'
A 4 63'Phone'
A 4 82'Email'
A R DETAIL SPACEB(1)
A CUSTONO R 2
A REFFLD(CUSTSREC/CUSTONO MyLib/CUS-
A TOMERS)
A CLNAME R 14REFFLD(CUSTSREC/CLNAME MyLib/CUST-
A OMERS)
A CFNAME R 36REFFLD(CUSTSREC/CFNAME MyLib/CUST-
A OMERS)
A CPHONE R 54REFFLD(CUSTSREC/CPHONE MyLib/CUST-
A OMERS)
A CEMAIL R 66REFFLD(CUSTSREC/CEMAIL MyLib/CUST-
A OMERS)
A R TOTAL SPACEB(2)
A 10'Total Count:'
A COUNT 2 0 +2 https://stackoverflow.com/questions/73208057
复制相似问题