免费注册 查看新帖 |

Chinaunix

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

关于subfile,请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-29 11:31 |只看该作者 |倒序浏览
一直不太清楚subfile是怎么一回事,各位若有知道的还望指点一二,最好能举例说明一下,谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-08-29 11:43 |只看该作者
SUBFILE就是一種一次可以顯示多條記錄的模式。

论坛徽章:
0
3 [报告]
发表于 2008-08-29 11:56 |只看该作者
使用RPG中的Subfile实现纪录的滚动显示

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

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

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

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


CODE:[Copy to clipboard]Columns . . . :    1  71           Browse                    CHINAUNIX/QDDSSRC
SEU==>;                                                              SQLSFLSRTD
FMT A* .....A*. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7  
        *************** Beginning of data *************************************
0000.10      A*%%TS  SD  20041121  114503  CHINAUNIX   REL-V5R1M0  5722-WDS     
0000.20      A*%%EC                                                            
0000.30      A                                      DSPSIZ(24 80 *DS3)         
0000.40      A                                      PRINT                       
0000.50      A                                      ERRSFL                     
0000.60      A                                      CA03                        
0000.70      A                                      CA12                        
0000.80      A                                      CF04                        
0000.90      A*                                                                 
0001.00      A          R SFL1                                                  
0001.10      A*%%TS  SD  20041121  114503  CHINAUNIX   REL-V5R1M0  5722-WDS     
0001.20      A                                  1  3'PGM:SQLSFLSRTR'            
0001.30      A                                  1 27'DYNAMIC'                  
0001.40      A                                  1 35'SORT'                     
0001.50      A                                  1 40'WITH'                     
0001.60      A                                  1 45'EMBEDDED'                  
0001.70      A                                  1 54'SQL'                       
0001.80      A                                  1 71'DD/DD/DD'                  
0001.90      A                                  2  3'DSPF:SQLSFLSRTD'           
0002.00      A                                  2 71'TT:TT:TT'                  
0002.10      A                                  4  3'LAST'                     
0002.20      A                                  4  8'NAME'                     
0002.30      A                                  4 28'FIRST'                     
0002.40      A                                  4 34'NAME'                     
0002.50      A                                  4 52'MI'                        
0002.60      A                                  4 61'NICK'                     
0002.70      A                                  4 66'NAME'                     
0002.80      A*                                                                 
0002.90      A          R SF1CTL                                                
0003.00      A*%%TS  SD  20041121  114105  CHINAUNIX   REL-V5R1M0  5722-WDS     
0003.10      A                                      OVERLAY                     
0003.20      A                                  4  2'LAST NAME'                 
0003.30      A                                      DSPATR(HI)                  
0003.40      A                                  4 27'FIRST NAME'               
0003.50      A                                      DSPATR(HI)                  
0003.60      A                                  4 51'MI'                        
0003.70      A                                      DSPATR(HI)                  
0003.80      A                                  4 60'NICK NAME'                 
0003.90      A                                      DSPATR(HI)                  
0004.00      A                                  1  2'PGM:SQLSFLSRTR'            
0004.10      A                                      COLOR(GRN)                  
0004.20      A                                  2  2'DSPF:SQLSFLSRTD'           
0004.30      A                                      COLOR(GRN)                  
0004.40      A                                  1 26'DYNAMIC SORT WITH EMBEDDED
0004.50      A                                      DSPATR(HI)                  
0004.60      A                                  1 70DATE                        
0004.70      A                                      EDTCDE(Y)                  
0004.80      A                                  2 70TIME                        
0004.90      A          R FKEY1                                                
0005.00      A*%%TS  SD  20041121  102735  CHINAUNIX   REL-V5R1M0  5722-WDS     
0005.10      A                                 23  2'F3=EXIT'                  
0005.20      A                                      COLOR(BLU)                  
0005.30      A                                 23 12'F4=PROMPT'                 
0005.40      A                                      COLOR(BLU)                  
0005.50      A                                 23 24'F12=CANCEL'               
0005.60      A                                      COLOR(BLU)                  
0005.70      A          R WINDOW1                                               
0005.80      A*%%TS  SD  20041121  103159  CHINAUNIX   REL-V5R1M0  5722-WDS     
0005.90      A                                      WINDOW(*DFT 11 25)         
0006.00      A                                      RMVWDW                     
0006.10      A            TAB1           1A  B  3  2                           
0006.20      A                                  3  5'LAST NAME'                 
0006.30      A            TAB2           1A  B  4  2                           
0006.40      A                                  4  5'FIRST NAME'               
0006.50      A            TAB3           1A  B  5  2                           
0006.60      A                                  5  5'MIDDLE INITIAL'            
0006.70      A            TAB4           1A  B  6  2                           
0006.80      A                                  6  5'NICK NAME'                 
0006.90      A                                 10  1'F3=EXIT'                  
0007.00      A                                      COLOR(BLU)                  
0007.10      A                                 10 11'F12=CANCEL'               
0007.20      A                                      COLOR(BLU)                  
0007.30      A                                  1  3'SELECT A SORT FIELD'      
        ****************** End of data ****************************************
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
F3=Exit   F5=Refresh   F9=Retrieve   F10=Cursor   F11=Toggle   F12=Cancel      
F16=Repeat find        F24=More keys                                          
                                                                                
