免费注册 查看新帖 |

Chinaunix

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

关于SUBFILE的截断问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-30 09:10 |只看该作者 |倒序浏览
在SUBFILE设了截断的功能,每页显示7条记录,按F6一条记录就会出现两行,当我按PAGEDOWN时一页就显示14条记录了,正常的话是每页7条记录才对。
以下的RPG程序
  1.      FDSPS01  IF  E           K        DISK
  2.      FDSPC003SCF  E                    WORKSTN
  3.      F                                        #RRN  KSFILE F003S1
  4.      C*
  5.      C*======     MAIN      =======
  6.      C*
  7.      C                     EXSR @SCLR
  8.      C                     EXSR @SFILL
  9.      C           1         DOWEQ1
  10.      C           #RRN      COMP 0                    93
  11.      C                     EXFMTF003C1
  12.      C   KA                LEAVE
  13.      C*  KE                EXSR @INP
  14.      C   81                EXSR @SFILL
  15.      C   81                ITER
  16.      C                     EXSR @INP
  17.      C                     ENDDO
  18.      C                     SETON                     LR
  19.      C*
  20.      C*====== SUBFILE CLEAR =======
  21.      C*
  22.      C           @SCLR     BEGSR
  23.      C                     Z-ADD0         #RRN    40
  24.      C                     Z-ADD0         #SRRN   40
  25.      C                     SETON                     9295
  26.      C                     WRITEF003C1
  27.      C                     SETOF                     92
  28.      C                     ENDSR
  29.      C*
  30.      C*====== SUBFILE FILL ========
  31.      C*
  32.      C           @SFILL    BEGSR
  33.      C                     Z-ADD#SRRN     #RRN
  34.      C           1         DO   7
  35.      C                     READ DSPS01                   94
  36.      C   94                LEAVE
  37.      C  N94                DO
  38.      C                     MOVELDNAME     $DNAME
  39.      C                     Z-ADDDEPTNO    $DENO
  40.      C                     MOVELDEPTIN    $DEIN
  41.      C                     ADD  1         #RRN
  42.      C                     WRITEF003S1
  43.      C                     ENDDO
  44.      C                     ENDDO
  45.      C                     Z-ADD#RRN      #SRRN
  46.      C                     ENDSR
  47.      C*
  48.      C*====== INPUT VALUE  ========
  49.      C*
  50.      C           @INP      BEGSR
  51.      C                     READCF003S1                   70
  52.      C  N70      #RRN      CHAINF003S1               71
  53.      C  N70N71             DO
  54.      C           $OPT      COMP 'X'                      30
  55.      C   30      1         DOWEQ1
  56.      C   KA                LEAVE
  57.      C                     MOVEL$DNAME    $MSG
  58.      C                     EXFMTF003W1
  59.      C                     MOVEL*BLANK    $OPT
  60.      C                     ENDDO
  61.      C                     ENDDO
  62.      C                     MOVEL*BLANK    $OPT
  63.      C*
  64.      C*  UPDATF003S1 MUST BE WROTE
  65.      C*
  66.      C  N71                UPDATF003S1
  67.      C                     ENDSR
  68. 
复制代码
--------------
以下是DSPF程序
  1.      A*%%TS  SD  20110730  084643  XIN         REL-V5R4M0  5722-WDS
  2.      A*%%EC
  3.      A                                      DSPSIZ(24 80 *DS3)
  4.      A          R F003R1
  5.      A*%%TS  SD  20110727  105606  XIN         REL-V5R4M0  5722-WDS
  6.      A                                      CF05
  7.      A                                      CA01
  8.      A                                 24  4'F5=CALL WINDOW SUBFILE'
  9.      A            $MSG1          5A  O 19 15
  10.      A          R F003S1                    SFL
  11.      A*%%TS  SD  20110730  084643  XIN         REL-V5R4M0  5722-WDS
  12.      A            $DNAME         5A  O  5 11
  13.      A            $DENO          6S 0O  5 26
  14.      A            $OPT           1A  B  5  6
  15.      A            $DEIN          8   O  6 17
  16.      A          R F003C1                    SFLCTL(F003S1)
  17.      A*%%TS  SD  20110730  084403  XIN         REL-V5R4M0  5722-WDS
  18.      A                                      CA01
  19.      A                                      ROLLUP(81)
  20.      A                                      CF05
  21.      A                                      OVERLAY
  22.      A                                      SFLCSRRRN(&$CRRN)
  23.      A  93                                  SFLDSP
  24.      A  95                                  SFLDSPCTL
  25.      A  92                                  SFLCLR
  26.      A  94                                  SFLEND(*MORE)
  27.      A                                      SFLDROP(CA06)
  28.      A                                      SFLSIZ(0008)
  29.      A                                      SFLPAG(0007)
  30.      A                                  3 26'USER INFO'
  31.      A                                  4 11'USER NAME      USER CODE     DEPT -
  32.      A                                      INFO'
  33.      A                                      DSPATR(HI)
  34.      A                                      DSPATR(UL)
  35.      A                                      COLOR(BLU)
  36.      A            #RRN           4S 0H      SFLRCDNBR(CURSOR)
  37.      A            $CRRN          5S 0H
  38.      A          R F003W1
  39.      A*%%TS  SD  20110727  110116  XIN         REL-V5R4M0  5722-WDS
  40.      A                                      WINDOW(14 60 6 10 *NOMSGLIN)
  41.      A                                      CA01
  42.      A                                      OVERLAY
  43.      A                                      WDWBORDER((*COLOR PNK) (*DSPATR HI -
  44.      A                                      RI) (*CHAR '        '))
  45.      A            $MSG           5A  O  4  3
  46. 
复制代码
-----------------
先谢谢各位了

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
2 [报告]
发表于 2011-07-30 12:11 |只看该作者
什么情况?

论坛徽章:
0
3 [报告]
发表于 2011-08-01 11:01 |只看该作者
你在DSP中定义的
SFLSIZ(000/SFLPAG(0007)是定义你的SFL7条记录共14行
但开启了SFLDROP(CA06)功能后就会忽略了SFLSIZ(000/SFLPAG(0007),原本14行只能显示7条2行的记录,现能14条1行的记录。
不知道我说的对不对,这只是我对SFLDROP的理解,你可以尝试修改下看看。

论坛徽章:
0
4 [报告]
发表于 2011-08-01 11:09 |只看该作者
回复 3# jiaoyq84


    你的意思是把PAGE改成14吗?

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
5 [报告]
发表于 2011-08-01 18:10 |只看该作者
貌似和你说的那个没关系,值是说的关于SFLDROP的问题,可以试试。

论坛徽章:
0
6 [报告]
发表于 2011-08-01 20:30 |只看该作者
sfldrop前加个93

建议在CA03和CF05前也加上INDICATOR控制是否可以在不同的画面上使用

论坛徽章:
0
7 [报告]
发表于 2011-08-02 11:13 |只看该作者
回复 4# wuxing164


我是说,原来你定义的SFLPAG(0007)是一页显示7条2行共14行的记录,但是当你打开SFLDROP后就相当显示14条1行共14行的记录
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP