Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1026343
  • 博文数量: 125
  • 博客积分: 10490
  • 博客等级: 上将
  • 技术积分: 2386
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-03 18:26
文章分类

全部博文(125)

文章存档

2011年(1)

2010年(9)

2009年(17)

2008年(98)

分类:

2010-05-18 09:30:25

dspf文件:
     A*%%EC                                                          
     A                                      DSPSIZ(24 80 *DS3)       
     A                                      CF12(12)                 
     A                                      CF05(05)                 
     A          R RCD                                                 
     A N50                                  INVITE                   
     A                                  4 13DATE                     
     A                                      EDTCDE(Y)                
     A                                  4 31TIME                     
     A                                 10 26' 相隔 '                 
     A            REFSH          3Y 0O 10 33EDTCDE(3)                
     A                                 10 38' 秒自动刷新 '           
     A                                 11 26' 本次刷新时间 '         
     A            ZDATE         26   O 11 41                         
     A  51                             23 13'F5= 自动刷新 '          
     A N51                             23 13'F5= 禁止刷新 '          
     A                                 23 33'F12= 退出 '             
     A          R SXW                                                           
     A                                      WINDOW(8 8 6 20 *NOMSGLIN *NORSTCSR)
     A            SXSJ           3Y 0B  3 14EDTCDE(3)                          
     A                                      COMP(GT 0)                         
     A                                  5  2'ENTRY= 确定 '                     
     A                                  3  1' 刷新时间 :'                      
     A                                  6  1' 时间需要大于 0'                  
     A                                      DSPATR(HI)                         
     A  30                                  DSPATR(ND)                         
 
 
rpgle程序:
   /*    解释:                                                             
    /*        1. 自动刷新屏幕需要将dspf文件定义为 usropn, 因为每次规定刷新
    /*       时间时需要使用重订向来指定。                                    
    /*        2. dspf文件需要定义一个infds,因为当dspf文件被指定
    /*       刷新时间后,一旦到达刷新时间系统会将文件的状态码置显示时间超时,
    /*       这时需要将显示文件重新输出一次 , 这样就达到了刷新的效果 .       
    /*                                                                       
    /*                                                                       
     FTSDSP     CF   E             WORKSTN MAXDEV(*FILE)
     F                                     INFDS(INFDS)
     F                                     USROPN
     D
     DOVRDSPF          C                   'OVRDSPF FILE(TSDSP) '
     DINFDS            DS
     D STATUS                 11     15S 0
     D ERRID                  46     52A
     D SFLLOC                378    379B 0
     DTT               S               Z   INZ
     C*初始化时没有刷新时间
     C                   CLOSE     TSDSP
     C                   EVAL      QCMD=OVRDSPF+' WAITRCD(5)'
     C                   CALL      'QCMDEXC'     QCMDEXC
     C                   OPEN      TSDSP
     C                   EVAL      *IN50='0'
     C                   EVAL      REFSH =5
     C*显示
     C     AGN           TAG
     C*exfmt
     C*                  WRITE     FOOT
     C                   TIME                    TT
     C                   MOVE      TT            ZDATE
     C*将记录写入界面
     C                   WRITE     RCD
     C*读取界面的记录:需要刷新读取文件,不需要刷新读取记录
     C  N50              READ      TSDSP                                9699
     C   50              READ      RCD
     C*post文件,当系统自动将文件从队列中取出时,表示需要刷新。
     C                   POST      TSDSP
     C*error为cpf4737表示"Wait time exceeded for READ from WORKSTN file.",
     C*所以需要从新写入记录或文件
     C                   IF        (STATUS = 1331 or STATUS=1299)
     C                              AND ERRID = 'CPF4737'
     C                   GOTO      AGN
     C                   ENDIF
     C*F12=Exit
     C                   IF        *IN12='1'
     C                   GOTO      EXIT
     C                   ENDIF
     C*指定刷新时间
     C                   IF        *IN05
     C                   EVAL      *IN50=NOT *IN50
     C                   IF        NOT *IN50
     C*设置需要刷新的时间长度
     C                   EXFMT     SXW
     C                   CLOSE     TSDSP
     C                   EVAL      REFSH =SXSJ
     C                   EVAL      QCMD=OVRDSPF+' WAITRCD('+%CHAR(SXSJ)+')'
     C                   CALL      'QCMDEXC'     QCMDEXC
     C                   EVAL      *IN51='0'
     C                   EVAL      SXSJ =0
     C                   OPEN      TSDSP
     C                   GOTO      AGN
     C*不刷新
     C                   ELSE
     C                   CLOSE     TSDSP
     C                   EVAL      REFSH =999
     C                   EVAL      QCMD=OVRDSPF+' WAITRCD(*NOMAX)'
     C                   CALL      'QCMDEXC'     QCMDEXC
     C                   EVAL      *IN51='1'
     C                   OPEN      TSDSP
     C                   GOTO      AGN
     C                   ENDIF
     C                   ENDIF
     C
     C                   GOTO      AGN
     C     EXIT          TAG
     C                   EVAL      *INLR='1'
     C     QCMDEXC       PLIST
     C                   PARM                    QCMD            200
     C                   PARM      200           QLEN             15 5
本程序编译后可以直接运行,解释或程序中如有什么错误的地方请大家指正,万分感激!
阅读(1378) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~