免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: netdoger

请问SFLNXTCHG怎么用 [复制链接]

论坛徽章:
0
发表于 2008-08-08 11:51 |显示全部楼层
rpg(SFR681):

  1.      FSTATES  UF  E           K        DISK                      A   
  2.      FSFD681  CF  E                    WORKSTN                       
  3.      F                                        @RRN  KSFILE SFD681A   
  4.      ISAVDS     E DSSTATES                    2                     
  5.       *WRITE THE CMD KEY LINE                                       
  6.      C                     WRITETRAILER                              
  7.       *INITIALIZE THE SUBFILE WITH 500 NON-ACTIVE RECORDS            
  8.      C                     MOVE *ON       *IN31                     
  9.      C                     WRITESFD681B                              
  10.      C                     MOVE *OFF      *IN31                     
  11.       *LOAD RECORDS INTO THE SUBFILE                                 
  12.      C                     EXSR @LOAD                                
  13.       *DISPLAY THE SUBFILE                                          
  14.      C           @DISP     TAG                                       
  15.      C                     EXFMTSFD681B                              
  16.      C                     EXSR @CMD                                 
  17.       *VALIDATE THE STATE CODE.MAKE SURE NONE OF THEM START      
  18.       *WITH THE LETTER Q.                                         
  19.      C                     MOVE *OFF      @ERROR                  
  20.      C                     EXSR @VAL                              
  21.      C           @ERROR    IFEQ *ON                              
  22.      C                     GOTO @DISP                             
  23.      C                     ENDIF                                 
  24.       *READ THROUGH THE SUBFILE AND SEE HOW MANY RECORDS         
  25.       *WRRE MAINTAINED VERSUS HOW MANY READ OPERATIONS IT TOOK.   
  26.      C                     EXSR @UPDAT                           
  27.       ************************************************************
  28.       *      @CMD      SUBROUTINE                                 
  29.       ************************************************************
  30.      C           @CMD      BEGSR                                 
  31.       *                                                           
  32.      C           *IN03     IFEQ *ON                              
  33.      C                     MOVE *ON       *INLR                        
  34.      C                     RETRN                                       
  35.      C                     ENDIF                                       
  36.       *                                                                 
  37.      C                     ENDSR                                       
  38.       ****************************************************************  
  39.       *      @UPDAT    SUBROUTINE                                    *  
  40.       ****************************************************************  
  41.      C           @UPDAT    BEGSR                                       
  42.       *                                                                 
  43.      C                     MOVE *OFF      *IN99                        
  44.       *PROCESS ALL CHANGED SUBFILE RECORDS                              
  45.      C           *IN99     DOWEQ*OFF                                    
  46.      C                     READCSFD681A                  99            
  47.      C           *IN99     IFEQ *ON                                    
  48.      C                     LEAVE                                       
  49.      C                     ENDIF                              
  50.       *                                                      
  51.      C           @KEY      IFGT *BLANKS                       
  52.      C           2         OCUR SAVDS                        
  53.      C           @KEY      CHAINRSTATES              98      
  54.      C           *IN98     IFEQ *OFF                          
  55.      C                     DELETRSTATES                       
  56.      C                     ENDIF                              
  57.      C           1         OCUR SAVDS                        
  58.      C           STATCD    IFGT *BLANKS                       
  59.      C                     WRITERSTATES                       
  60.      C                     ENDIF                              
  61.      C                     ELSE                              
  62.      C           @KEY      CHAINRSTATES              98      
  63.      C           *IN98     IFEQ *ON                           
  64.      C                     WRITERSTATES                       
  65.      C                     ENDIF                                       
  66.      C                     ENDIF                                       
  67.      C                     ENDDO                                       
  68.       *                                                                 
  69.      C                     ENDSR                                       
  70.       ****************************************************************  
  71.       *      *INZSR    SUBROUTINE                                    *  
  72.       ****************************************************************  
  73.      C           *INZSR    BEGSR                                       
  74.       *                                                                 
  75.      C                     Z-ADD0         @RRN    50                    
  76.      C                     MOVE *ON       *IN35                        
  77.       *                                                                 
  78.      C                     ENDSR                                       
  79.       ****************************************************************  
  80.       *      @LODD     SUBROUTINE                                    *  
  81.       ****************************************************************  
  82.      C           @LOAD     BEGSR                                       
  83.       *                                                                 
  84.      C                     MOVE *OFF      *IN99                        
  85.      C                     Z-ADD0         @RRN                          
  86.      C           *LOVAL    SETLLRSTATES                                 
  87.      C           *IN99     DOWEQ*OFF                                    
  88.      C                     READ RSTATES                  99            
  89.       *                                                                 
  90.      C           *IN99     IFEQ *ON                                    
  91.      C           @RRN      OREQ 500                                    
  92.      C                     LEAVE                                       
  93.      C                     ENDIF                                       
  94.       *                                                                 
  95.      C                     ADD  1         @RRN                          
  96.      C                     MOVELSTATCD    @KEY                          
  97.      C                     WRITESFD681A                                 
  98.       *                                                                 
  99.      C                     ENDDO                                       
  100.       *                                                                 
  101.      C                     MOVE *ON       *IN30                        
  102.      C                     Z-ADD@RRN      @REC                          
  103.      C                     ADD  1         @REC                          
  104.       *                                                                 
  105.      C                     ENDSR                                       
  106.       ****************************************************************  
  107.       *      @VAL      SUBROUTINE                                    *  
  108.       ****************************************************************  
  109.      C           @VAL      BEGSR                                       
  110.       *                                                                 
  111.      C                     MOVE *OFF      *IN99                        
  112.      C           *IN99     DOWEQ*OFF                                    
  113.      C                     READCSFD681A                  99         
  114.      C           *IN99     IFEQ *ON                                 
  115.      C                     LEAVE                                    
  116.      C                     ENDIF                                    
  117.       *                                                            
  118.      C           STATCD    IFGE 'QA'                                
  119.      C           STATCD    ANDLE'Q9'                                
  120.      C                     MOVE *ON       @ERROR  1                 
  121.      C                     MOVE *ON       *IN41                     
  122.      C                     ENDIF                                    
  123.       *                                                            
  124.      C                     MOVE *ON       *IN39                     
  125.      C                     UPDATSFD681A                             
  126.      C                     MOVE *OFF      *IN41                     
  127.       *                                                            
  128.      C                     ENDDO                                    
  129.      C                     MOVE *OFF      *IN39         
  130.       *                                                  
  131.      C                     ENDSR                        
