当前位置: 代码迷 >> VFP >> GRID:怎么…
  详细解决方案

GRID:怎么…

热度:6319   发布时间:2013-02-26 00:00:00.0
GRID:如何……
SQLExec(lnConnHandle,"my_proc 2","jl")
thisform.grid1.RecordSourceType= 1
thisform.grid1.RecordSource="jl"

jl中字段为:科目,项目1,项目2,项目3,显示于一个grid中。
我需要在输入焦点离开某个单元格时做valid验证以保证输入合法数据(任务要求必须每输入一格数据就验证),不合法就不让离开当前单元格(我想应该用Grid中text1的valid事件)。
关键问题是:需要根据当前格对应的列标题名(或字段名)和格所在行的列“科目”的值来决定valid条件。
如何实现?

也就是如何在一个grid的text1的valid事件中访问当前格对应的grid1列名和当前行中“科目”字段的值。

------解决方案--------------------------------------------------------
不用对应,对 Grid 的具体 Column 的 Text1 的 Valid 事件单独写代码,有多少列,就需要写多少处代码。

其实不建议直接在 Grid 中操作,应该用个文本框来输入,保存时再将文本框的内容写到表中并刷新 Grid。
------解决方案--------------------------------------------------------
也可以 每个TEXT中写代码 ,麻烦一点
------解决方案--------------------------------------------------------
楼主在我帖子中说了一句,才明白意思,于是来前来献丑。

如何在一个grid的text1的valid事件中访问当前格对应的grid1列名和当前行中“科目”字段的值。

首先集中注意力到某个列的某一行看那个text1,因为是要给这个text1写代码,这个text1所在的列(column)就是它的爹(parent object),因此用对象层次的相对引用描述较为简单,即
this.parent就是text1所在的列对象,接下来我没有弄清你要什么,是这一列的列标题或者是该列对应的字段名(控制源)。列标题就是text1它哥header1的caption,即this.parent.header1.caption。若要该列控制源,即
this.parent.controlsource。

1楼给你了绝对引用描述,因为要从thisform(text1的爹的爹的爹,它太爷爷)开始,看起来稍稍有点麻烦,但那个有灵活之处,比如写一个对付所有列的处理。

至于要当前行中“科目”字段的值,那更是简单不过,当前行就是当前记录,直接拿“科目”字段用就行了。
  相关解决方案