Foxtable(狐表)用户栏目专家坐堂 → 合并excel数据到表,需要其他列联动的问题?


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

主题:合并excel数据到表,需要其他列联动的问题?

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


加好友 发短信
等级:七尾狐 帖子:1536 积分:10849 威望:0 精华:0 注册:2016/9/12 11:18:00
合并excel数据到表,需要其他列联动的问题?  发帖心情 Post By:2016/10/22 16:46:00 [只看该作者]

如题:

在事件增加行datarowadding下,写代码,可以吗?

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


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

写到datarowadded事件

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


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

在datarowadded事件,加入代码,希望推存人手机列改变,降级日期自动延长,不知什么原因,代码未能实现,提示如下:
.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2016.7.29.1
错误所在事件:表,男生资料,DataRowAdded
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

以下是代码:
'根据"推荐人手机"列,系统自动延长"降级日期"列
If e.DataRow("推荐人手机") IsNot Nothing Then
    Dim tjrsj As Double = e.DataRow("推荐人手机")    '定义,推荐人手机,首字母命名

    Dim drjj As DataRow = DataTables("男生资料").Find("[手机号码] = '" & tjrsj & "'")    '定义推荐人所在的行,根据推荐人手机号,找到推荐人所在的行.变量名是dr降级的首字母
    Dim d As Date = drjj("降级日期")                 '定义已有降级日期
    Dim t As Date = Date.today                       '定义当天日期
    If drjj("降级日期") Is Nothing Then
        d = t.adddays(30) '加上30天
    Else
        d = d.adddays(30) '加上30天
    End If
End If
[此贴子已经被作者于2016/10/23 9:54:28编辑过]

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


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

麻烦大神看下,谢谢

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


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

原因是:

http://www.foxtable.com/webhelp/scr/2044.htm

 

因为有的时候,符合条件的行并不存在。

 

还有:

If drjj("降级日期") Is Nothing Then

 

应该改为:

 

If drjj.Isnull("降级日期") Then

 

理由:

http://www.foxtable.com/webhelp/scr/1470.htm

 

 

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/23 16:40:01编辑过]

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


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

上述代码,复制到datarowadded事件,降级日期列依然不动;
重置列、重启系统,也不行;
测试放到datacolchanged事件也不行;
检查代码,却未发现逻辑没有什么错误;详见附图,请再查看下,谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:222.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

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


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

重新贴出你修改后的完整代码

或者上传例子测试

 回到顶部