Foxtable(狐表)用户栏目专家坐堂 → [求助]求助这个代码应该怎么修改


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

主题:[求助]求助这个代码应该怎么修改

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/23 11:27:00 [显示全部帖子]

 这样做比较好。

Select Case e.DataCol.name
    Case "名称", "委托代理人"     
        If e.DataRow.IsNull("委托代理人") Then
            If e.DataRow.IsNull("名称") Then
                e.DataRow("拼音") = Nothing
            Else
                e.DataRow("拼音") = GetPy(e.NewValue)
            End If
        Else
            e.DataRow("拼音") = GetPy(e.NewValue)
        End If
End Select
[此贴子已经被作者于2013-1-23 11:33:17编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/23 12:00:00 [显示全部帖子]

以下是引用yumo123在2013-1-23 11:35:00的发言:
谢谢林大,但是这样写 当名称列输入时 有拼音,当名称列 委托代理人列 都输入时,也符合条件 。但是当名称列为空,委托代理人列有字符时,则显示不出来。望指教~~~


之前写错了,已经修正,在2楼代码。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/23 14:07:00 [显示全部帖子]

以下是引用yumo123在2013-1-23 13:09:00的发言:
谢谢林大 ,但是还是发现了个小问题  当名称列 与 委托代理人列 都输入字符后, 在delete删除任意一列的字符,则弹出错误窗口,显示 “调用的目标发生了异常”。请问这是什么原因。


呃,这个是肯定的,你的代码你里有 判断 名称列和委托人列 的代码,你删除列当然会报错。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/23 18:03:00 [显示全部帖子]

 代码太累赘了。

 这样跟你说吧,你也应该知道怎么做的。

 你按下delete的时候,单元格就空了,无法对 "" 的字符串执行 e.NewValue.SubString(0,7) 等操作。楼主。

 多加一下判断吧。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/24 16:11:00 [显示全部帖子]

 呵呵,很简单,加一个判断就可以了。

Case "联系电话", "办公电话"
    If e.NewValue.Length >= 7 Then
        Dim phone As String = e.NewValue.SubString(0,7)
        Dim fdr1 As DataRow = DataTables("手机号码归属地").Find("手机编码 = '" & phone & "'")
       
        Dim tele1 As String = e.NewValue.SubString(0,4)
        Dim tele2 As String = e.newvalue.Substring(0,3)
        Dim fdr2 As DataRow = DataTables("手机号码归属地").Find("区号 = '" & tele1 & "' Or 区号 = '" &  tele2 & "'")
       
        If e.DataRow.IsNull("联系电话") =False And e.DataRow.IsNull("办公电话") =False Then
            e.DataRow("号码归属地") = fdr1("地区") & " " & fdr1("卡类别")
        ElseIf e.DataRow.IsNull("联系电话") And e.DataRow.IsNull("办公电话") Then
            e.DataRow("号码归属地") = Nothing
        ElseIf e.DataRow.IsNull("联系电话") =True And e.DataRow.IsNull("办公电话") =False Then
            e.DataRow("号码归属地") = fdr2("地区") & " " & fdr2("卡类别")
        ElseIf e.DataRow.IsNull("联系电话") =False And e.DataRow.IsNull("办公电话") = True Then
            e.DataRow("号码归属地") = fdr1("地区") & " " & fdr1("卡类别")
        Else e.DataRow("拼音") = fdr1(e.NewValue) And fdr2(e.NewValue)
        End If
    End If

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/25 9:33:00 [显示全部帖子]

上传一个简单的例子吧,说起来麻烦。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/25 11:30:00 [显示全部帖子]

 楼主,你下次上传的时候,只需要上传少量测试数据就行了。

 用下面的代码替换原来的,就可以了。

        If e.DataRow.IsNull("联系电话") Then
            If e.DataRow.IsNull("办公电话") Then
                e.DataRow("号码归属地") = Nothing
            Else
                If e.NewValue IsNot Nothing AndAlso e.NewValue.Length >= 3 Then
                    Dim qh1 As String = e.NewValue.SubString(0,4)
                    Dim qh2 As String = e.newvalue.Substring(0,3)
                    Dim phone As DataRow = DataTables("手机号码归属地").Find("区号 = '" & qh1 & "' Or 区号 = '" &  qh2 & "'")
                    If phone IsNot Nothing Then
                        e.DataRow("号码归属地") = phone("地区") & " " & phone("卡类别")
                    End If
                End If
            End If
        Else
            If e.NewValue IsNot Nothing AndAlso e.NewValue.length >= 7 Then
                Dim tele As String = e.NewValue.SubString(0,7)
                Dim phone As DataRow = DataTables("手机号码归属地").Find("手机编码 = '" & tele & "'")
                If phone IsNot Nothing Then
                    e.DataRow("号码归属地") = phone("地区") & " " & phone("卡类别")
                End If
            End If
        End If

[此贴子已经被作者于2013-1-25 11:29:59编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/25 14:50:00 [显示全部帖子]

以下是引用dreamyuan在2013-1-25 14:21:00的发言:
其实我也是FT的小白,呵呵,边学习边研究


谦虚了,进步很快……

 回到顶部