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


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

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

帅哥哟,离线,有人找我吗?
lin_hailun
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | 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删除任意一列的字符,则弹出错误窗口,显示 “调用的目标发生了异常”。请问这是什么原因。


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

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


加好友 发短信
等级:幼狐 帖子:178 积分:1462 威望:0 精华:0 注册:2011/4/12 18:18:00
  发帖心情 Post By:2013/1/23 15:14:00 [只看该作者]

狐爸爸果然厉害,代码简练。

我依据自己写的代码这个代码,没有任何问题。
 
Case "委托方代理人", "委托方名称"
        If e.DataRow.IsNull("委托方代理人") =False And e.DataRow.IsNull("委托方名称") =False Then
            e.DataRow("拼音") = GetPy(e.DataRow("委托方代理人"))
        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("拼音") = GetPy(e.DataRow("委托方名称"))
        ElseIf e.DataRow.IsNull("委托方代理人") =False And e.DataRow.IsNull("委托方名称") = True Then
            e.DataRow("拼音") = GetPy(e.DataRow("委托方代理人"))
        Else e.DataRow("拼音") = GetPy(e.NewValue)
        End If

但是我举一反三 ,又写了这个代码,但是出问题了 ,按delete删除键 总是提示“调用的目标发生了异常”。这是为什么两个代码都是一个模型出来的,一个没有问题,一个老是提示错误。请教这是什么原因造成的??
    
Case "联系电话", "办公电话"
        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

[此贴子已经被作者于2013-1-24 21:40:51编辑过]

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


加好友 发短信
等级:幼狐 帖子:178 积分:1462 威望:0 精华:0 注册:2011/4/12 18:18:00
  发帖心情 Post By:2013/1/23 17:42:00 [只看该作者]

那请问我下面这段代码应该怎么修改呢?

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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) 等操作。楼主。

 多加一下判断吧。

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


加好友 发短信
等级:幼狐 帖子:178 积分:1462 威望:0 精华:0 注册:2011/4/12 18:18:00
  发帖心情 Post By:2013/1/23 19:32:00 [只看该作者]

图片点击可在新窗口打开查看已我现在的水平真不知道应该加那个判断。不是有这么一个判断  ElseIf e.DataRow.IsNull("联系电话") And e.DataRow.IsNull("办公电话") Then e.DataRow("号码归属地") = Nothing 这样还不行吗?

我也知道这代码累赘的很,但是按照您的和 狐爸爸的 代码套模板后 还是显示调用的目标发生了异常”。

图片点击可在新窗口打开查看代码真难学啊~~我应该怎么简化代码 并且不出错呢!!!

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:幼狐 帖子:178 积分:1462 威望:0 精华:0 注册:2011/4/12 18:18:00
  发帖心情 Post By:2013/1/24 21:48:00 [只看该作者]

先谢谢林老师 热情的答复,不嫌弃我麻烦。谢谢!!
再请问 林老师 这句判定代码 起一个什么作用?我看不懂这句代码在整个代码中其什么作用和表示什么意思。
最后想说一下 加上这句代码后 还是没有解决“按delete删除办公电话列 和 联系电话列 的字符时弹出 调用的目标发生了异常” 这个问题。

图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图_2013-01-24_21-45-46.png
图片点击可在新窗口打开查看

真不好意 再次麻烦各位大虾。我是不是在这个简单的问题上太较真了~~图片点击可在新窗口打开查看图片点击可在新窗口打开查看 自己问的都有些不好意思了。

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


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

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

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


加好友 发短信
等级:幼狐 帖子:198 积分:1655 威望:0 精华:0 注册:2013/1/11 15:10:00
  发帖心情 Post By:2013/1/25 10:08:00 [只看该作者]

 fdr1(e.NewValue) And fdr2(e.NewValue) 这句错误了

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


加好友 发短信
等级:幼狐 帖子:178 积分:1462 威望:0 精华:0 注册:2011/4/12 18:18:00
  发帖心情 Post By:2013/1/25 10:20:00 [只看该作者]

以下是引用lin_hailun在2013-1-25 9:33:00的发言:
上传一个简单的例子吧,说起来麻烦。
嗯 ,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.part01.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.part02.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.part03.rar



 回到顶部
总数 27 上一页 1 2 3 下一页