Foxtable(狐表)用户栏目专家坐堂 → 初学窗口遇到的问题


  共有9018人关注过本帖树形打印复制链接

主题:初学窗口遇到的问题

帅哥哟,离线,有人找我吗?
yuri
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:27 积分:295 威望:0 精华:0 注册:2011/11/15 23:31:00
初学窗口遇到的问题  发帖心情 Post By:2012/6/24 0:46:00 [只看该作者]

在“订单”表中用窗口进行录入设计,在同一个GroupBox中设置了两个RadioButton控件和一个TextBox控件,

TextBox1绑定到“订单.订单分类”;

两个RadioButton控件的CheckedChanged事件代码分别设为

RadioButton1:

--------------

Dim rdo As WinForm.RadioButton
rdo = e.Form.Controls("RadioButton1")
If rdo.Checked = True Then
    Dim txt1 As WinForm.textbox
    txt1 = e.Form.Controls("TextBox1")
    txt1.Value = "销售"

End If

RadioButton2:

--------------

Dim rdo As WinForm.RadioButton
rdo = e.Form.Controls("RadioButton2")
If rdo.Checked = True Then
    Dim txt1 As WinForm.textbox
    txt1 = e.Form.Controls("TextBox1")
    txt1.Value = "采购"
End If

在窗口中操作后,窗口中显示extBox1如代码设计,但是“订单”表中的“订单分类”没有数据,

如果不通过RadioButton控件的CheckedChanged事件代码设置extBox1,直接在extBox1进行输入,

数据很好地绑定到“订单”表中的“订单分类”中。

请问老师,这是为什么?该怎么写这段代码?

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2012/6/24 2:04:00 [只看该作者]

问题出在TextBox1绑定到“订单.订单分类上,你要明白TextBox1绑定到“订单.订单分类,意思是表里面有什么数据,就通过TextBox1显示出来,而你写的2个CheckedChanged事件,只是赋值给TEXTBOX1,和表里面的数据没有任何关系呀,它怎么会有数据啦,至于你直接在textbox1里输入,就是编辑了表里面的数据,当然正确了。

解决办法:直接操纵表

RadioButton1:

Dim rdo As WinForm.RadioButton
rdo = e.Form.Controls("RadioButton1")
If rdo.Checked = True Then
   Tables("订单").Current("订单分类")="销售"
End If

RadioButton2:

Dim rdo As WinForm.RadioButton
rdo = e.Form.Controls("RadioButton2")
If rdo.Checked = True Then
   Tables("订单").Current("订单分类")="采购"
End If

 

初学者在做录入窗时,为了省事,喜欢用绑定,以后你就知道,其实做录入窗用绑定非常不方便,因为没有数据正确与否的检查;一般做编辑窗才用绑定.


 回到顶部
帅哥哟,离线,有人找我吗?
yuri
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:27 积分:295 威望:0 精华:0 注册:2011/11/15 23:31:00
  发帖心情 Post By:2012/6/24 2:20:00 [只看该作者]

谢谢 sloyy

 


 回到顶部
帅哥哟,离线,有人找我吗?
yuri
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:27 积分:295 威望:0 精华:0 注册:2011/11/15 23:31:00
  发帖心情 Post By:2012/6/24 15:27:00 [只看该作者]

以下是引用sloyy在2012-6-24 2:04:00的发言:

问题出在TextBox1绑定到“订单.订单分类上,你要明白TextBox1绑定到“订单.订单分类,意思是表里面有什么数据,就通过TextBox1显示出来,而你写的2个CheckedChanged事件,只是赋值给TEXTBOX1,和表里面的数据没有任何关系呀,它怎么会有数据啦,至于你直接在textbox1里输入,就是编辑了表里面的数据,当然正确了。

解决办法:直接操纵表

RadioButton1:

Dim rdo As WinForm.RadioButton
rdo = e.Form.Controls("RadioButton1")
If rdo.Checked = True Then
   Tables("订单").Current("订单分类")="销售"
End If

RadioButton2:

Dim rdo As WinForm.RadioButton
rdo = e.Form.Controls("RadioButton2")
If rdo.Checked = True Then
   Tables("订单").Current("订单分类")="采购"
End If

 

初学者在做录入窗时,为了省事,喜欢用绑定,以后你就知道,其实做录入窗用绑定非常不方便,因为没有数据正确与否的检查;一般做编辑窗才用绑定.

学习分享,继续学习后的发现:

感谢sloyy先。

RadioButton1和RadioButton2de 代码同原设计,不直接操作表,把TextBox1的TextChanged代码设为:

e.Sender.WriteValue()

在学习教程中有关文本框绑定到字段有这么一句“某文本框绑定一个字段,在向文本框输入内容的时候并不会刷新字段的内容,输入完成并离开文本框时字段的内容才会刷新”,估计用代码设置文本框的内容后不触发绑定字段的刷新,TextBox1的TextChanged代码触发了绑定字段的刷新,达到设计目的。


 

 

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2012/6/24 18:34:00 [只看该作者]

对的

 回到顶部