免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
11 [报告]
发表于 2004-11-19 14:22 |只看该作者

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

只有DSPF阿,晕

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

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

我今天趁周末有时间,借助居士所提供的远程服务器通过SDA对此DSPF代码进行修正了一遍,界面如下:
1)SDA编辑画面:
  1.                       Work with Display Records                                 
  2.                                                                                 
  3. File  . . . . . . :   QDDSSRC                Member . . . . . . :   SQLSFLSRTD
  4.    Library . . . . :     CHINAUNIX            Source type  . . . :   DSPF      
  5.                                                                                 
  6. Type options, press Enter.                                                     
  7.    1=Add             2=Edit comments          3=Copy          4=Delete         
  8.    7=Rename          8=Select keywords       12=Design image                    
  9.                                                                                 
  10. Opt  Order    Record        Type      Related Subfile   Date        DDS Error  
  11.                                                                                 
  12.          10    SFL1            RECORD                      11/21/04               
  13.          20    SF1CTL        RECORD                      11/21/04               
  14.          30    FKEY1          RECORD                      11/21/04               
  15.          40    WINDOW1   WINDOW                    11/21/04               
  16.                                                                                 
  17.                                                                                 
  18.                                                                                 
  19.                                                                                 
  20.                                                                                 
  21.                                                                          Bottom
  22. F3=Exit                     F12=Cancel      F14=File-level keywords            
  23. F15=File-level comments     F17=Subset      F24=More keys                     
  24.                                           (C) COPYRIGHT IBM CORP. 1981, 2000.   
复制代码

2)通过F4键所调出的选择画面:
  1.                                                                                 
  2. ............................................                                                  
  3. :   SELECT A SORT FIELD     :                                                  
  4. :                                          :                                                  
  5. :  B  LAST NAME                   :                                                  
  6. :  B  FIRST NAME                 :                                                  
  7. :  B  MIDDLE INITIAL           :                                                  
  8. :  B  NICK NAME                  :                                                  
  9. :                                          :                                                  
  10. :                                          :                                                  
  11. :                                          :                                                  
  12. : F3=EXIT   F12=CANCEL    :                                                  
  13. :                                          :                                                  
  14. :..........................................:                                                  
  15.                                                                                 
  16.                                                                                 
  17.                                                                                 
  18.                                                                                 
  19.                                                                                 
  20.                                                                                 
  21.                                                                                 
  22.                                                                                 
  23.                                                                                 
  24.                                                                                 
复制代码

3)主菜单界面:

  1. PGM:SQLSFLSRTR  DYNAMIC SORT WITH EMBEDDED SQL     DD/DD/DD   
  2. DSPF:SQLSFLSRTD                                                                   TT:TT:TT   
  3.                                                                                 
  4. LAST NAME                FIRST NAME              MI       NICK NAME            
  5.                                                                                 
  6.                                                                                 
  7.                                                                                 
  8.                                                                                 
  9.                                                                                 
  10.                                                                                 
  11.                                                                                 
  12.                                                                                 
  13.                                                                                 
  14.                                                                                 
  15.                                                                                 
  16.                                                                                 
  17.                                                                                 
  18.                                                                                 
  19.                                                                                 
  20.                                  
  21.                                  
  22. F3=EXIT   F4=PROMPT   F12=CANCEL         
  23.             
复制代码


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

大家不要这么懒,自己动手、丰衣足食。。。

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

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

支持。。。

辛苦了。

论坛徽章:
0
14 [报告]
发表于 2004-11-21 23:27 |只看该作者

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

好的,这几天如果没有什么事的话,我把代码写出来与大家分享一下!这个东西我经常在做的!呵呵.......

论坛徽章:
0
15 [报告]
发表于 2004-11-22 08:21 |只看该作者

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

期待中。。。

论坛徽章:
0
16 [报告]
发表于 2008-07-23 16:49 |只看该作者
UP

UP

UP

论坛徽章:
0
17 [报告]
发表于 2008-07-23 16:56 |只看该作者
贴点代码:
dspf(SLF001DF):
   A                                   DSPSIZ(24 80 *DS3)
     A                                   CA03(03)
     A       R SFL001S1                  SFL
     A         NUMBER        9  00  5  10
     A         NAME         20   0  5  27
     A       R SFL001C1                  SFLCTL(SFL001S1)
     A                                   OVERLAY
     A   20                              SFLDSP
     A                                   SFLDSPCTL
     A   20                              SFLEND (*MORE)
     A                                   SFLSIZ (0016)
     A                                   SFLPAG (0015)
     A                              1 26' Simple Load All Subfile '
     A                                   DSPATR (HI)
     A   20                         3  7 'Customer Number'
     A   20                         3 27 'Customer Name'
     A   20                         4  7 '==============='
     A   20                         4 27 '===================='
     A  N20                         4 24' - No Customer Record Found -'
     A       R CMDKEY
     A                             23  3 'F3-Exit'
     A                                   DSPATR(HI)

