以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据相等  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189296)

--  作者:ntcsm
--  发布时间:2023/11/22 16:33:00
--  数据相等
如何实现表A的数据与表B的数据相同(某几列数据自动相同)
--  作者:有点蓝
--  发布时间:2023/11/22 16:34:00
--  
参考:http://www.foxtable.com/webhelp/topics/1453.htm
--  作者:ntcsm
--  发布时间:2023/11/22 16:35:00
--  
我的情况是修改了才生效,不能实现数据输入或原有数据自动相同
--  作者:cd_tdh
--  发布时间:2023/11/22 16:41:00
--  
重置条件列咯
--  作者:ntcsm
--  发布时间:2023/11/22 20:02:00
--  
我是参照非关联表之间的数据同步进行的,
表B数据修改后表A有显示增加行数据,如果不修改,表A我显示,
表B输入一行新数据表A也不增加,必须是表B内数据修改,表A才数据同步,按例如下进行的修改

Select Case e.DataCol.name
    Case "产品编号"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.OldValue & "\'")
       
If dr Is Nothing Then
            dr = DataTables(
"
库存").AddNew()
            dr(
"
产品编号") = e.DataRow("产品编号")
            dr(
"
产品名称") = e.DataRow("产品名称")
            dr(
"
产品规格") = e.DataRow("产品规格")
        Else
            dr(
"
产品编号") = e.DataRow("产品编号")
        End If
    Case
"
产品名称","产品规格"
        Dim dr As DataRow = DataTables(
"
库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
       
End If
End
Select


--  作者:有点蓝
--  发布时间:2023/11/23 8:35:00
--  
已有数据选中表B"产品编号"列,然后重置列

图片点击可在新窗口打开查看

--  作者:ntcsm
--  发布时间:2023/11/23 11:03:00
--  
重置后显示如下,什么情况?

.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2022.8.18.1
错误所在事件:表,表C, DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
Cannot perform \'=\' operation on System.DateTime and System.String.
谢谢


--  作者:有点蓝
--  发布时间:2023/11/23 11:04:00
--  
调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错
--  作者:ntcsm
--  发布时间:2023/11/23 11:43:00
--  
没能搞好,不知道问题出在哪?
表A 有日期列和数量列
表C有日期列和消耗列
表C同步代码
Select Case e.DataCol.name \'非关联表间的数据同步
    Case "日期"
        
         Dim dr As DataRow = DataTables("表A").Find("日期 = \'" & e.OldValue & "\'")
        If dr Is Nothing Then 
            dr = DataTables("表A").AddNew()
            dr("日期") = e.DataRow("日期")
            dr("数量") = e.DataRow("消耗")
            
        Else
            dr("日期") = e.DataRow("日期")
        End If
    Case "消耗"
        Dim dr As DataRow = DataTables("表A").Find("日期 = \'" & e.DataRow("日期") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select
请指点下,谢谢

--  作者:有点蓝
--  发布时间:2023/11/23 11:46:00
--  

2个表通过什么列进行关联的?
[此贴子已经被作者于2023/11/23 11:46:17编辑过]