免费注册 查看新帖 |

Chinaunix

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

急!各位老大,帮帮我,我要去面视 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-14 17:36 |只看该作者 |倒序浏览
我已经把数据库文件全部读到显示文件子文件中,并已经显示了,
现在要求在屏幕上输入一个数据,要求只显示满足该条件的
所有数据,各位能给个思路吗?最好有关键的代码(是RPG的),
显示文件中要注意哪些方面呢?谢谢。

论坛徽章:
0
2 [报告]
发表于 2007-07-15 19:00 |只看该作者
你都可以全部显示的
那在 READ 后加个

IF 判断条件就可以

论坛徽章:
0
3 [报告]
发表于 2007-07-15 20:58 |只看该作者
就是筛选嘛,这个最好使用数据库的逻辑文件,输入的数据正好是key,否则就要从头读到尾了,加判断语句,满足条件的才write  到你的显示文件中.

论坛徽章:
0
4 [报告]
发表于 2007-07-16 17:48 |只看该作者
再急,也不要面试,急为“面视”。

做个提示解决你的问题。

把你写的程序,在子文件头加个字段AAA作为条件选择项。1)用这个条件指向数据库索引字段,如数据库用“用户名”作为索引字段。在处理子文件时,用rpg4 free 格式:

     如果有数据库操作点,就恢复到数据库操作点。
     i=0;
     setll     aaa       索引文件(BBB);
     read   bbb;
     dow  not %eof and i =20(子文件最大显示记录数);
        read bbb;
     enddo;
     保留数据库操作点;
     送子文件显示处理;
     。。。。。

以上是模糊查询。

如果是精确查询:
     。。。。
     reade aaa       索引文件(BBB);
     dow  not %eof and 索引文件bbb的索引字段 = AAA;
        reade aaa       索引文件(BBB);
     enddo;
     保留数据库操作点;
     送子文件显示处理;
     。。。。。
顺便提提,前段时间偶尔看到一个帖子,说中文模糊查询是个计算机的难题,至今都没有有效解决办法。我认为,写这个帖子的人,对AS400根本不了解。用AS400做模糊查询是AS400的一大特色,比UNIX环境下用C编程,效率不知提高多少倍!!!

[ 本帖最后由 passthru 于 2007-7-16 18:27 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-07-17 09:21 |只看该作者
对“保留数据库操作点”做补充说明:
用一组数组,比如,subfile每页最大显示记录位20条,数组就定义为dim(20),按照索引文件键值定义该数组,一维或多维。在对subfile进行读记录操作时,每读一条,就把索引键值放到对应记录数的数组中。

当用户通过显屏选择subfile的某条记录,就用这个数组的对应记录chan数据库,定位到该记录,然后再通过屏幕显示详细记录。

在subfile翻页的时候,向上翻,就用该数组的第一条记录setll,然后向前读20条记录,dim数组按递减操作进行。向下翻就用数组的最后一条记录setgt,然后向后读取20条记录,dim数据按递增操作进行。

例如,把用户名为姓“吴”的都显示出来。把dds ctl(放在sfl体前)增加一条筛选条件字段。在做subfile操作之前,先判断“筛选条件字段”是否为空。为空时,按上述subfile翻页原则处理进行。如果不为空,就用该字段的值为键值,chan到满足条件的第一条记录,然后读取索引文件的20条记录。因为索引文件自动按字段内容属性大小排序,在“筛选条件字段”输入“吴”,索引文件就把“吴”后记录自动排序,如“吴”、“吴1”、“吴2”、。。“吴n”。这样显示文件就会显示出:
   X      吴    XXXXX     XXXXXXXXXXXX    X.....
    X      吴1   XXXXX     XXXXXXXXXXXX    X.....
    X      吴2    XXXXX     XXXXXXXXXXXX    X.....
  ......

什么是模糊查询,这就是模糊查询。

论坛徽章:
0
6 [报告]
发表于 2007-07-17 10:08 |只看该作者
不错!思路比较合理。

解决方案是关键~~~

论坛徽章:
0
7 [报告]
发表于 2007-07-17 11:07 |只看该作者
原帖由 qingzhou 于 2007-7-17 10:08 发表
不错!思路比较合理。

解决方案是关键~~~


过奖!

IBM AS400操作界面、北美企业用到的subfile,都是这样的思路。

进一步的技巧:

在用到上述技巧之后
1)用rpg程序定位到显示屏幕的光标位置,从而对应相应的dim位置。只要用户操作光标停留在subfile显示的个位置上,按下功能键或回车,就可进行下一步操作。如回车,继续显示详细记录,或跳转到下一个输入项;按F4作对光标停留位置输入项的提示操作等。

2)对多维dim,可采用lookup操作,从而对多索引文件的相应操作。

IBM AS400操作界面,几乎都是采用subfile处理,只不过,这个subfile只定义一条记录。

论坛徽章:
0
8 [报告]
发表于 2007-07-31 11:12 |只看该作者

模糊查询?

对于中文的模糊查询使用DS结构拆,用拆分得到的新值进行比较.是否可行?
想请教一下.在DS结构中,系统是如何识别双字符和单字符拼接的(例如:"询A")

论坛徽章:
0
9 [报告]
发表于 2007-07-31 11:35 |只看该作者

passthru

呵.感谢提示.

论坛徽章:
0
10 [报告]
发表于 2007-10-18 16:00 |只看该作者
还不是太懂,先收藏,慢慢品味
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP