免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: magic_007
打印 上一主题 下一主题

谁有好点的subfile教程 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-08-02 08:49 |只看该作者

谁有好点的subfile教程

TT

论坛徽章:
0
12 [报告]
发表于 2005-08-02 08:50 |只看该作者

谁有好点的subfile教程

原帖由 "mamei" 发表:
我有个比较好的样板,是我自己写的,看起来很清楚的,适合初学者学习!!!

可惜在这里贴,会乱的!!!

大家想个办法!!



来人啊,拉出去tjjtds

论坛徽章:
0
13 [报告]
发表于 2005-08-02 13:19 |只看该作者

谁有好点的subfile教程

楼上的:TJJTDS是乜意思???

论坛徽章:
0
14 [报告]
发表于 2005-08-02 21:43 |只看该作者

谁有好点的subfile教程

1:最简单的SUBFILE的应用。
2:带窗口的SUBFILE的应用。
3:指定光标位置显示相应的SUBFILE的应用。
4:3种翻页方式显示多画面的SUBFILE的应用。
我这边有样本代码,附每条语句的详细解释和相应的RPG代码相结合。
就是不给,TJJTDS也不给~~~~

论坛徽章:
0
15 [报告]
发表于 2005-08-02 21:46 |只看该作者

谁有好点的subfile教程


  1. *************** Beginning of data *************************************
  2.      A                                                 DSPSIZ(24 80 *DS3)         
  3.      A          R HEAD                                                
  4.      A                                           2   1DATE                       
  5.      A                                                  EDTCDE(Y)                  
  6.      A                                           2 69TIME                       
  7.      A                                           2 34'显示文件记录'           
  8.      A*****************************************************************
  9.      A          R SUBF                             SFL                        
  10.      A             FLD001         5A  O  9 16
  11.      A             FLD002       20A  O  9 28                     
  12.      A*****************************************************************
  13.      A          R SUBFC                           SFLCTL(SUBF)               
  14.      A                                                  SFLSIZ(9999)               
  15.      A                                                  SFLPAG(0010)               
  16.      A  30                                            SFLDSP                     
  17.      A  31                                            SFLDSPCTL                  
  18.      A  32                                            SFLCLR                     
  19.      A  33                                            SFLEND(*MORE)              
  20.      A                                                  OVERLAY                    
  21.      A                                                  CA12(12 'EXIT')            
  22.      A                                           7 15'字段1'                 
  23.      A                                                  COLOR(WHT)                 
  24.      A                                           7 27'字段2'                 
  25.      A                                                  COLOR(WHT)                 
  26.      A*****************************************************************
  27.      A          R FOOT                                                
  28.      A                                                  OVERLAY                    
  29.      A                                         24 11'F12=EXIT'                 
  30.      A                                                  COLOR(BLU)                 
  31. ****************** End of data ****************************************
复制代码

论坛徽章:
0
16 [报告]
发表于 2005-08-02 21:46 |只看该作者

谁有好点的subfile教程

【注】
(1) 第一个画面HEAD注解:
(a) 第一行表明显示尺寸,一般就这么写;
(b) 第二行的R表示接下来是一个记录,记录名是HEAD,有点象PF的定义,不过在DSPF里的记录代表
  一个画面;
(c) 第三行的DATE是系统关键字,表示日期,该句意思是在第2行第1列显示系统日期;
(d) 第四行的EDTCDE表示编辑字,EDTCDE(Y)表示系统日期按照“MM/DD/YY”格式显示;
(e) 第五行的TIME是系统关键字,表示时间,该句意思是在第2行第69列显示系统时间;
(f) 第六行意思是在第2行第34列显示字符窜"显示文件记录"。

(2) 第二个画面SUBF注解:
(a) 第一行的R和上面一样,也代表这是一个画面,名字是SUBF;
  后面的SFL是系统关键字,表示该画面是SUBFILE;
(b) 第二行表示在画面第9行第16列显示长度为5的字段FLD001,5是长度,A表示该字段是字符型,
  O表示该字段只用于输出;
(c) 第三行与上一行类似。

(3) 第三个画面SUBFC注解:
(a) 第一行的R和上面一样,也代表这是一个画面,名字是SUBFC,
  SFLCTL是系统关键字,SFLCTL(SUBF)表示该记录是用来对画面SUBF显示的控制,
  一般定义了SUBFILE之后,都要定义这个记录的;
(b) 第二行的SFLSIZ用来说明SUBF的记录数,这里我把它定义为最大9999;
(c) 第三行的SFLPAG用来说明每页显示的记录条数,这里我把定义为10笔;
(d) 第四、五、六行的SFLDSP是用来显示记录的,SFLDSPCTL用来控制显示的,
  SFLCLR用来清除显示的记录的,一般都需要给他们加上指示器,这里分别是30、31、32;
(e) 第七行的SFLEND用来声明每页下方的提示,这里用*MORE来表示,如果还有下一页的话,下方
  就显示”More……“,否则,就显示”Bottom“,这里也用个指示器33;
(f) 第八行的OVERLAY表示显示该记录之前不要清除上一屏,即保留;
(g) 第九行的CA12表示在这个画面里我可以用键盘按键F12,对应的指示器是12,
  这里你可以根据自己需要使用别的按键,例如CA03;
(h) 第十一行的COLOR是系统关键字,用来给上面显示的字符窜设置显示颜色,
  这里用BLU,表示字符窜”字段1“显示为蓝色;

(4) 第四个画面FOOT注解参考上面三点即可,在此不在累赘。

