注册 登录
编程论坛 VFP论坛

如何双击grid单元格,返回该单元格的值,并打开某表单把值传过去

luke99 发布于 2020-10-09 12:45, 3252 次点击
如何双击Grid单元格,返回该单元格的值,并打开某表单把值传过去?
14 回复
#2
mywisdom882020-10-09 12:51
在表格的每个 thisform.grid1.column1.text1.DblClick 上写,最好自己重新封装 Gird类
如果你表格是5列,那就
thisform.grid1.column1.text1.DblClick
thisform.grid1.column2.text1.DblClick
thisform.grid1.column3.text1.DblClick
thisform.grid1.column4.text1.DblClick
thisform.grid1.column5.text1.DblClick
所以,最好,自己重新封装类


[此贴子已经被作者于2020-10-9 12:53编辑过]

#3
luke992020-10-09 12:56
表格数据很多,每个单元格上写代码不真实,如果只是一列,可以用循环添加代码?
#4
luke992020-10-09 13:00
以下是引用luke99在2020-10-9 12:56:57的发言:

表格数据很多,每个单元格上写代码不真实,如果只是一列,可以用循环添加代码?

如果只想得到第一列某一行的值
#5
吹水佬2020-10-09 15:23
以下是引用luke99在2020-10-9 12:45:28的发言:

如何双击Grid单元格,返回该单元格的值,并打开某表单把值传过去?

问题:
1、获取GRID单元格的数据,GRID是用来输入数据,还是只用来浏览数据,做法可以有所不同
2、把数据传递给另一个表单,此表单是怎样运作,是已经打开了的还是未打开的
#6
吹水佬2020-10-09 15:26
以下是引用luke99在2020-10-9 12:56:57的发言:

表格数据很多,每个单元格上写代码不真实,如果只是一列,可以用循环添加代码?

最好说清楚数据结构,获取的单元格数据类型不同,数据处理过程可能也不同。
#7
吹水佬2020-10-09 15:35
以下是引用luke99在2020-10-9 13:00:28的发言:


如果只想得到第一列某一行的值

什么意思?
GRID的数据源是表(DBF),某一行是屏幕显示的行,还是数据源表的记录行数。


[此贴子已经被作者于2020-10-9 15:37编辑过]

#8
luke992020-10-10 08:17
以下是引用吹水佬在2020-10-9 15:35:56的发言:


什么意思?
GRID的数据源是表(DBF),某一行是屏幕显示的行,还是数据源表的记录行数。

我的Grid表是用来显示数据的(Grid是查询好几个表的结果只是显示数据库部分内容),内有一个编号是数值型的,我想根据编号打开不同的表单,例如9999开头的我就打开老师表单,并显示该编号老师的详细信息,如果是2222开头就打开行政的表单。

[此贴子已经被作者于2020-10-10 08:18编辑过]

#9
mywisdom882020-10-10 08:32
以下是引用luke99在2020-10-10 08:17:09的发言:


我的Grid表是用来显示数据的(Grid是查询好几个表的结果只是显示数据库部分内容),内有一个编号是数值型的,我想根据编号打开不同的表单,例如9999开头的我就打开老师表单,并显示该编号老师的详细信息,如果是2222开头就打开行政的表单。

知道你的意思,你就是查询出结果后,双击,再打开下一个界面。就是我前面说的那样做,你可以先测试1列,静态数据来测试,等1列测试好了,再动态,多列测试,这时,你就要考虑,自己封装 grid 类了。
#10
luke992020-10-10 12:40
以下是引用mywisdom88在2020-10-10 08:32:22的发言:


知道你的意思,你就是查询出结果后,双击,再打开下一个界面。就是我前面说的那样做,你可以先测试1列,静态数据来测试,等1列测试好了,再动态,多列测试,这时,你就要考虑,自己封装 grid 类了。

thisform.grid1.column1.text1.DblClick
这个代码要在哪里编写?又怎么返回值?
#11
mywisdom882020-10-10 13:33
thisform.grid1.column1.text1.DblClick
你先
messagebox(allt(this.value))
看看,是不是双击,有效果
#12
fown2020-10-10 13:49
取得记录号即可,不用那么复杂
#13
吹水佬2020-10-10 16:51
以下是引用luke99在2020-10-10 08:17:09的发言:
我的Grid表是用来显示数据的(Grid是查询好几个表的结果只是显示数据库部分内容),内有一个编号是数值型的,我想根据编号打开不同的表单,例如9999开头的我就打开老师表单,并显示该编号老师的详细信息,如果是2222开头就打开行政的表单。

1、GRID只用显示数据,可设置GRID的属性 AllowCellSelection=.F.
  这样就可以直接在GRID.DblClick事件处理
2、如果DblClick后表数据记录无变动过(可以控制好的),不用传数据给要打开的表单,所要数据就是DblClick的表当前记录数据,在要打开的表单Init事件里直接读取表当前记录的相关数据

[此贴子已经被作者于2020-10-10 16:53编辑过]

#14
zhken2020-10-12 23:00
楼主的意思可能是:   选定义一个公共变量 PUBLIC GIRD_VALUE,双击单元格时 GIRD_VALUE=THIS.VALUE   ,然后在新表单时检查这个  GIRD_VALUE ,可以刷新检测GIRD_VALUE的值。
#15
luke992020-10-15 12:38
以下是引用吹水佬在2020-10-10 16:51:00的发言:


1、GRID只用显示数据,可设置GRID的属性 AllowCellSelection=.F.
  这样就可以直接在GRID.DblClick事件处理
2、如果DblClick后表数据记录无变动过(可以控制好的),不用传数据给要打开的表单,所要数据就是DblClick的表当前记录数据,在要打开的表单Init事件里直接读取表当前记录的相关数据

这个在9.0可以可设置GRID的属性 AllowCellSelection=.F.
但我系统是6.0的可咱办
1