Foxtable(狐表)用户栏目专家坐堂 → 合并excel数据到表,需要其他列联动不能实现,系统无提示,麻烦检查,谢谢


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

主题:合并excel数据到表,需要其他列联动不能实现,系统无提示,麻烦检查,谢谢

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
合并excel数据到表,需要其他列联动不能实现,系统无提示,麻烦检查,谢谢  发帖心情 Post By:2016/10/24 9:31:00 [只看该作者]

写在“男生资料”表,表属性,datarowadded事件,检查代码,却未发现逻辑没有什么错误;详见附图、项目文件,麻烦检查,谢谢!

代码如下:
'合并excel数据到"推荐人手机"列,系统自动延长"降级日期"列
If e.DataRow("推荐人手机") IsNot Nothing Then
    Dim tjrsj As Double = e.DataRow("推荐人手机")    '定义,推荐人手机,首字母命名
    Dim drjj As DataRow = DataTables("男生资料").Find("[手机号码] = '" & tjrsj & "'")    '定义推荐人所在的行,根据推荐人手机号,找到推荐人所在的行.变量名是dr降级的首字母
    If  drjj  IsNot Nothing Then
        Dim d As Date = drjj("降级日期")                 '定义已有降级日期
        Dim t As Date = Date.today                       '定义当天日期
        If drjj.Isnull("降级日期") Then
            d = t.adddays(30) '加上30天
        Else
            d = d.adddays(30) '加上30天
        End If
    End If
End If


[此贴子已经被作者于2016/10/24 9:33:42编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/24 9:50:00 [只看该作者]

1、"推荐人手机"改为字符列(手机号码有必要使用双精度吗)

2、不想改,这里改改

Dim drjj As DataRow = DataTables("男生资料").Find("[手机号码] = " & tjrsj)   

 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/10/24 9:52:00 [只看该作者]

If e.DataRow.Isnull("推荐人手机") = False Then
    Dim tjrsj As Double = e.DataRow("推荐人手机")    '定义,推荐人手机,首字母命名
    Dim drjj As DataRow = DataTables("男生资料").Find("[手机号码] = '" & tjrsj & "'")    '定义推荐人所在的行,根据推荐人手机号,找到推荐人所在的行.变量名是dr降级的首字母
    If  drjj  IsNot Nothing Then
        Dim d As Date = drjj("降级日期")                 '定义已有降级日期
        Dim t As Date = Date.today                       '定义当天日期
        If drjj.Isnull("降级日期") Then
            d = t.adddays(30) '加上30天
        Else
            d = d.adddays(30) '加上30天
        End If
    Else
        MessageBox.show("没有符合条件的行,当然不会有动作")
    End If
Else
        MessageBox.show("这个时候,推荐人手机还没有输入吧,这种情况,应该是DatacolChanged事件,不是DataRowAdded事件")
End If

学会一些基本的调试,可以自己解决多数问题。



 回到顶部
帅哥,在线噢!
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

DataColChanged事件:

Select Case e.DataCol.name
    Case "推荐人手机"
        Dim drjj As DataRow = DataTables("男生资料").Find("[手机号码] = '" & e.NewValue & "'")    '定义推荐人所在的行,根据推荐人手机号,找到推荐人所在的行.变量名是dr降级的首字母
        If  drjj  IsNot Nothing Then
            Dim d As Date = drjj("降级日期")                 '定义已有降级日期
            Dim t As Date = Date.today                       '定义当天日期
            If drjj.Isnull("降级日期") Then
                d = t.adddays(30) '加上30天
            Else
                d = d.adddays(30) '加上30天
            End If
        End If
End elect
           

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2016/10/24 17:57:00 [只看该作者]

问下:3楼的代码,在任何位置用MessageBox.show()测试,都没有问题,只是降级日期列,始终没有变化
但是,将下述代码,是复制3楼代码,只是红色部分修正,降级日期列就有了正确的结果,是什么原因呢?

'合并excel数据到"推荐人手机"列,系统自动延长"降级日期"列
If e.DataRow.Isnull("推荐人手机") = False Then
    Dim tjrsj As Double = e.DataRow("推荐人手机")    '定义,推荐人手机,首字母命名
    Dim drjj As DataRow = DataTables("男生资料").Find("[手机号码] = '" & tjrsj & "'")    '定义推荐人所在的行,根据推荐人手机号,找到推荐人所在的行.变量名是dr降级的首字母
        If drjj.Isnull("降级日期") Then
        Dim d As Date = drjj("降级日期")                 '定义已有降级日期
        Dim t As Date = Date.today                       '定义当天日期
    If  drjj  IsNot Nothing Then
            drjj("降级日期") = t.adddays(30) '加上30天
     MessageBox.show(d)
        Else
            drjj("降级日期") = d.adddays(30) '加上30天
        End If
    Else
        MessageBox.show("没有符合条件的行,当然不会有动作")
    End If
Else
    MessageBox.show("这个时候,推荐人手机还没有输入吧,这种情况,应该是DatacolChanged事件,不是DataRowAdded事件")
End If

 回到顶部