以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 临时列跨表更新查询出错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=109832) |
-- 作者:wakai -- 发布时间:2017/11/20 23:17:00 -- 临时列跨表更新查询出错 以商品ID为关联,输入商品ID后用临时列显示商品单价,现希望修改临时列商品单价后,能自动更新商品表的价格,DataColChanged代码如下, Select Case e.DataCol.Name Case "商品单价" If e.OldValue <> e.NewValue Then Dim pr As DataRow pr = DataTables("合同_商品").Find("[商品ID] = " & e.DataRow("商品ID") ) If pr IsNot Nothing Then DataTables("合同_商品").DataCols("商品ID").RaiseDataColChanged(pr) End If End If End Select 提示 无法在 System.String 和 System.Int32 上执行“=”操作。 临时列及数据库类型均设为单精度了
[此贴子已经被作者于2017/11/20 23:20:19编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/11/21 8:36:00 -- Select Case e.DataCol.Name
Case "商品单价"
If e.OldValue <> e.NewValue Then
DataTables("合同_商品").DataCols("商品ID").RaiseDataColChanged("[商品ID] = \'" & e.DataRow("商品ID") & "\'")
End If
End Select
|
-- 作者:wakai -- 发布时间:2017/11/21 17:15:00 -- 老师还是不行,没有更新到合同_商品表中,会是临时列不能更新吗 |
-- 作者:有点甜 -- 发布时间:2017/11/21 17:32:00 -- 贴出你表格【合同_商品】的datacolchanged事件代码。 |
-- 作者:wakai -- 发布时间:2017/11/23 15:01:00 -- Select Case e.DataCol.Name Case "商品单价" Dim Filter As String = "[商品ID] = \'" & e.DataRow("商品ID") & "\'" Dim drs As List(Of DataRow) = DataTables("合同_商品").Select(Filter) For Each dr As DataRow In drs dr(e.DataCol.Name) = e.NewValue Next End Select
|
-- 作者:有点蓝 -- 发布时间:2017/11/23 16:18:00 -- "商品单价"是表达式列吗:http://www.foxtable.com/webhelp/scr/2381.htm |
-- 作者:有点甜 -- 发布时间:2017/11/23 18:19:00 -- 你写5楼代码,还不能实现功能?那就把实例发上来看看。 |
-- 作者:wakai -- 发布时间:2017/11/23 22:44:00 -- 不是表达式列,是临时列 |
-- 作者:有点甜 -- 发布时间:2017/11/23 22:54:00 -- 5楼代码如果执行了,肯定会计算。
如果无效,做个具体例子发上来测试。 |