论坛徽章:
0
17 [报告]
发表于 2005-08-02 21:47 |只看该作者

谁有好点的subfile教程


  1. *************** Beginning of data *************************************
  2.      FMYPF       IF  E           K        DISK                           
  3.      FMYDSPF  CF  E                    WORKSTN                        
  4.      F                                                                                   RRN   KSFILE SUBF        
  5.      C           *IN12      DOWEQ'0'                                    
  6.      C                          WRITEHEAD                                   
  7.      C                          WRITEFOOT                                   
  8.      C                          EXSR CLRSFL                                 
  9.      C                          EXSR REDRCD                                 
  10.      C                          ENDDO                                       
  11.      C*                                                               
  12.      C                          SETON                               LR               
  13.      C*****************************************************************
  14.      C           CLRSFL    BEGSR                                       
  15.      C*                                                               
  16.      C                          Z-ADD0              RRN     40                  
  17.      C                          MOVEA'0011'    *IN,30                       
  18.      C                          WRITESUBFC                                 
  19.      C*                                                               
  20.      C                          ENDSR                                       
  21.      C*****************************************************************
  22.      C           REDRCD    BEGSR                                       
  23.      C*                                                               
  24.      C           *LOVAL    SETLLFMYPF                                 
  25.      C                           READ FMYPF                    90            
  26.      C           *IN90      DOWEQ'0'                                    
  27.      C                          ADD  1         RRN                          
  28.      C                          WRITESUBF                                   
  29.      C                          READ FMYPF                    90            
  30.      C                          ENDDO                                       
  31.      C*                                                               
  32.      C                          SETON                     30               
  33.      C           RRN         IFEQ 0                                      
  34.      C                          SETOF                     30               
  35.      C                          ENDIF                                       
  36.      C                          MOVEA'10'      *IN,31                       
  37.      C                          EXFMTSUBFC                                 
  38.      C*                                                               
  39.      C                          ENDSR                                       
  40. ****************** End of data ****************************************
复制代码

论坛徽章:
0
18 [报告]
发表于 2005-08-02 21:52 |只看该作者

谁有好点的subfile教程

只说一下,里面的 MOVEA'0011'    *IN,30,这是数组附值,表示把’0011‘其中的’0‘给*IN30,’0‘给*IN31,’1‘给*IN32,’1‘给*IN33。
还有为什么ADD 1  RRN,再WRITE,因为RRN这里面表示记录号,如果没有加1,就会重复使用,系统会报错。

以上是1:简单的SUBFILE的应用部分。

下面是第2种,带窗口的SUBFILE的应用。

论坛徽章:
0
19 [报告]
发表于 2005-08-02 21:58 |只看该作者

谁有好点的subfile教程

A                                      DSPSIZ(24 80 *DS3)
     A                                      REF(*LIBL/ALGSYS)
     A                                      CHGINPDFT(CS)
     A                                      MSGLOC(24)
     A                                      PRINT
     A          R SCRN0
     A                                      WINDOW(10 40 12 34)
     A                                      WDWBORDER((*COLOR WHT) (*DSPATR RI)-
     A                                       (*CHAR '        '))
     A          R SCRN2                     SFL
     A                                      KEEP
     A            SVSEL          1A  H
     A            S2SEL          1A  B  3  2COLOR(TRQ)
     A            S2DTA          1   B  3  5
     A            S2PRC          1   B  3  9
     A            DISYS     R        O  3 12COLOR(WHT)
     A            DISYSN    R        O  3 23REFFLD(RALGSYS/DISYSN *LIBL/ALGSYS)
     A                                      COLOR(PNK)
     A          R SCRN1                     SFLCTL(SCRN2)
     A                                      SFLSIZ(0007)
     A                                      SFLPAG(0006)
     A                                      WINDOW(SCRN0)
     A                                      CF01
     A                                      CF07
     A                                      KEEP
     A                                      BLINK
     A                                      OVERLAY
     A N50 51                               SFLDSP
     A N50                                  SFLDSPCTL
     A  50                                  SFLCLR
     A            SFSTRT         4S 0H      SFLRCDNBR
     A                                  1  4'Dta'
     A                                      COLOR(WHT)
     A                                  1  8'Prc'
     A                                      COLOR(WHT)
     A                                  2  2'X Y/N Y/N System     Name      '
     A                                      COLOR(WHT)
     A                                      DSPATR(UL)
     A          R SCRN3
     A*%%TS  SD  19950824  095816  KLUCK       REL-V3R1M0  5763-PW1
     A                                      WINDOW(SCRN0)
     A                                 10  2'F1=Return'
     A                                      COLOR(WHT)
     A                                 10 13'''X''=Select'
     A                                      COLOR(WHT)
     A                                 10 25'F7=Accept'
     A                                      COLOR(WHT)
     A                                 11 23'Roll Active'
     A                                      COLOR(WHT)
     A* ------------------------------------------------------------------------
     A* These records are required for seamless Window activation.
     A* No Program I/O shound ever be done to these records.
     A* ------------------------------------------------------------------------
     A          R SCRN4                     CLRL(*NO)
     A                                      OVERLAY
     A                                      FRCDTA
     A          R SCRN5                     ASSUME
     A                                      OVERLAY
     A                                      PUTOVR
     A                                  1  3' '

论坛徽章:
0
20 [报告]
发表于 2005-08-02 22:18 |只看该作者

谁有好点的subfile教程

再补充说一句,MOVEA*ALL’0‘ *IN,30可以吧30以后的指示器,一次全部置*OFF。

睡了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP