免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8725 | 回复: 22
打印 上一主题 下一主题

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-29 20:54 |只看该作者 |倒序浏览
实践+交流,为自行提高RPG IV开发水平而努力。。。

=========================================================

【转】使用RPG中的Subfile实现纪录的滚动显示。

一般的程序开发语言都能实现滚动显示,开发人员经常使用它来显示大量的信息,RPG也能实现这个功能,本文主要介绍RPG用subfile实现纪录的滚动显示。

Subfile是显示文件中的临时存储区,用subfile可以在一个画面上显示很多条信息,用subfile可以实现数据的输入、更新、查询。

下面举一个具体的例子来说明:

  1. Columns . . . :    1  71           Browse                    CHINAUNIX/QDDSSRC
  2. SEU==>;                                                              SQLSFLSRTD
  3. FMT A* .....A*. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7  
  4.         *************** Beginning of data *************************************
  5. 0000.10      A*%%TS  SD  20041121  114503  CHINAUNIX   REL-V5R1M0  5722-WDS     
  6. 0000.20      A*%%EC                                                            
  7. 0000.30      A                                      DSPSIZ(24 80 *DS3)         
  8. 0000.40      A                                      PRINT                       
  9. 0000.50      A                                      ERRSFL                     
  10. 0000.60      A                                      CA03                        
  11. 0000.70      A                                      CA12                        
  12. 0000.80      A                                      CF04                        
  13. 0000.90      A*                                                                 
  14. 0001.00      A          R SFL1                                                  
  15. 0001.10      A*%%TS  SD  20041121  114503  CHINAUNIX   REL-V5R1M0  5722-WDS     
  16. 0001.20      A                                  1  3'PGM:SQLSFLSRTR'            
  17. 0001.30      A                                  1 27'DYNAMIC'                  
  18. 0001.40      A                                  1 35'SORT'                     
  19. 0001.50      A                                  1 40'WITH'                     
  20. 0001.60      A                                  1 45'EMBEDDED'                  
  21. 0001.70      A                                  1 54'SQL'                       
  22. 0001.80      A                                  1 71'DD/DD/DD'                  
  23. 0001.90      A                                  2  3'DSPF:SQLSFLSRTD'           
  24. 0002.00      A                                  2 71'TT:TT:TT'                  
  25. 0002.10      A                                  4  3'LAST'                     
  26. 0002.20      A                                  4  8'NAME'                     
  27. 0002.30      A                                  4 28'FIRST'                     
  28. 0002.40      A                                  4 34'NAME'                     
  29. 0002.50      A                                  4 52'MI'                        
  30. 0002.60      A                                  4 61'NICK'                     
  31. 0002.70      A                                  4 66'NAME'                     
  32. 0002.80      A*                                                                 
  33. 0002.90      A          R SF1CTL                                                
  34. 0003.00      A*%%TS  SD  20041121  114105  CHINAUNIX   REL-V5R1M0  5722-WDS     
  35. 0003.10      A                                      OVERLAY                     
  36. 0003.20      A                                  4  2'LAST NAME'                 
  37. 0003.30      A                                      DSPATR(HI)                  
  38. 0003.40      A                                  4 27'FIRST NAME'               
  39. 0003.50      A                                      DSPATR(HI)                  
  40. 0003.60      A                                  4 51'MI'                        
  41. 0003.70      A                                      DSPATR(HI)                  
  42. 0003.80      A                                  4 60'NICK NAME'                 
  43. 0003.90      A                                      DSPATR(HI)                  
  44. 0004.00      A                                  1  2'PGM:SQLSFLSRTR'            
  45. 0004.10      A                                      COLOR(GRN)                  
  46. 0004.20      A                                  2  2'DSPF:SQLSFLSRTD'           
  47. 0004.30      A                                      COLOR(GRN)                  
  48. 0004.40      A                                  1 26'DYNAMIC SORT WITH EMBEDDED
  49. 0004.50      A                                      DSPATR(HI)                  
  50. 0004.60      A                                  1 70DATE                        
  51. 0004.70      A                                      EDTCDE(Y)                  
  52. 0004.80      A                                  2 70TIME                        
  53. 0004.90      A          R FKEY1                                                
  54. 0005.00      A*%%TS  SD  20041121  102735  CHINAUNIX   REL-V5R1M0  5722-WDS     
  55. 0005.10      A                                 23  2'F3=EXIT'                  
  56. 0005.20      A                                      COLOR(BLU)                  
  57. 0005.30      A                                 23 12'F4=PROMPT'                 
  58. 0005.40      A                                      COLOR(BLU)                  
  59. 0005.50      A                                 23 24'F12=CANCEL'               
  60. 0005.60      A                                      COLOR(BLU)                  
  61. 0005.70      A          R WINDOW1                                               
  62. 0005.80      A*%%TS  SD  20041121  103159  CHINAUNIX   REL-V5R1M0  5722-WDS     
  63. 0005.90      A                                      WINDOW(*DFT 11 25)         
  64. 0006.00      A                                      RMVWDW                     
  65. 0006.10      A            TAB1           1A  B  3  2                           
  66. 0006.20      A                                  3  5'LAST NAME'                 
  67. 0006.30      A            TAB2           1A  B  4  2                           
  68. 0006.40      A                                  4  5'FIRST NAME'               
  69. 0006.50      A            TAB3           1A  B  5  2                           
  70. 0006.60      A                                  5  5'MIDDLE INITIAL'            
  71. 0006.70      A            TAB4           1A  B  6  2                           
  72. 0006.80      A                                  6  5'NICK NAME'                 
  73. 0006.90      A                                 10  1'F3=EXIT'                  
  74. 0007.00      A                                      COLOR(BLU)                  
  75. 0007.10      A                                 10 11'F12=CANCEL'               
  76. 0007.20      A                                      COLOR(BLU)                  
  77. 0007.30      A                                  1  3'SELECT A SORT FIELD'      
  78.         ****************** End of data ****************************************
  79.                                                                                 
  80.                                                                                 
  81.                                                                                 
  82.                                                                                 
  83.                                                                                 
  84.                                                                                 
  85. F3=Exit   F5=Refresh   F9=Retrieve   F10=Cursor   F11=Toggle   F12=Cancel      
  86. F16=Repeat find        F24=More keys                                          
  87.                                                                                 