这个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

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


执行结果如下:


CODE:[Copy to clipboard]                          DYNAMIC SORT WITH EMBEDDED SQL
PGM:SQLSFLSRTR                                                       4-07-21
DSP:SQLSFLSRTR                                                       14:54:24

LAST NAME          FIRST NAME          MI                 NICK NAME
100                     100                      1                   100
101                     101                      1                   101
102                     102                      1                   102
103                     103                      1                   103
104                     104                      1                   104
105                     105                      1                   105
106                     106                      1                   106
107                     107                      1                   107
108                     108                      1                   108
109                     109                      1                   109
201                     201                      1                   201
202                     202                      1                   202
203                     203                      1                   203
204                     204                      1                   204
205                     205                      1                   205
206                     206                      1                   206
207                     207                      1                   207
                                                                                       More...
F3=EXIT      F4=PROMPT      F12=CANCEL
1)SDA编辑画面:


CODE:[Copy to clipboard]                      Work with Display Records                                 
                                                                                
File  . . . . . . :   QDDSSRC                Member . . . . . . :   SQLSFLSRTD
   Library . . . . :     CHINAUNIX            Source type  . . . :   DSPF      
                                                                                
Type options, press Enter.                                                     
   1=Add             2=Edit comments          3=Copy          4=Delete         
   7=Rename          8=Select keywords       12=Design image                    
                                                                                
Opt  Order    Record        Type      Related Subfile   Date        DDS Error  
                                                                                
         10    SFL1            RECORD                      11/21/04               
         20    SF1CTL        RECORD                      11/21/04               
         30    FKEY1          RECORD                      11/21/04               
         40    WINDOW1   WINDOW                    11/21/04               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                         Bottom
F3=Exit                     F12=Cancel      F14=File-level keywords            
F15=File-level comments     F17=Subset      F24=More keys                     
                                          (C) COPYRIGHT IBM CORP. 1981, 2000.   
2)通过F4键所调出的选择画面:


CODE:[Copy to clipboard]                                                                                
............................................                                                  
:   SELECT A SORT FIELD     :                                                  
:                                          :                                                  
:  B  LAST NAME                   :                                                  
:  B  FIRST NAME                 :                                                  
:  B  MIDDLE INITIAL           :                                                  
:  B  NICK NAME                  :                                                  
:                                          :                                                  
:                                          :                                                  
:                                          :                                                  
: F3=EXIT   F12=CANCEL    :                                                  
:                                          :                                                  
:..........................................:                                                  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
3)主菜单界面:


CODE:[Copy to clipboard]PGM:SQLSFLSRTR  DYNAMIC SORT WITH EMBEDDED SQL     DD/DD/DD   
DSPF:SQLSFLSRTD                                                                   TT:TT:TT   
                                                                                
LAST NAME                FIRST NAME              MI       NICK NAME            
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                 
                                 
F3=EXIT   F4=PROMPT   F12=CANCEL         
            

【声明】这个代码不是AS06、AS07教材中的代码,所以我也没办法提供PF、RPG IV程序代码,不过我们可以作为练习自己写,以实现输入、更新、查询功能,这样印象就会更深,同时写出来的人可以把代码贴出来互相比较差异。





原文地址 http://bbs.chinaunix.net/viewthr ... p;extra=&page=1
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP