以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]绑定表后控件之间的更新问题~  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23806)

--  作者:jiskin
--  发布时间:2012/9/20 14:46:00
--  [求助]绑定表后控件之间的更新问题~

ComboBox 的 valuechanged 里面

Dim gg As Row = Tables("商品出库").Current

如 gg("整量单位")是绑定在TextBox上
gg("整量单位") = DataTables("商品库存").Find("整量单位", "商品名称 = \'" & gg("商品名称") & "\'And 商品规格 = \'" & gg("商品规格") & "\'And 生产商 = \'" & gg("生产商") & "\'")

ComboBox发生变化时,系统提醒说找不到 然后出错,请帮忙看看代码,谢谢

 


--  作者:jiskin
--  发布时间:2012/9/20 15:09:00
--  
以下是引用muhua在2012-9-20 14:47:00的发言:

Dim gg As Row = Tables("商品出库").Current
Dim dd As Datarow= DataTables("商品库存").Find("商品名称 = \'" & gg("商品名称") & "\'And 商品规格 = \'" & gg("商品规格") & "\'And 生产商 = \'" & gg("生产商") & "\'")
if dr isnot nothing Then
   gg("整量单位")  = dd("整量单位")
end if

 

DataTable的Find方法,找出来的是DataRow,不是一个值。

发现另外一个问题,因为我是写在ComboBox 的 valuechanged 里面的

Dim cmc As WinForm.label = e.Form.Controls("label12")
Dim gg As Row = Tables("商品出库").Current
Dim dd As DataRow = DataTables("商品库存").Find("商品名称 = \'" & gg("商品名称") & "\'And 商品规格 = \'" & gg("商品规格") & "\'And 生产商 = \'" & gg("生产商") & "\'")
If dd IsNot Nothing Then
    gg("整量单位")  = dd("整量单位")
    gg("散量单位")  = dd("散量单位")
    cmc.text = "元/" & dd("散量单位")
messagebox.show(dd("散量单位"))
End If

 

当我运行这个窗口的时候,发现窗口一运行  message就弹出来了,说明 ComboBox 的 valuechanged 居然已经执行了……

后面我再更改ComboBox 的value 也未见dd值的改变?不知道哪里有问题了


--  作者:狐狸爸爸
--  发布时间:2012/9/20 15:16:00
--  

你的逻辑有问题,那有在控件自己的Valuechanged事件中改变控件自己的Value属性。

 

你到底需要的是什么呢? 你这段代码的目的是什么?

[此贴子已经被作者于2012-9-20 15:16:45编辑过]

--  作者:jiskin
--  发布时间:2012/9/20 15:23:00
--  
以下是引用狐狸爸爸在2012-9-20 15:16:00的发言:

你的逻辑有问题,那有在控件自己的Valuechanged事件中改变控件自己的Value属性。

 

你到底需要的是什么呢? 你这段代码的目的是什么?

[此贴子已经被作者于2012-9-20 15:16:45编辑过]

狐爸 不是改变自己的value 是控件ComboBox 的value发生改变后 ,其他一些数据也跟着变化

这三个要发生变化的:

gg("整量单位")

gg("散量单位")

cmc.text

 


--  作者:lin_hailun
--  发布时间:2012/9/20 15:43:00
--  
 加载窗口的时候,绑定了数据表,值自然是从空值到有值变化的,激发事件。

 值改变,肯定会激发事件,dd不改变的话,就是找不到行,看看是否存在那样的数据。

--  作者:狐狸爸爸
--  发布时间:2012/9/20 15:46:00
--  

这种情况,用SelectedIndexChanged事件更好一些:
 
http://www.foxtable.com/help/topics/0937.htm

 


--  作者:jiskin
--  发布时间:2012/9/20 15:46:00
--  
数据是肯定存在的
--  作者:狐狸爸爸
--  发布时间:2012/9/20 15:48:00
--  
好办,做个简单的例子发上来,立即帮你搞定。
--  作者:jiskin
--  发布时间:2012/9/20 15:50:00
--  
以下是引用狐狸爸爸在2012-9-20 15:46:00的发言:

这种情况,用SelectedIndexChanged事件更好一些:
 
http://www.foxtable.com/help/topics/0937.htm

 

SelectedIndexChanged事件 +100 搞定了