免费注册 查看新帖 |

Chinaunix

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

DSPF定位记录 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-28 08:25 |只看该作者 |倒序浏览
设在屏幕文件里设定一个搜索项搜索记录,如何设置使被搜索的记录做为当前屏的第一条记录显示?用过的大牛们指点下,谢谢!

论坛徽章:
0
2 [报告]
发表于 2012-08-28 11:25 |只看该作者
你的意思是不是一个画面本来显示N条记录,然后在某个位置输入搜索条件后,执行,只显示满足搜索条件的记录?
如果是这样,可以参考以下方法(我用的RPG3的语法,要用RPG4自己转一下应该可以的吧)
1,在F表中定义SUBFILE的记录号(RRN)
FFilenameIPEAF........L..I........Device+......KExit++Entry+A...
FDSPF      CF  E                     WORKSTN                       
F                                                   RRN    KSFILE SFL
2,做一个循环,搜索结果实际上是重新写SFL
   假设每次输入条件  执行后 运行@WRT 的subroutine,大体逻辑:
*******@WRT :  write sfl subroutine*************
        @WRT  BEGSR
                    Z-ADD      *ZERO       RRN                         //初始化记录号
                    . . .
         1           DO          N                                              //每页显示N条记录
         KEY      READE     FILE                                 90      //读满足条件的记录
      *IN90  IFEQ        '0'
                     . . .
                     . . .
                     WRITE     SFL
                     ADD         1            RRN                             //写完一条记录后,记录号+1
                     ENDIF
                     ENDDO
                    , , ,
                    ENDSR
                  
**The end**

论坛徽章:
0
3 [报告]
发表于 2012-08-28 11:50 |只看该作者
谢谢楼上,楼上的意思是搜索到记录后先清屏,然后只将满足条件的记录显示吧,
我的意思是:假设有多页记录,将满足条件的记录做为当前显示页的首条记录,别的记录不删除

论坛徽章:
0
4 [报告]
发表于 2012-08-28 15:03 |只看该作者
回复 3# 燕麦玉米粥


    这样的话,SUBFILE也是要重新WRITE的,程序逻辑应该也不难,楼主自己试一下喽 (也可以用一个临时的PF存放数据便于定位)

   如果你设想的是: 排序号的n条记录依次显示,搜索后满足条件的记录直接滚到第一条,而不用重写subfile,那我只能说这个想法是错误的

   PS:个人观点,欢迎高手指正

论坛徽章:
0
5 [报告]
发表于 2012-08-28 16:13 |只看该作者
回复 4# RAIITSMXH

如果记录很多,搜索一条记录都要重写一次,会不会太浪费了?


   

论坛徽章:
0
6 [报告]
发表于 2012-08-28 20:00 |只看该作者
本帖最后由 xjromance 于 2012-08-28 20:04 编辑

SFLRCDNBR(*TOP)有一个选项好像是就可以。

论坛徽章:
0
7 [报告]
发表于 2012-08-28 20:03 |只看该作者
SFLRCDNBR(CORSOR)是将光标定位到被搜索记录处,而不是做为当前页的第一条显示

论坛徽章:
0
8 [报告]
发表于 2012-08-28 20:05 |只看该作者
SFLRCDNBR(*TOP)

论坛徽章:
0
9 [报告]
发表于 2012-08-28 21:59 |只看该作者
请楼上大牛详说下SFLRCDNBR(*TOP)的用法,我只知道在SFLC里定义D @@SFPG   4  0 H   SFLRCDNBR(CURSOR)

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
10 [报告]
发表于 2012-08-28 23:49 |只看该作者
不清掉之前的屏,怎么写你要的第一呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP