Foxtable(狐表)用户栏目专家坐堂 → 籍贯自动填充问题


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

主题:籍贯自动填充问题

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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
籍贯自动填充问题  发帖心情 Post By:2013/2/17 16:55:00 [只看该作者]

     项目文件有二个数据表:“身份证属地表”和“员工信息表”。“身份证属地表”有‘籍贯编码’列和‘籍贯’列。“学生信息表”包含有‘身份证号’列和‘籍贯’列。通过以下代码可以实现,当在“学生信息表”‘身份证号’列中输入学生的身份证号并确认后,在‘籍贯’列中就可以自动生成籍贯地址。对单个学生的信息进行输入时,这种方法是可以的。但是现在学生的部分信息包括身份证号都是批量导入的。以下代码如何后可以做到一键(按钮)触发,批量填充‘籍贯’,或者自动判断,只要‘身份证号’列中有身份证号码,就自动批量填充‘籍贯’。先谢了!

 

 

Select Case e.DataCol.name
    Case "身份证号"
       If e.DataRow.IsNull("身份证号") Then
            e.DataRow("身份证属地") = Nothing
        Else
            Dim bm As String = e.DataRow("身份证号").SubString(0,6)
            Dim dr As DataRow = DataTables("身份证属地").Find("籍贯编码 = '" & bm & "'")
           If dr IsNot Nothing Then
                e.DataRow("籍贯") = dr("籍贯")
            End If
        End If
End Select


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/2/17 17:00:00 [只看该作者]

 批量导入的时候,也会触发对应datacolchanged事件的。

 如果你的特殊,没有触发,你可以选择该列,然后点击菜单上的 重置列 ,就可以填充籍贯了。

 http://www.foxtable.com/help/topics/1469.htm

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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/2/17 17:28:00 [只看该作者]

林老师:

重置列后,出现以下提示:“运行错误”。应如何处理?


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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/2/17 17:29:00 [只看该作者]

林老师:

重置列后,出现以下提示:“运行错误”。应如何处理?


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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/2/17 17:30:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:重置列.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/2/17 17:34:00 [只看该作者]

 把详细信息截图看看。应该是你数据的问题。

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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/2/17 17:52:00 [只看该作者]

是数据有问题,有些身份证代码在“身份证属地表”中没有对应的属地,行政区划发生了变化引起的。

谢谢林老师!


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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/2/17 18:07:00 [只看该作者]

还有一个问题,在设置了以上代码后,在批量导入数据时,如果在‘身份证号’列中没有身份证号码,也会出现提示:“运行错误”。实际情况是在批量导入数据时,身份证号码确实有大量空缺的。能否在批量导入数据时不触发该事件呢?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/2/17 18:11:00 [只看该作者]

 不会出现这样的问题,我估计,如果你的代码是如下这样写的话。

 为空的时候,直接设置归属地是nothing了,是否你还有其余的代码?

Select Case e.DataCol.name
    Case "身份证号"
       If e.DataRow.IsNull("身份证号") Then
            e.DataRow("身份证属地") = Nothing
        Else
            Dim bm As String = e.DataRow("身份证号").SubString(0,6)
            Dim dr As DataRow = DataTables("身份证属地").Find("籍贯编码 = '" & bm & "'")
           If dr IsNot Nothing Then
                e.DataRow("籍贯") = dr("籍贯")
            End If
        End If
End Select


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


加好友 发短信
等级:三尾狐 帖子:693 积分:5206 威望:0 精华:0 注册:2011/3/15 12:34:00
  发帖心情 Post By:2013/2/17 18:24:00 [只看该作者]

我再试一试

 回到顶部