以文本方式查看主题 - 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=91989) |
-- 作者:zhangjian222200 -- 发布时间:2016/10/24 9:31:00 -- 合并excel数据到表,需要其他列联动不能实现,系统无提示,麻烦检查,谢谢 写在“男生资料”表,表属性,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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/10/24 9:50:00 -- 1、"推荐人手机"改为字符列(手机号码有必要使用双精度吗) 2、不想改,这里改改 Dim drjj As DataRow = DataTables("男生资料").Find("[手机号码] = " & tjrsj) |
-- 作者:狐狸爸爸 -- 发布时间: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 学会一些基本的调试,可以自己解决多数问题。 |
-- 作者:狐狸爸爸 -- 发布时间: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 -- 发布时间: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
|