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


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

主题:datacolchanged

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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
datacolchanged  发帖心情 Post By:2013/6/14 11:44:00 [显示全部帖子]

If  e.DataCol.name = "是否异常" AndAlso e.DataRow("是否异常") = "异常" Then
Select Case e.DataCol.name
   Case "生产调度令号"
       Dim dr As DataRow = DataTables("电装顾客财产异常处理").Find("生产调度令号 = '" & e.NewValue & "'")

         If dr Is Nothing Then
             dr = DataTables("电装顾客财产异常处理").AddNew()  
             dr("生产调度令号") = e.DataRow("生产调度令号")
             dr("客户单位") = e.DataRow("客户单位") 
             dr("姓名") = e.DataRow("姓名")
             dr("类别") = e.DataRow("类别")
             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
End If

 

 

 

 

 

想实现表A的“是否异常”列为“异常”时,执行代码,否则不执行,应该怎么写?


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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 11:47:00 [显示全部帖子]

这个试过了,不行啊

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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 13:29:00 [显示全部帖子]

当表 电装顾客财产登记 的是否异常列为 异常 时  ,顾客财产异常处理列同步更新 生产调度令号等同名列的内容
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例程1.foxdb


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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 15:19:00 [显示全部帖子]

我的数据肯定是要反复录入的呀,不可能只录入一次的


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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 16:36:00 [显示全部帖子]

狐爸爸,我也发现了这个问题,我修改了原来的行,他也会新增一行的,我是不是应该放在别的事件里面编程呢


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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 16:38:00 [显示全部帖子]

以下是引用lsy在2013-6-14 16:11:00的发言:

不如在BeforeSaveDataRow中,简单稳妥。

这样可以同步修改吗?


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


加好友 发短信
等级:婴狐 帖子:51 积分:361 威望:0 精华:0 注册:2013/6/5 10:33:00
  发帖心情 Post By:2013/6/14 16:39:00 [显示全部帖子]

以下是引用狐狸爸爸在2013-6-14 16:05:00的发言:

哈,确实如此,我考虑不周。

 

这样修改代码,可以解决重复增加的问题:

 

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

 

 

 

 

 

如上所示,如果我只修改了生产调度令号,会在原来那一行修改吗?


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


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

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

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


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

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

 回到顶部
美女呀,离线,留言给我吧!
秦昌丽
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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中写入类似的代码时,对第二个表的操作是不执行的

 

 

请求帮忙


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