vfp 一對多關聯中,明細表想按某一字段排序,但總是不能實現?
select khdmb_mx
set order to bh
想要明細表khdmb_mx 中以 bh 排序。但上面那樣寫會出錯,改變主表記錄,對應的明細都不會顯示出來,如果去掉上面代碼是能正常顯示,但明細記錄沒有按bh排序。怎樣才能使明細表按bh排序呢?請各位大哥不嗇指教.先謝謝啦!!
问题点数:20、回复次数:9Top
1 楼TERRYYRRET(命运)回复于 2006-04-03 21:44:40 得分 5
你建索引了吗?
应该没有问题的,大概是你写的不对
举个例子:
temp1,temp2的结构为(aa c(2),bb c(3), cc c(4))
在temp1的aa字段上建主索引 aa
在temp2的aa字段上建普通索引 aa
打开这两个表
sele temp1
set relation to aa into temp2
关系就建好了Top
2 楼chzai(想我就罵我)回复于 2006-04-03 23:28:34 得分 0
我主表和明細表用一id關聯,然後明細表再要按 bh 排序,但不知怎麼搞的,總是不能排序,我明細表中要排序字段 bh 建了索引。請問各位大哥,這是什麼原因啊?Top
3 楼apple_8180(十豆三)回复于 2006-04-04 08:54:51 得分 5
请参考
use 表1
index on 字段1 to 表1_ls
set order to 表1_ls
Top
4 楼chzai(想我就罵我)回复于 2006-04-04 18:58:28 得分 0
还是没有解决啊,不知什么原因?Top
5 楼chzai(想我就罵我)回复于 2006-04-05 11:24:34 得分 0
SELECT table
SET MULTILOCK ON
= CURSORSETPROP('Buffering', 5, 'table')
我在前面用了這段代碼,如有要重新建索引(index on bh to bh )會出緩沖錯誤.
如果有表中先建好後然後直接用 set order to bh 這樣主表記錄關聯不上明細表記錄了,所有主表的對應的明細記錄都不能顯示出來Top
6 楼iamykf(麦克风)回复于 2006-04-06 10:20:52 得分 0
select * from khdmb_mx order by bhTop
7 楼cdbqss1(胖胖)回复于 2006-04-14 22:24:06 得分 5
chzai (想我就罵我) ::
还要看bh这个索引,是单一索引还是复合索引。
单一索引文件的扩展名是.idx,
复合索引文件的扩展名是.cdx,
这二者,在使用上有一些区别:复合索引是随着主表的打开而打开的;而单一索引文件则不然,打开主表时,可以暂时不打开,以后需要单一索引时,再打开。
所以,若需要按bh排序,则先要按bh建立索引。再打开使用索引就是了。Top
8 楼jxlee365(老牛自知黄昏晚,不待扬鞭自奋蹄)回复于 2006-05-12 15:42:08 得分 0
cdbqss1(胖胖):
复合索引是随着主表的打开而打开的???
不一定的吧?Top
9 楼lucasu()回复于 2006-06-20 10:21:29 得分 5
因为是一对多,grid在显示数据时总要有一个对应的索引与主表相关。如果在运行时刻改变了活动索引,肯定不能正确的一对多显示。
建议取消一对多关联。在dataenvironment事件中用set filter (子表索引键 == 主表索引键) IN 子表。在移动主表记录后或调用表单的refresh方法前,执行命令go top in 子表,否则,grid的显示有时会不正确Top