复制代码



这个DDS文件是一个显示文件,它由四个记录格式(record format)组成。
1. SFL1
2. SF1CTL
3. FKEY1
4. WINDOW1
这里的SFL1、SF1CTL控制了subfile的信息,subfile中常用的关键字有:
SFL,SFLCTL,SFLDSPCTL,SFLDSP,SFLSIZ,SFPAG,SFLEND,OVERLAY。
下面结合这个例子介绍它的含义。

1.SFL

SFL用于标示subfile的记录格式。
例如:这个记录格式中有四个字段,这四个字段分别是要显示的内容。它定义了在画面中的显示位置,
以及从哪个表中取出这些字段。
例如:
0006.00 A DBLNAM R O 5 2REFFLD(DBLNAM SQLSFLPF)
DBLNAM是表SQLSFLPF中的一个字段,它的现实位置为(5,2)

2.SFLCTL

它是一个记录级的关键字,它规定了记录格式是subfile的控制记录格式:
例如:
0011.00 A R SF1CTL SFLCTL(SFL1)
SFLCTL必须在SFL后出现。
SFL定义subfile中的记录格式,而SFLCTL定义如何显示、清除、删除和初始化subfile。
程序向SFL发送输出操作来建立subfile。程序也向SFLCTL发送输出操作,为各个subfile键字设置可选指示器,
来显示、清除、删除及初始化subfile。

3.SFLDSPCTL

它是一个记录级的关键字,用在SFL中,当程序向SFCTL发送输出操作时,OS/400程序显示SFLCTL中的字段。
如果此键字不使用可选指示器,在每次对子文件控制 记录格式所作的输出操作都要显示子文件控制记录。
为了控制哪些字段可以被显示或何时被显示,SFLDSPCTL通常和指示器一同使用。
例如:
0015.00 A N31 SFLDSPCTL

4.SFLDSP

它是一个记录级的关键字,它控制什么时候从subfile中取出一屏记录来进行显示,通常用指示器来控制何时进行显示。
例如:
0014.00 A N32 SFLDSP
注意:SFLDSPCTL和SFLDSP通常一起使用.

5.SFLSIZ

规定subfile中所准许的最大记录数,最大值为9999。
例如:
0012.00 A SFLSIZ(0050)

6.SFLPAG

规定每页上可以显示多少条记录。
例如
0012.00 A SFLPAG(0017)

7.SFLEND

它是记录层键字,用在SFLCTL中,允许在subfile翻卷条所在显示的右下方显示加号(+)或
标记(More…或Bottom)加号(+)或标记More…表示工作站用户可以通过按PageUp键来去掉标记,显示更多的记录。
例如:
0017.00 A 90 SFLEND(*MORE)

8.OVERLAY

规定在输入显示文件之前,不用将整个屏幕都删除。


执行结果如下:


  1.                           DYNAMIC SORT WITH EMBEDDED SQL
  2. PGM:SQLSFLSRTR                                                       4-07-21
  3. DSP:SQLSFLSRTR                                                       14:54:24

  4. LAST NAME          FIRST NAME          MI                 NICK NAME
  5. 100                     100                      1                   100
  6. 101                     101                      1                   101
  7. 102                     102                      1                   102
  8. 103                     103                      1                   103
  9. 104                     104                      1                   104
  10. 105                     105                      1                   105
  11. 106                     106                      1                   106
  12. 107                     107                      1                   107
  13. 108                     108                      1                   108
  14. 109                     109                      1                   109
  15. 201                     201                      1                   201
  16. 202                     202                      1                   202
  17. 203                     203                      1                   203
  18. 204                     204                      1                   204
  19. 205                     205                      1                   205
  20. 206                     206                      1                   206
  21. 207                     207                      1                   207
  22.                                                                                        More...
  23. F3=EXIT      F4=PROMPT      F12=CANCEL
复制代码

论坛徽章:
0
2 [报告]
发表于 2004-10-30 09:50 |只看该作者

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示.

看看,没准能常用.

论坛徽章:
0
3 [报告]
发表于 2004-10-30 20:50 |只看该作者

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示.

RPG程序呢?

论坛徽章:
0
4 [报告]
发表于 2004-10-30 21:34 |只看该作者

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示.

代码乱了。

论坛徽章:
0
5 [报告]
发表于 2004-10-31 17:01 |只看该作者

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示.

只有DSPF???

论坛徽章:
0
6 [报告]
发表于 2004-11-01 09:41 |只看该作者

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示.

是呀!这个老师给学生们的例题怎么还少东西呀!

怎么也要将整个例题都写清楚才行呀!而且DSPF代码是个经过编辑后的东西,看上去好难看呀!

楼主介绍的是DSPF最最常用的几个关键字,还有别的吗?多多提供一些有特色的,比如:如何实现在5250里拖动一个window?!如何制作一个类似MS Windows菜单的显示文件?!

论坛徽章:
0
7 [报告]
发表于 2004-11-01 12:54 |只看该作者

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示.

原帖由 "winner_530" 发表:
是呀!这个老师给学生们的例题怎么还少东西呀!

怎么也要将整个例题都写清楚才行呀!而且DSPF代码是个经过编辑后的东西,看上去好难看呀!

楼主介绍的是DSPF最最常用的几个关键字,还有别的吗?多多提供一些有..........

    

论坛徽章:
0
8 [报告]
发表于 2004-11-01 13:23 |只看该作者

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示.

顶一下。
yangliang 该用户已被删除
9 [报告]
发表于 2004-11-01 16:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2004-11-02 11:12 |只看该作者

〖RPG IV练习篇〗使用RPG中的Subfile实现纪录的滚动显示.

顶一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP