| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2133 人关注过本帖
标题:请教一个Grid定位的问题
取消只看楼主 加入收藏
yttv8
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2011-11-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
请教一个Grid定位的问题
在表单中有list1和grid1两个控件
其中grid1显示了数据表data.dbf所有行和列
而list1只显示了data.dbf中第一列(关键字)的所有行记录
操作时,单击list1中的某一行,让grid1中也跟着光标定位到该行
搜索更多相关主题的帖子: 定位 关键字 数据表 
2011-11-26 15:02
yttv8
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2011-11-25
收藏
得分:0 
以下是引用qjbzjp在2011-11-26 16:02:32的发言:

在List1的Click事件中加入:
this.Parent.grid1.SetFocus

我直接复制代码进去  不好用
我想,这是不是要设什么父类子类的?
我是新人,要说的通俗一点。。
2011-11-26 16:12
yttv8
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2011-11-25
收藏
得分:0 
请教一个Grid定位的问题
以下是引用qjbzjp在2011-11-26 16:02:32的发言:
 

哈哈,谢谢楼上的几位大大,我在家没装vfp ,明天去公司试试。
我在公司  list和grid两个控件是这么做的
selet 字段1 from data.dbf where 条件  order by 字段1  into cursor temp1
然后把temp1给了list

select * from data.dbf into cursor temp2
然后把temp2给了grid

然后想实现标题所说的功能:list中相当于关键字,grid中相当于明细。
操作只针对与list:点list中的某行,grid中也马上找到该行(行很多,滚动条可能要自动往下滚动),光标定位到该行,我好看到详细信息


另外我再补充几个菜鸟问题,请不吝赐教:
sele 字段 from 表 where 条件 into cursor temp
问题1:这个命令在vfp中是什么含义?是新建了一个名为temp的表么?
问题2:对temp的操作(不知道可不可以对temp进行查找、删除、添加行),是否对源也起作用?
因为SQL中,cursor 是游标,而建立临时表的命令是  select 字段  into  temp where 条件,两者和上述vfp中的命令都不一样,所以我不太明白。。。

再有就是,我看到别人说,想在vfp中实现SQL查找还可以这样
把grid的sourcetype(大概是这个属性吧,记不太清)设为=4,
然后source='sele 语句' 就可以了。
这么做确实grid会显示select语句的结果,但是每次执行代码的时候吧,会自动弹出一个窗口(标题为FORM1),里面也显示的select语句的结果
问题3:这是为啥捏?
问题4:我只想让grid中显示,不想弹出这个窗口,要怎么做?

[ 本帖最后由 yttv8 于 2011-11-27 08:26 编辑 ]
2011-11-27 08:08
yttv8
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2011-11-25
收藏
得分:0 
以下是引用panpende在2011-11-27 08:30:41的发言:

根据楼主的说明,list和grid两个控件使用的不是同一个表,所以指针应该不是同一个,也不会移到当前记录上了。
是不是应该在list控件Click事件中加入几个命令,在grid的表中查找相应的记录,把指针移到相应的记录上,然后刷新grid。



能实现功能就行   怎么样才能用同一个表,同一个指针?
2011-11-27 08:48
yttv8
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2011-11-25
收藏
得分:0 
好的,明天我去公司试一下。
我在6楼提的问题3、4,能帮忙解答一下么?
2011-11-27 20:44
yttv8
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2011-11-25
收藏
得分:0 
以下是引用qjbzjp在2011-11-27 21:09:40的发言:


关键字“cursor”代表生成的是临时表,生成的temp临时表在退出系统时不会被保存。
而对临时表的操作如果加了“readw”也可以进行查找、删除、添加行,操作只在临时表中进行,对源表不起作用。
 

问题3、4,您看到的话,也给解答一下吧
2011-11-28 15:19
yttv8
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2011-11-25
收藏
得分:0 
谢谢楼上各位尽心解答,我的问题基本解决,回头看一看,貌似不难,说一下方案吧,可能还有新人能用的到:
1、grid1和list1的init事件:
qjbjp大大给的建议是grid1.RecordSource='data'而list1.RowSource='data.字段1'
实际上我因为要给data.字段1排序,所以我是先select * from data where 字段1<>' ' order by 字段1 into cursor temp
然后grid1.RecordSource='temp'而list1.RowSource='temp.字段1'(这两个赋值我都放在了grid1的init事件中)
以上是因为我不会直接给data排序所以用了临时表temp,在后面的代码中,我也是一直用temp来给grid1和list1赋值
2、text的模糊查找,interactivechange事件:
qjbjp大大给的建议是
set filter to txt $ alltrim(text1.value)&&模糊条件
go top
grid1.RecordSource='data'
list1.RowSource='data.字段1'

我因为又要排序(悲催啊)所以用了如下办法
select * from data where lowe(txt) $ lowe(alltrim(text1.value)) order by 字段1 into cursor temp&&我加上了不区分大小写的模糊查找
grid1.RecordSource='temp'
list1.RowSource='temp.字段1'


再次感谢qjbzjp、panpende等多位大大的启发性建议,让我茅塞顿开啊,哈哈

[ 本帖最后由 yttv8 于 2011-11-29 11:24 编辑 ]
2011-11-29 11:17
快速回复:请教一个Grid定位的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030790 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved