Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表修改


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

主题:[求助]跨表修改

帅哥哟,离线,有人找我吗?
lsf5138
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:242 积分:2235 威望:0 精华:0 注册:2011/8/16 22:33:00
[求助]跨表修改  发帖心情 Post By:2013/5/25 9:02:00 [只看该作者]

请问这样的代码有问题吗?为什么我修改了 "规格" 后, "生产排单" "改码记录"  二个表的 "规格" 都不反应了!

Select Case e.DataCol.Name 
    Case "规格"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("规格") Then
            dr("规格转换") = Nothing
        Else
            dr("规格转换") = eval(dr("规格")) / 10000
        End If
    Case "针数","专数","针种"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("针数") Or dr.IsNull("专数") Or dr.IsNull("针种") Then
            dr("挡车基数") = Nothing
        Else
            dr("挡车基数") = dr("针数") / dr("针种") * dr("专数")
        End If
    Case "挡车基数"
        Dim Filter As String = "[产品ID] = '" & e.DataRow("产品ID") & "'"
        DataTables("生产明细").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
        DataTables("改码记录").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
            DataTables("生产明细").Save()
            DataTables("改码记录").Save()
    Case "订单ID","客户","款号","颜色","缸号","品名","尺码","规格"
        Dim Filter As String = "[产品ID] = '" & e.DataRow("产品ID") & "'"
        DataTables("生产排单").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
        DataTables("改码记录").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
            DataTables("生产排单").Save()
            DataTables("改码记录").Save()
    Case "产品单价"
        Dim Filter As String = "[产品ID] = '" & e.DataRow("产品ID") & "'"
        DataTables("出货明细").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
            DataTables("出货明细").Save()
End Select


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/5/25 9:12:00 [只看该作者]

一串代码,不如一个实例来的直接。

实例可以验证。


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/5/25 9:17:00 [只看该作者]

Select Case每个Case不能重叠的,否则后面的不执行!



Dim dr As DataRow = e.DataRow
Dim Filter As String = "[产品ID] = '" & dr("产品ID") & "'"

Select Case e.DataCol.Name 
   Case "规格"        
        If dr.IsNull("规格") Then
            dr("规格转换") = Nothing
        Else
            dr("规格转换") = eval(dr("规格")) / 10000
        End If
End Select


Select Case e.DataCol.Name    
    Case "针数","专数","针种"
        
        If dr.IsNull("针数") Or dr.IsNull("专数") Or dr.IsNull("针种") Then
            dr("挡车基数") = Nothing
        Else
            dr("挡车基数") = dr("针数") / dr("针种") * dr("专数")
        End If
    Case "挡车基数"
        
        DataTables("生产明细").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
        DataTables("改码记录").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
            DataTables("生产明细").Save()
            DataTables("改码记录").Save()
    Case "订单ID","客户","款号","颜色","缸号","品名","尺码","规格"
        
        DataTables("生产排单").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
        DataTables("改码记录").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
            DataTables("生产排单").Save()
            DataTables("改码记录").Save()
    Case "产品单价"
        
        DataTables("出货明细").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
            DataTables("出货明细").Save()
End Select


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


加好友 发短信
等级:童狐 帖子:242 积分:2235 威望:0 精华:0 注册:2011/8/16 22:33:00
  发帖心情 Post By:2013/5/25 9:46:00 [只看该作者]

怪不得原来只有一组Case的时候都没问题

感谢!!! 


 回到顶部