免费注册 查看新帖 |

ChinaUnix.net

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

DSPF定位记录 [复制链接]

论坛徽章:
0
发表于 2012-08-28 08:25 |显示全部楼层
设在屏幕文件里设定一个搜索项搜索记录,如何设置使被搜索的记录做为当前屏的第一条记录显示?用过的大牛们指点下,谢谢!

论坛徽章:
0
发表于 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
发表于 2012-08-28 11:50 |显示全部楼层
谢谢楼上,楼上的意思是搜索到记录后先清屏,然后只将满足条件的记录显示吧,
我的意思是:假设有多页记录,将满足条件的记录做为当前显示页的首条记录,别的记录不删除

论坛徽章:
0
发表于 2012-08-28 15:03 |显示全部楼层
回复 3# 燕麦玉米粥


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

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

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

论坛徽章:
0
发表于 2012-08-28 16:13 |显示全部楼层
回复 4# RAIITSMXH

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


   

论坛徽章:
0
发表于 2012-08-28 20:00 |显示全部楼层
本帖最后由 xjromance 于 2012-08-28 20:04 编辑

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

论坛徽章:
0
发表于 2012-08-28 20:03 |显示全部楼层
SFLRCDNBR(CORSOR)是将光标定位到被搜索记录处,而不是做为当前页的第一条显示

论坛徽章:
0
发表于 2012-08-28 20:05 |显示全部楼层
SFLRCDNBR(*TOP)

论坛徽章:
0
发表于 2012-08-28 21:59 |显示全部楼层
请楼上大牛详说下SFLRCDNBR(*TOP)的用法,我只知道在SFLC里定义D @@SFPG   4  0 H   SFLRCDNBR(CURSOR)

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

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP