以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  初学窗口遇到的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20926)

--  作者:yuri
--  发布时间: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
--  发布时间: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
--  发布时间:2012/6/24 2:20:00
--  

谢谢 sloyy

 


--  作者:yuri
--  发布时间: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
--  发布时间:2012/6/24 18:34:00
--  
对的