SORT:VB变长转FB定长,输出对齐

最近接触的项目,用的SORT的地方较多,准备写几篇sort的:

//STEP001  EXEC PGM=SYNCSORT,REGION=4096K                      
//SYSOUT   DD  SYSOUT=*                                        
//SYSPRINT DD  SYSOUT=*                                        
//SORTIN   DD  DSN=SORTIN,DISP=SHR                           
//SORTOUT  DD DSN=&&SORTOUT,DISP=(NEW,PASS),                   
//            DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=0),      
//            UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)                
//SYSIN DD *                                                   
  SORT FIELDS=COPY                                             
  INCLUDE COND=(5,1,CH,EQ,C'B')                                
  OUTFIL VTOF,                                                 
  BUILD=(6,15,JFY=(SHIFT=LEFT),12,4,41,3,100,20,120,2,36C' ')  
/*                                                             

SORTINLRECL=4000的VB格式,SORTOUTLRECL=80的FB格式。Sort条件是第1位为'B'。输出格式:对于SORTIN中所有符合第1位为'B'的那些record,分别取其第2位开始的15位(左对齐),8开始的4位,37开始的3位,96开始的20位,118开始的2位。再加上36个末尾空格,组装成80长度的输出。

Comments !