2017-11-18 57 views
0

我有具有大型机 - 生成与特定字段的总和的报告

•表示6位十进制分支SORTCODE 4字节的二进制无符号整数(例如420101)

•4字节一VSAM二进制无符号整数,表示一个8位帐号(例如12345678)

•4字节符号整数保持该帐户的当前余额

•32字节EBCDIC字符帐户拥有者的名称(例如“PAT JONES”),空白填充在右侧

,我想生成报告如下

enter image description here

我试图做到这一点

INCLUDE COND=(1,7,CH,EQ,C'some sortcode')        
    SORT FIELDS=(1,7,CH,A)            
    SUM FIELDS=(9,2,BI) 

但有很多SORTCODE的。我正在考虑对所有输入进行排序,然后将排序相同的每个记录汇总在这些排序代码行的正下方。 JCL有什么办法可以做到吗?谢谢。

回答

2

试试这个:

//SORTSTEP EXEC PGM=SORT 
//SYSOUT DD SYSOUT=* 
//SYSPRINT DD SYSOUT=* 
//SORTIN DD DSN=YourInputDataset,DISP=SHR 
//SORTOUT DD DSN=YourOutputDataset, 
//   DISP=(NEW,CATLG,DELETE) 
//SYSIN DD * 
    SORT FIELDS=(1,4,BI,A) 
    INREC BUILD=(1,4,BI,TO=ZD,LENGTH=6,5,4,9,4,13,32) 
    OUTFIL REMOVECC, 
     SECTIONS=(1,6, 
     HEADER3=(1:C'LIST OF BANK BY BRANCH',/,X,/, 
        1:C'SORTCODE: ',1,6,/,X,/, 
        1:C'ACCOUNT',10:C'BALANCE',20:C'OWNER NAME',/, 
        1:C'-------',10:C'-------',20:C'----------'), 
     TRAILER3=(X,/, 
     1:C'BRANCH TOTAL: ',16:TOT=(11,4,BI,EDIT=(SIIIITTT),SIGNS=(,-)))), 
     TRAILER1=(X,/,1:C'GRAND TOTAL: ',TOT=(11,4,BI, 
         EDIT=(SIIIITTT),SIGNS=(,-))), 
     OUTREC=(1:7,4,BI,TO=ZD,LENGTH=8,10:11,4,BI,EDIT=(SIIIITTT), 
         SIGNS=(,-),20:15,32) 
/* 

您可以通过以下链接找到更多有关的部分,HEADER3和TRAILER3:https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.iceg200/ice2cg_Sections.htm

+0

NVM,整理出来。非常感谢。 –