以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  籍贯自动填充问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=28756)

--  作者:aygp
--  发布时间: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
--  发布时间:2013/2/17 17:00:00
--  
 批量导入的时候,也会触发对应datacolchanged事件的。

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

 http://www.foxtable.com/help/topics/1469.htm
--  作者:aygp
--  发布时间:2013/2/17 17:28:00
--  

林老师:

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


--  作者:aygp
--  发布时间:2013/2/17 17:29:00
--  

林老师:

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


--  作者:aygp
--  发布时间:2013/2/17 17:30:00
--  

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

--  作者:lin_hailun
--  发布时间:2013/2/17 17:34:00
--  
 把详细信息截图看看。应该是你数据的问题。

--  作者:aygp
--  发布时间:2013/2/17 17:52:00
--  

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

谢谢林老师!


--  作者:aygp
--  发布时间:2013/2/17 18:07:00
--  
还有一个问题,在设置了以上代码后,在批量导入数据时,如果在‘身份证号’列中没有身份证号码,也会出现提示:“运行错误”。实际情况是在批量导入数据时,身份证号码确实有大量空缺的。能否在批量导入数据时不触发该事件呢?
--  作者:lin_hailun
--  发布时间: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
--  发布时间:2013/2/17 18:24:00
--  
我再试一试