Foxtable(狐表)用户栏目专家坐堂 → 数据同步


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

主题:数据同步

美女呀,离线,留言给我吧!
FB学生
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:37 积分:377 威望:0 精华:0 注册:2013/6/19 16:06:00
数据同步  发帖心情 Post By:2013/6/28 15:04:00 [只看该作者]

在帮助的“关联与表达式的综合示例”中,如何做到,入库表中增加一个产品编号,库存表也增加一个产品编号,如果库存表已经有该产品编号,那么不再增加,只是让库存_单价保持和入库单价同步?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/28 15:08:00 [只看该作者]

这个论坛中很多类似例子, 你找找看吧!

思路如下:

入库表DataColChanged事件查找库存表是否存在一样的产品编号行,如果找到就修改对应的行. 如果没找到就新增,并且赋值.

 回到顶部
美女呀,离线,留言给我吧!
FB学生
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:37 积分:377 威望:0 精华:0 注册:2013/6/19 16:06:00
  发帖心情 Post By:2013/6/28 15:42:00 [只看该作者]

那这个事件怎么改呢?

 

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


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/28 15:47:00 [只看该作者]

代码应该没什么问题啊

严谨一点应该增加一下e.DataRow("产品编号")的空值判断


你执行出现什么问题?

 回到顶部
美女呀,离线,留言给我吧!
FB学生
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:37 积分:377 威望:0 精华:0 注册:2013/6/19 16:06:00
  发帖心情 Post By:2013/6/28 15:58:00 [只看该作者]

执行时,库存表已经有了这笔产品编号,入库表中增加是,库存表还会增加同样一笔


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/28 16:03:00 [只看该作者]

上个例子才方便分析你的问题.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/28 16:05:00 [只看该作者]

原因应该是你这里Dim dr As DataRow = DataTables("库存").Find("产品编号 = '" & e.OldValue & "'")  你用的是OldValue

你新增的时候 OldVale是空的, 因为你是新增的行.第一次修改老的值肯定空的.那么肯定找不到行. 自然就新增行了.

 回到顶部
美女呀,离线,留言给我吧!
FB学生
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:37 积分:377 威望:0 精华:0 注册:2013/6/19 16:06:00
  发帖心情 Post By:2013/6/28 16:20:00 [只看该作者]

那怎么调试呢

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/28 16:23:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
FB学生
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:37 积分:377 威望:0 精华:0 注册:2013/6/19 16:06:00
  发帖心情 Post By:2013/6/28 16:24:00 [只看该作者]

老师误解了,我是问上面的代码怎么改正过来


 回到顶部
总数 12 1 2 下一页