显示程序的参考结构
怎样写出一个可读性高,结构清楚的显示程序呢?我把我过去写的规范给初学者参考一下。欢迎砸砖。
每一个屏幕都有一个子程序。如果一个程序有三个屏幕,我们定义他们为三个子程序SCR001, SCR002和SCR003.
C*-------------------------------
C SCR_001 BEGSR
C EXSR CLR_MSG
C* INITIALIZE AND FILL THE SCREEN
C EXSR INZSCR
C DOW 1 = 1
C EXFMT MY_REC
C IF ERROR
C EXSR CLR_MSG
C ENDIF
...
C IF *INKC
C LEAVE
C ENDIF
C EXSR FKY_PRC
...
C EXSR ENT_PRC
...
C ENDDO
C ENDSR
C*------------------------------
C* FUNCTION KEY SUBROUTINE
C*-------------------------------
C FKY_PRC BEGSR
C EVAL FNT_FLG = *OFF
C SELECT
C WHEN *INKX
C ....
C WHEN *INKX
C ....
C OTHER
C EVAL ENT_FLG = *ON
C ENDSL
C ENDSR
C*------------------------------
C* POST-ENTER SUBROUTINE
C*------------------------------
C ENT_PRC BEGSR
C IF ENT_FLG
C EXSR VALID
C ...
C IF NOT ERROR
C EXSR POST_TRN
C ENDIF
C ENDIF
C ENDSR
C*------------------------------
C* CLEAR MESSAGE SUBROUTINE
C*------------------------------
C CLR_MSG BEGSR
C* RESET ERROR INDICATORS
C MOVEA '000000' *INKX
C* CLEAR MSG IN PGM MESSAGE QUEUE
C CALL 'CLEAR' PLIST1
C EVAL ERROR = *OFF
C ENDSR
C*------------------------------
子程序SCR001被调用之后,先执行INZSCR子程序填充屏幕。
然后进入主循环,直到用户按F3=Exit退出。
显示屏幕后控制回到程序后先执行功能键子程序FKY_PRC
如果功能键没有被按到过,便执行回车键处理子程序ENT_PRC
ENT_PRC先调用VALID子程序对用户键入的内容进行合法性检验。
如果有错,把变量ERROR设置为*ON, 并且把出错信息送到PROGRAM MESSAGE QUEUE去。
如果没有错,就执行POST_TRN,进行相应的操作。
[ 本帖最后由 法郎士 于 2009-12-7 12:59 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
原先的老程序都是固定格式。我这个是固定格式的规范。有更好的规范吗?欢迎砸砖和玉。
不可能全部一下子改成自由格式。
用自由格式,嵌套可以比较清楚。
bbs 还是难看
看看我的程序是否可读性高,结构清楚?
复制代码