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


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

主题:数据关联同步问题

帅哥哟,离线,有人找我吗?
有点甜
  31楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/9 19:08:00 [只看该作者]

 已经给你改过了啊,没有问题啊,你到底想表达什么啊

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


加好友 发短信
等级:婴狐 帖子:36 积分:266 威望:0 精华:0 注册:2015/1/31 13:33:00
  发帖心情 Post By:2015/3/9 19:15:00 [只看该作者]

原来是生产调度令号和序号不为空就增加新的行,现在需要工种也不为空时增加新的行,并且在工种发生变动时,会在跟踪卡明细表中对应的 生产调度令号和序号

 

行进行相应的变动而不是增加新的行,如果工种列被删除,则跟踪卡明细对应的生产调度令号和序号行被删除

 

 

我自己改的代码如下:

 


If e.DataCol.Name = "生产调度令号" OrElse e.DataCol.Name = "序号" OrElse e.DataCol.Name = "工种" Then
    If e.DataRow.IsNull("生产调度令号") = False AndAlso e.DataRow.IsNull("序号") = False AndAlso e.DataRow.IsNull("工种") = False Then
        Dim ndr As DataRow = DataTables("机加跟踪卡明细").AddNew
        ndr("生产调度令号") = e.DataRow("生产调度令号")
        ndr("序号") = e.DataRow("序号")
        ndr("工种") = e.DataRow("工种")
    Else If e.NewValue = Nothing Then
        If e.DataCol.Name = "生产调度令号" Then
            DataTables("机加跟踪卡明细").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "' and 工种 = '" & e.DataRow("工种") & "'")
            DataTables("机加车间排工").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.DataRow("工种") & "'")
            DataTables("机加工时统计").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.DataRow("工种") & "'")
            DataTables("机加工时结算").DeleteFor("核算令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.DataRow("工种") & "'")
            DataTables("机加检验记录").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.DataRow("工种") & "'")
       Else If e.DataCol.Name = "序号" Then
            DataTables("机加跟踪卡明细").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
            DataTables("机加车间排工").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
            DataTables("机加工时统计").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
            DataTables("机加工时结算").DeleteFor("核算令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
            DataTables("机加检验记录").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'and 工种 = '" & e.DataRow("工种") & "'")
       Else If e.DataCol.Name = "工种" Then
            DataTables("机加跟踪卡明细").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.OldValue & "'")
            DataTables("机加车间排工").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" &e.OldValue & "'")
            DataTables("机加工时统计").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.OldValue & "'")
            DataTables("机加工时结算").DeleteFor("核算令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'and 工种 = '" & e.OldValue & "'")
            DataTables("机加检验记录").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" &e.DataRow("序号") & "'and 工种 = '" & e.OldValue & "'")
       End If
End If
End If

 

 

不过这样好像在修改工种时,会在跟踪卡明细表中增加新的行


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/9 19:34:00 [只看该作者]

代码

 

If e.DataCol.Name = "生产调度令号" OrElse e.DataCol.Name = "序号" OrElse e.DataCol.name = "工种" Then
    If e.DataRow.IsNull("生产调度令号") = False AndAlso e.DataRow.IsNull("序号") = False AndAlso e.DataRow.IsNull("工种") = False Then
        Dim ndr As DataRow = DataTables("质量跟踪卡明细").find("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'")
        If ndr Is Nothing Then
            ndr = DataTables("质量跟踪卡明细").AddNew
        End If
        ndr("生产调度令号") = e.DataRow("生产调度令号")
        ndr("序号") = e.DataRow("序号")
        ndr("工种") = e.DataRow("工种")
        ndr("核定工时") = e.DataRow("工时")
    Else If e.NewValue = Nothing AndAlso e.DataCol.Name <> "工种" Then
        If e.DataCol.Name = "生产调度令号" Then
            DataTables("质量跟踪卡明细").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'")
            DataTables("检验记录").DeleteFor("生产调度令号 = '" & e.OldValue & "' and 序号 = '" & e.DataRow("序号") & "'")
        Else
            DataTables("质量跟踪卡明细").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'")
            DataTables("检验记录").DeleteFor("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.OldValue & "'")
        End If
    Else
        Dim fdr As DataRow = DataTables("质量跟踪卡明细").find("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'")
        If fdr IsNot Nothing Then
            fdr("工种") = e.DataRow("工种")
        End If
    End If
Else If e.DataCol.Name = "工时" Then
    Dim fdr As DataRow = DataTables("质量跟踪卡明细").find("生产调度令号 = '" & e.DataRow("生产调度令号") & "' and 序号 = '" & e.DataRow("序号") & "'")
    If fdr IsNot Nothing Then
        fdr("工种") = e.DataRow("工种")
        fdr("核定工时") = e.DataRow("工时")
    End If
End If


 回到顶部
总数 33 上一页 1 2 3 4