Foxtable(狐表)用户栏目专家坐堂 → datacolchanged


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

主题:datacolchanged

帅哥哟,离线,有人找我吗?
狐狸爸爸
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/14 16:54:00 [只看该作者]

会删除原来的,并重新增加一行。

如果要在原来的基础上修改,这个代码是不行的,要改为:

 

Select Case e.DataCol.name
    Case "生产调度令号","客户单位","姓名","类别","财产名称","型号规格","单位","是否异常"
        Dim dr As DataRow
        If e.DataCol.name = "生产调度令号" Then
            dr = DataTables("顾客财产异常处理").Find("生产调度令号 = '" & e.OldValue & "'")
            If dr IsNot Nothing Then
                dr("生产调度令号") = e.DataRow("生产调度令号")
            End If
        End If
        If dr Is Nothing Then
            dr = DataTables("顾客财产异常处理").Find("生产调度令号 = '" & e.DataRow("生产调度令号") & "'")
        End If
        If e.DataRow("是否异常") = "异常" Then
            If dr Is Nothing Then
                dr = DataTables("顾客财产异常处理").AddNew()
            End If
            dr("生产调度令号") = e.DataRow("生产调度令号")
            dr("客户单位") = e.DataRow("客户单位")
            dr("姓名") = e.DataRow("姓名")
            dr("类别") = e.DataRow("类别")
            dr("财产名称") = e.DataRow("财产名称")
            dr("型号规格") = e.DataRow("型号规格")
            dr("单位") = e.DataRow("单位")
        Else
            If dr IsNot Nothing Then
                dr.Delete
            End If
        End If
End Select

[此贴子已经被作者于2013-6-14 16:59:39编辑过]

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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 17:03:00 [只看该作者]

如果没有那个异常不异常的选择呢

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/14 17:04:00 [只看该作者]

以下是引用秦昌丽在2013-6-14 17:03:00的发言:
如果没有那个异常不异常的选择呢

 

那就删除这个条件判断:

 

If e.DataRow("是否异常") = "异常" Then
'

end if

 

 


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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 17:05:00 [只看该作者]

还有加入顾客财产登记表中有一列叫 客户单位  ,咋异常登记中有一列叫单位,但需要财产登记中的客户单位 同步到 异常登记中的单位,如何写 

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/14 17:09:00 [只看该作者]