论坛徽章:
0
18 [报告]
发表于 2008-07-23 16:57 |只看该作者
rpg(SFL001R):
   FCustfile  IF  E       K  Disk
     FSFL001DF  CF  E          Workstn
     F                                  SFile(Sfl001s1Rec#)
           *
     D@Rec#           S          4  0
     C                  Exsr   LOADSF
     C*
     C                  DOU    *In03 = *On
     C*
     C                  Write  CMDKEY
     C                  EXfmt  SFL001C1
     C*
     C                  Enddo
     C*
     C                  Eval   *InLR = *On
     C                  Return
     C*
      *-------------------------------------------------------*
      *   Subroutine LOADSF                                   *
      *   Process Customer file and load records into sufile. *
      *-------------------------------------------------------*
     CSR    LOADSF      Begsr
     C                  Clear                      @Rec#
      *
     C                  Dou    *In90 = *ON
     C                  Read   CUSTR                                90
      *
     C                  If     *In90 = *Off
     C                  Eval   @Rec# = @Rec# + 1
     C                  Eval   Number = Custno
     C                  Eval   Name = Custnm
     C                  Write  SFL001S1
     C                  Endif
      *
     C                  Enddo
     C*
     C                  If     @Rec# > 0
     C                  Eval   *In20 = *On
     C                  Endif
     CSR                Endsr

论坛徽章:
0
19 [报告]
发表于 2008-07-23 16:58 |只看该作者
上面是全制动的。
下面是半制动的。
dspf(SFL002DF):
   A                                      DSPSIZ (24 80 *DS3)
     A                                      CA03 (03)
     A          R SFL002S1                  SFL
     A            NUMBER          9S 00 5 10
     A            NAME           20A  0 5 27
     A          R SFL002C1                  SFLCTL(SFL002S1)
     A                                      OVERLAY
     A  N90                                 ROLLUP (50)
     A   90                                 SFLEND (*MORE)
     A   20                                 SFLDSP
     A                                      SFLDSPCTL
     A                                      SFLSIZ(0016)
     A                                      SFLPAG (0015)
     A          DSPRECORD    4  OH          SFLRCDNBR
     A                                1 26 ' Simple Load-Forward Subfile '
     A                                      DSPATR (HI)
     A   20                           3  7'Customer Number'
     A   20                           3 27'Customer Name'
     A   20                           4  7'================'
     A   20                           4 27'===================='
     A  N20                           4 24'- No Customer Records Found -'
     A          R CMDKEY
     A                               23 3'F3-Exit'
     A                                     DSPATR(HI)

论坛徽章:
0
20 [报告]
发表于 2008-07-23 16:59 |只看该作者
rpg(SFL002R):
   FCustfile   IF   E        K Disk
     FSfl002df   CF   E          Workstn
     F                                    SFile(Sfl002s1Rec#)
      *
     D@Rec#              S          4  0
      *
      *-------------------------------------------------
      * Load Subfile
      *-------------------------------------------------
     C                     Exsr   LOADSF
      *
     C                     DOU    *In03 = *On
      *
      *-------------------------------------------------
      * Write command key, Overlay subfile with Exfmt.
      *-------------------------------------------------
     C                     Write   CMDKEY
     C                     EFMT   SFL002C1
      *
     C                     Eval    DSPRECORD = 1
      *
      *------------------------------------------------
      * Roll-up key pressed, load next page of subfile
      *------------------------------------------------
     C                     If      *In50 = *On
     C                     Exsr    LOADSF
     C                     Endif
     C                     Enddo
      *
     C                        Eval      *InLR = *On
     C                        Return
      *
      *---------------------------------------------------------*
      *    Subroutine LOADSF                                    *
      *    Process Customer file and load records into subfile. *
      *---------------------------------------------------------*
     CSR   LOADSF             Begsr
      *
      *-----------------------------------------------
      * 15 subfile records per page
      *-----------------------------------------------
     C                        Do        15
     C                        Read      CUSTR                      90
      *
     C                        If        *In90 = *On
     C                        Leave
     C                        Else
      *----------------------------------------------------
      * Increment subfile record number, load subfile fields.
      * and write record to subfile.
      *----------------------------------------------------
     C                        Eval      @Rec# = @Rec# + 1
     C                        Eval      Number = Custno
     C                        Eval      Name = Custnm
     C                        Write     SFL002S1
     C                        Endif
      *
     C                        Enddo
      *
      *----------------------------------------------------
      * Set the subfile records to be displayed equal to the
      * last record written.
      *----------------------------------------------------
     C                        Eval      DspRecord = @Rec#
      *
      *----------------------------------------------------
      * If no records found, set on indicator to display
      * message.
      *----------------------------------------------------
     C                        If        @Rec# > 0
     C                        Eval      *In20 = *On
     C                        Endif
     CSR                      Endsr
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP