vfp组合框的手工输入数据如何保存
基本设置如下:1.rowsourcetype=32.rowsource="selectdistinct&z2fromDBFintocursorYI"3.controlso...
基本设置如下:
1.rowsourcetype=3
2.rowsource ="select distinct &z2 from DBF into cursor YI"
3 .controlsource=DBF.字段
4.syle=0
我用在记录修改表单中,下拉选的值能保存,但手工输入的值保存时为空白。主要难点在列源是SQL语句结果,我在COMBO的valid中输入 " thisform.value=thisform.text
THIS.REQUERY"也不行,光标一离开,就变为空白。请高手给出代码
1.rowsourcetype(数据类型)=3(SQL语句)
2.rowsource(数所来源)为SELECT-SQL查询语句。select 姓名 from 个人信息表 into cursor COMBO1"
3.value(表示当前所选中的值)
4.THISFORM.COMBO1.controlsource=个人信息表.姓名
要求在COMBO1中从下拉列表中选取的值和手工输入的值都能保存在改后的“个人信息表.姓名”中,用的数据缓冲技术,在表的INIT中用如下代码:set multilocks on &&允许数据缓冲cursorsetprop("buffering",3) &&启用表或记录缓冲,保存用的代码是:IF TABLEUPDATE(.F.)=.F.
MESSAGEBOX("保存失败",48,"VFP信息")
ELSE
MESSAGEBOX("保存成功",64,"VFP信息")
THISFORM.RDLY()
THISFORM.REFRESH()
ENDIF。
另:我在一个程序中调用这样的表单在COMBO1中输入值时,光标离开值还在,也能保存,在新建的一个表单中同样调用COMBO1的表单时,光标一离开就成空白,我检查了所有的代码都一梓,不知为何,纠结了2星期了,请高手解答。谢谢。 展开
1.rowsourcetype=3
2.rowsource ="select distinct &z2 from DBF into cursor YI"
3 .controlsource=DBF.字段
4.syle=0
我用在记录修改表单中,下拉选的值能保存,但手工输入的值保存时为空白。主要难点在列源是SQL语句结果,我在COMBO的valid中输入 " thisform.value=thisform.text
THIS.REQUERY"也不行,光标一离开,就变为空白。请高手给出代码
1.rowsourcetype(数据类型)=3(SQL语句)
2.rowsource(数所来源)为SELECT-SQL查询语句。select 姓名 from 个人信息表 into cursor COMBO1"
3.value(表示当前所选中的值)
4.THISFORM.COMBO1.controlsource=个人信息表.姓名
要求在COMBO1中从下拉列表中选取的值和手工输入的值都能保存在改后的“个人信息表.姓名”中,用的数据缓冲技术,在表的INIT中用如下代码:set multilocks on &&允许数据缓冲cursorsetprop("buffering",3) &&启用表或记录缓冲,保存用的代码是:IF TABLEUPDATE(.F.)=.F.
MESSAGEBOX("保存失败",48,"VFP信息")
ELSE
MESSAGEBOX("保存成功",64,"VFP信息")
THISFORM.RDLY()
THISFORM.REFRESH()
ENDIF。
另:我在一个程序中调用这样的表单在COMBO1中输入值时,光标离开值还在,也能保存,在新建的一个表单中同样调用COMBO1的表单时,光标一离开就成空白,我检查了所有的代码都一梓,不知为何,纠结了2星期了,请高手解答。谢谢。 展开
2个回答
展开全部
不要用sql代码作为组合框的数据源。
应在组合框的INIT代码里:
select 姓名 from 个人信息表 into cursor COMBO1
this.rowsource="COMBO1"
this.rowsourcetype=6 &&字段
也可以this.rowsourcetype=0,直接用this.additem()添加数据到列表,而不用一个临时表。
在组合框的valid事件里更新数据到数据源。手工输入或选择的数据从displayvalue获得。
应在组合框的INIT代码里:
select 姓名 from 个人信息表 into cursor COMBO1
this.rowsource="COMBO1"
this.rowsourcetype=6 &&字段
也可以this.rowsourcetype=0,直接用this.additem()添加数据到列表,而不用一个临时表。
在组合框的valid事件里更新数据到数据源。手工输入或选择的数据从displayvalue获得。
参考资料: D代码里
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询