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


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

主题: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的“是否异常”列为“异常”时,执行代码,否则不执行,应该怎么写?


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


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

If   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


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


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

这个试过了,不行啊

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


加好友 发短信
等级:六尾狐 帖子:1418 积分:7167 威望:0 精华:0 注册:2013/3/18 8:37:00
  发帖心情 Post By:2013/6/14 11:49:00 [只看该作者]

你前面判断了列的名字是是否异常,下面列的名字就成了生产调度令号

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


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

2楼的代码不可能不行的,如果不行,做个简单例子发上来说话。

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/6/14 12:31:00 [只看该作者]

代码按道理不能不行,只不过有点怪.为啥这样写?

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


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

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


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


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

放在Datacolchanged 事件中,不行。

反复在同一行中改动"生产调度令号",而且"电装顾客财产异常处理"找不到此行的话,就会反复增加行,这就违反常识和逻辑。

不如放在BeforeSaveDataRow事件中,一次性处理。

 

If e.DataRow("是否异常") = "异常" Then
    Dim dr As DataRow
    dr = DataTables("电装顾客财产异常处理").Find("生产调度令号 = '" & e.DataRow("生产调度令号") & "'")
    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("单位")
End If

[此贴子已经被作者于2013-6-14 13:46:40编辑过]

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


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

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


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


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

以下是引用秦昌丽在2013-6-14 15:19:00的发言:

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

每次录入,都不保存?一保存不就执行代码了吗?在DataColChanged事件中,你改了一个号,发现错了,又改,这样就多增加了行。

 

[此贴子已经被作者于2013-6-14 15:38:57编辑过]

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