复制代码

论坛徽章:
0
发表于 2008-08-08 11:57 |显示全部楼层
画面如图:
如果state code的输入大于等于QA小于等于Q9报错。
1.JPG

论坛徽章:
0
发表于 2008-08-08 12:32 |显示全部楼层
看来两位编写subfile的火候很不到位。

subfile编写有两种模式:
系统模式
用户模式

看了两位的代码,都属系统模式。即IBM 提供的模式翻页记录采用dds文件定义的记录数。根据我的编程经验,采用系统模式比较容易快速编写应用程序;缺点就是不能任意增加程序检测点,程序处理流程比较单一。

用户模式对subfile翻页记录数采用程序控制,可以在程序中任意增加检测点,增减多个subfile处理,多个条件判断。缺点(且这么叫法):编写程序实现比较复杂。我比较喜欢采用用户模式。

论坛徽章:
0
发表于 2008-08-08 12:36 |显示全部楼层
再一说:

我已经n年不用goto,tag等分支跳转语句了。在北美,有些公司一看到你的程序有goto等语句,你就会面临fire。

论坛徽章:
0
发表于 2008-08-08 12:51 |显示全部楼层
原帖由 passthru 于 2008-8-8 12:36 发表
再一说:

我已经n年不用goto,tag等分支跳转语句了。在北美,有些公司一看到你的程序有goto等语句,你就会面临fire。




对 RPG里我也从不用goto,tag
那CL里你用什么啊

论坛徽章:
0
发表于 2008-08-08 13:14 |显示全部楼层
我GOTO我深恶痛绝

论坛徽章:
0
发表于 2008-08-08 13:17 |显示全部楼层
不过用系统/用户和标题没有关系

论坛徽章:
0
发表于 2008-08-08 13:19 |显示全部楼层
GOTO的存在自有他存在的理由。
不要人家说不好就真的不好。

论坛徽章:
0
发表于 2008-08-08 13:21 |显示全部楼层
原帖由 passthru 于 2008-8-8 12:36 发表
再一说:

我已经n年不用goto,tag等分支跳转语句了。在北美,有些公司一看到你的程序有goto等语句,你就会面临fire。


你不用并不代表所有人都不用。
还有GOTO不要乱用,不是不能用。

论坛徽章:
0
发表于 2008-08-08 13:24 |显示全部楼层
原帖由 passthru 于 2008-8-8 12:32 发表
看来两位编写subfile的火候很不到位。


还有不要对人妄加评论。
你是很强,但人不能太狂傲。

[ 本帖最后由 pantierui 于 2008-8-8 14:13 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP