以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  合并excel数据到表,需要其他列联动的问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91947)

--  作者:zhangjian222200
--  发布时间:2016/10/22 16:46:00
--  合并excel数据到表,需要其他列联动的问题?
如题:

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

--  作者:有点蓝
--  发布时间:2016/10/22 17:15:00
--  
写到datarowadded事件
--  作者:zhangjian222200
--  发布时间: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
--  发布时间:2016/10/23 8:58:00
--  
麻烦大神看下,谢谢
--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2016/10/24 8:58:00
--  
上述代码,复制到datarowadded事件,降级日期列依然不动;
重置列、重启系统,也不行;
测试放到datacolchanged事件也不行;
检查代码,却未发现逻辑没有什么错误;详见附图,请再查看下,谢谢!

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

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

--  作者:有点蓝
--  发布时间:2016/10/24 9:01:00
--  
重新贴出你修改后的完整代码

或者上传例子测试