Select Case e.DataCol.name
    Case "生产调度令号","客户单位","姓名","类别","财产名称","型号规格","是否异常","客户单位"
        Dim dr As DataRow
        If e.DataCol.name = "生产调度令号" Then
            dr = DataTables("顾客财产异常处理").Find("生产调度令号 = '" & e.OldValue & "'")
            If dr IsNot Nothing Then
                dr("生产调度令号") = e.DataRow("生产调度令号")
            End If
        End If
        If dr Is Nothing Then
            dr = DataTables("顾客财产异常处理").Find("生产调度令号 = '" & e.DataRow("生产调度令号") & "'")
        End If
        If e.DataRow("是否异常") = "异常" Then
            If dr Is Nothing Then
                dr = DataTables("顾客财产异常处理").AddNew()
            End If
            dr("生产调度令号") = e.DataRow("生产调度令号")
            dr("客户单位") = e.DataRow("客户单位")
            dr("姓名") = e.DataRow("姓名")
            dr("类别") = e.DataRow("类别")
            dr("财产名称") = e.DataRow("财产名称")
            dr("型号规格") = e.DataRow("型号规格")
            dr("单位") = e.DataRow(“客户单位")
        Else
            If dr IsNot Nothing Then
                dr.Delete
            End If
        End If
End Select
 
心急吃不得热豆腐,先系统学习一下帮助吧:
图片点击可在新窗口打开查看
 
看帮助一定要按顺序,头一两遍可以不求甚解,第三遍开始要将每个例子实际操作演练一遍,不明白的就上论坛求助。
三遍之后才开始做系统,先设计好表,想做什么功能,就做什么功能,遇到问题在帮助找答案,找不到的在论坛提问,不断遇到问题,不断解决问题,慢慢就熟悉了。
此外一定要先掌握《使用指南》,然后再看《开发指南》

[此贴子已经被作者于2013-6-14 17:14:25编辑过]

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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 19:58:00 [只看该作者]

狐爸爸,真的不是我不想思考,我也看懂了你的代码,从思维上来讲,代码是可行的,可是去掉

 

If e.DataRow("是否异常") = "异常" Then
 

 

 

end if

 

 

是实现不了的

 

还有一个问题就是如果在 顾客财产登记表 里输入两行相同的生产调度令号的时候,顾客财产异常表 里只会出现一行,而且是新的那一行,同时,这种代码只能给后面一个表使用,如果我还有一个表,在顾客财产登记表的datacolchanged中写入类似的代码时,对第二个表的操作是不执行的

 

 

请求帮忙


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/15 9:35:00 [只看该作者]

惭愧,我误解了你的意思,错误批评你了。

 

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

 

如果这样,异常登记表,增加一个字符型的列,名称为“来源表”,用于登记这个异常来自哪个表。

代码改为:

 

Select Case e.DataCol.name
    Case "生产调度令号","客户单位","姓名","类别","财产名称","型号规格","单位","是否异常","来源表"
        Dim dr As DataRow
        If e.DataCol.name = "生产调度令号" Then
            dr = DataTables("顾客财产异常处理").Find("生产调度令号 = '" & e.OldValue & & "' And 来源表 = '" & e.DataTable.Name & "'")
            If dr IsNot Nothing Then
                dr("生产调度令号") = e.DataRow("生产调度令号")

                dr("来源表") = e.DataTable.Name
            End If
        End If
        If dr Is Nothing Then
            dr = DataTables("顾客财产异常处理").Find("生产调度令号 = '" & e.DataRow("生产调度令号") "' And 来源表 = '" & e.DataTable.Name & "'")
        End If
        If e.DataRow("是否异常") = "异常" Then
            If dr Is Nothing Then
                dr = DataTables("顾客财产异常处理").AddNew()
            End If
            dr("生产调度令号") = e.DataRow("生产调度令号")

              dr("来源表") = e.DataTable.Name
            dr("客户单位") = e.DataRow("客户单位")
            dr("姓名") = e.DataRow("姓名")
            dr("类别") = e.DataRow("类别")
            dr("财产名称") = e.DataRow("财产名称")
            dr("型号规格") = e.DataRow("型号规格")
            dr("单位") = e.DataRow("单位")
        Else
            If dr IsNot Nothing Then
                dr.Delete
            End If
        End If
End Select

 

 

 

 

[此贴子已经被作者于2013-6-15 9:35:59编辑过]

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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/15 10:00:00 [只看该作者]

我个人觉得增加这个 来源表  列是么有意义的,因为我所有的异常都来源于一个表


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/15 10:08:00 [只看该作者]

如果是一个表有相同的调度号列,那么只能根据Identify来区分了。

异常表增加一个ID列,整数型的。

 

 

Select Case e.DataCol.name
    Case "生产调度令号","客户单位","姓名","类别","财产名称","型号规格","单位","是否异常","ID"
        Dim dr As DataRow
        If e.DataCol.name = "生产调度令号" Then
            dr = DataTables("顾客财产异常处理").Find("生产调度令号 = '" & e.OldValue  & "' And ID = " & e.DataRow("_Idenify"))
            If dr IsNot Nothing Then
                dr("生产调度令号") = e.DataRow("生产调度令号")

                dr("ID") = e.DataRow("_Idenify")
            End If
        End If
        If dr Is Nothing Then
            dr = DataTables("顾客财产异常处理").Find("生产调度令号 = '" & e.DataRow("生产调度令号") & "' And ID = " & e.DataRow("_Idenify"))
        End If
        If e.DataRow("是否异常") = "异常" Then
            If dr Is Nothing Then
                dr = DataTables("顾客财产异常处理").AddNew()
            End If
            dr("生产调度令号") = e.DataRow("生产调度令号")

                dr("ID") = e.DataRow("_Idenify")
            dr("客户单位") = e.DataRow("客户单位")
            dr("姓名") = e.DataRow("姓名")
            dr("类别") = e.DataRow("类别")
            dr("财产名称") = e.DataRow("财产名称")
            dr("型号规格") = e.DataRow("型号规格")
            dr("单位") = e.DataRow("单位")
        Else
            If dr IsNot Nothing Then
                dr.Delete
            End If
        End If
End Select

 

 


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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/15 10:46:00 [只看该作者]

 错误如图

图片点击可在新窗口打开查看此主题相关图片如下:8f$`2mnk9)7ren8q$`n3sym.jpg
图片点击可在新窗口打开查看

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